Partilhar via


O que é o Unity Catalog?

Este artigo apresenta o Unity Catalog, uma solução de governança unificada para dados e ativos de IA no Azure Databricks.

Nota

Unity Catalog também está disponível como uma implementação de código aberto. Veja o blog de anúncio e o repositório público do Unity Catalog GitHub.

Visão geral do catálogo Unity

O Unity Catalog fornece recursos centralizados de controle de acesso, auditoria, linhagem e descoberta de dados nos espaços de trabalho do Azure Databricks.

Diagrama do catálogo Unity

Os principais recursos do Catálogo Unity incluem:

  • Defina uma vez, seguro em qualquer lugar: o Unity Catalog oferece um único local para administrar políticas de acesso a dados que se aplicam a todos os espaços de trabalho.
  • Modelo de segurança compatível com padrões: o modelo de segurança do Unity Catalog é baseado no ANSI SQL padrão e permite que os administradores concedam permissões em seu data lake existente usando sintaxe familiar, no nível de catálogos, esquemas (também chamados de bancos de dados), tabelas e exibições.
  • Auditoria e linhagem integradas: o Unity Catalog captura automaticamente logs de auditoria no nível do usuário que registram o acesso aos seus dados. O Unity Catalog também captura dados de linhagem que rastreiam como os ativos de dados são criados e usados em todos os idiomas.
  • Descoberta de dados: o Unity Catalog permite marcar e documentar ativos de dados e fornece uma interface de pesquisa para ajudar os consumidores de dados a encontrar dados.
  • Tabelas do sistema (Visualização pública): o Unity Catalog permite que você acesse e consulte facilmente os dados operacionais da sua conta, incluindo logs de auditoria, uso faturável e linhagem.

O modelo de objeto do Unity Catalog

No Unity Catalog, todos os metadados são registrados em um metastore. A hierarquia de objetos de banco de dados em qualquer metastore do Unity Catalog é dividida em três níveis, representados como um namespace de três níveis (catalog.schema.table-etc) quando você faz referência a tabelas, exibições, volumes, modelos e funções.

Diagrama de modelo de objeto do Unity Catalog

Metalojas

O metastore é o contêiner de nível superior para metadados no Unity Catalog. Ele registra metadados sobre dados e ativos de IA e as permissões que regem o acesso a eles. Para que um espaço de trabalho use o Unity Catalog, ele deve ter um metastore do Unity Catalog anexado.

Você deve ter um metastore para cada região em que você tem espaços de trabalho. Como um espaço de trabalho é anexado a um metastore? Consulte Como configuro o Catálogo Unity para minha organização?.

Hierarquia de objetos no metastore

Em um metastore do Unity Catalog, a hierarquia de objetos de banco de dados de três níveis consiste em catálogos que contêm esquemas, que, por sua vez, contêm dados e objetos de IA, como tabelas e modelos.

Nível um:

  • Os catálogos são usados para organizar seus ativos de dados e normalmente são usados como o nível superior em seu esquema de isolamento de dados. Os catálogos geralmente espelham unidades organizacionais ou escopos do ciclo de vida de desenvolvimento de software. Consulte O que são catálogos no Azure Databricks?.
  • Objetos não protegíveis de dados, como credenciais de armazenamento e locais externos, são usados para gerenciar seu modelo de governança de dados no Unity Catalog. Estes também vivem diretamente sob o metastore. Eles são descritos com mais detalhes em Outros objetos protegíveis.

Nível dois:

  • Os esquemas (também conhecidos como bancos de dados) contêm tabelas, exibições, volumes, modelos de IA e funções. Os esquemas organizam dados e ativos de IA em categorias lógicas que são mais granulares do que os catálogos. Normalmente, um esquema representa um único caso de uso, projeto ou área restrita de equipe. Consulte O que são esquemas no Azure Databricks?.

Nível três:

  • Os volumes são volumes lógicos de dados não estruturados e não tabulares no armazenamento de objetos na nuvem. Os volumes podem ser gerenciados, com o Unity Catalog gerenciando o ciclo de vida completo e o layout dos dados no armazenamento, ou externos, com o Unity Catalog gerenciando o acesso aos dados de dentro do Azure Databricks, mas não gerenciando o acesso aos dados no armazenamento em nuvem de outros clientes. Consulte O que são volumes do Catálogo Unity? e Tabelas e volumes gerenciados versus externos.
  • As tabelas são coleções de dados organizados por linhas e colunas. As tabelas podem ser gerenciadas, com o Unity Catalog gerenciando o ciclo de vida completo da tabela, ou externas, com o Unity Catalog gerenciando o acesso aos dados de dentro do Azure Databricks, mas não gerenciando o acesso aos dados no armazenamento em nuvem de outros clientes. Consulte O que são tabelas e modos de exibição? e Gerenciado versus tabelas e volumes externos.
  • As visualizações são consultas salvas em uma ou mais tabelas. Consulte O que é uma vista?.
  • As funções são unidades de lógica salva que retornam um valor escalar ou um conjunto de linhas. Consulte Funções definidas pelo usuário (UDFs) no Catálogo Unity.
  • Os modelos são modelos de IA empacotados com MLflow e registrados no Unity Catalog como funções. Consulte Gerenciar o ciclo de vida do modelo no Catálogo Unity.

Trabalhando com objetos de banco de dados no Unity Catalog

Trabalhar com objetos de banco de dados no Unity Catalog é muito semelhante a trabalhar com objetos de banco de dados registrados em um metastore do Hive, com a exceção de que um metastore do Hive não inclui catálogos no namespace do objeto. Você pode usar a sintaxe ANSI familiar para criar objetos de banco de dados, gerenciar objetos de banco de dados, gerenciar permissões e trabalhar com dados no Unity Catalog. Você também pode criar objetos de banco de dados, gerenciar objetos de banco de dados e gerenciar permissões em objetos de banco de dados usando a interface do usuário do Catalog Explorer.

Para obter mais informações, consulte Objetos de banco de dados no Azure Databricks e Trabalhar com o Unity Catalog e o metastore herdado do Hive.

Outros objetos protegíveis

Além dos objetos de banco de dados e ativos de IA contidos em esquemas, o Unity Catalog também controla o acesso aos dados usando os seguintes objetos protegíveis:

Para obter mais informações sobre os objetos protegíveis Delta Sharing, consulte O que é Delta Sharing?.

Concedendo e revogando acesso a objetos de banco de dados e outros objetos protegíveis no Unity Catalog

Você pode conceder e revogar acesso a objetos protegíveis em qualquer nível da hierarquia, incluindo o próprio metastore. O acesso a um objeto concede implicitamente o mesmo acesso a todos os filhos desse objeto, a menos que o acesso seja revogado.

Você pode usar comandos ANSI SQL típicos para conceder e revogar acesso a objetos no Unity Catalog. Por exemplo:

GRANT CREATE TABLE ON SCHEMA mycatalog.myschema TO `finance-team`;

Você também pode usar o Gerenciador de Catálogos, a CLI do Databricks e as APIs REST para gerenciar permissões de objeto.

Conceder privilégio usando o Catalog Explorer

Para saber como gerenciar privilégios no Catálogo Unity, consulte Gerenciar privilégios no Catálogo Unity.

Acesso padrão a objetos de banco de dados no Unity Catalog

O Unity Catalog opera com base no princípio do menor privilégio, onde os usuários têm o acesso mínimo necessário para executar suas tarefas necessárias. Quando um espaço de trabalho é criado, os usuários não administradores têm acesso apenas ao catálogo de espaço de trabalho provisionado automaticamente, o que torna esse catálogo um local conveniente para os usuários experimentarem o processo de criação e acesso a objetos de banco de dados no Unity Catalog. Consulte Privilégios do catálogo do espaço de trabalho.

Funções de administração

Os administradores de espaço de trabalho e de conta têm privilégios adicionais por padrão. O administrador do metastore é uma função opcional, necessária se você quiser gerenciar o armazenamento de tabelas e volumes no nível do metastore e conveniente se quiser gerenciar dados centralmente em vários espaços de trabalho em uma região. Para obter mais informações, consulte Privilégios de administrador no Catálogo Unity e (Opcional) Atribuir a função de administrador do metastore.

Tabelas e volumes gerenciados versus externos

Tabelas e volumes podem ser gerenciados ou externos.

  • As tabelas gerenciadas são totalmente gerenciadas pelo Unity Catalog, o que significa que o Unity Catalog gerencia a governança e os arquivos de dados subjacentes para cada tabela gerenciada. As tabelas gerenciadas são armazenadas em um local gerenciado pelo Unity Catalog em seu armazenamento em nuvem. As tabelas gerenciadas sempre usam o formato Delta Lake. Você pode armazenar tabelas gerenciadas nos níveis de metastore, catálogo ou esquema.
  • As tabelas externas são tabelas cujo acesso a partir do Azure Databricks é gerenciado pelo Unity Catalog, mas cujo ciclo de vida de dados e layout de arquivo são gerenciados usando seu provedor de nuvem e outras plataformas de dados. Normalmente, você usa tabelas externas para registrar grandes quantidades de seus dados existentes no Azure Databricks ou se também precisar de acesso de gravação aos dados usando ferramentas fora do Azure Databricks. As tabelas externas são suportadas em vários formatos de dados. Depois que uma tabela externa é registrada em um metastore do Catálogo Unity, você pode gerenciar e auditar o acesso do Azure Databricks a ela — e trabalhar com ela — da mesma forma que pode fazer com tabelas gerenciadas.
  • Os volumes gerenciados são totalmente gerenciados pelo Unity Catalog, o que significa que o Unity Catalog gerencia o acesso ao local de armazenamento do volume em sua conta de provedor de nuvem. Quando você cria um volume gerenciado, ele é armazenado automaticamente no local de armazenamento gerenciado atribuído ao esquema que o contém.
  • Os volumes externos representam dados existentes em locais de armazenamento que são gerenciados fora do Azure Databricks, mas registrados no Unity Catalog para controlar e auditar o acesso de dentro do Azure Databricks. Ao criar um volume externo no Azure Databricks, você especifica seu local, que deve estar em um caminho definido em um local externo do Catálogo Unity.

A Databricks recomenda tabelas e volumes gerenciados para aproveitar ao máximo os recursos de governança e otimizações de desempenho do Unity Catalog.

Consulte Trabalhar com tabelas gerenciadas, Trabalhar com tabelas externas e Volumes gerenciados versus externos.

Isolamento de dados usando armazenamento gerenciado

Sua organização pode exigir que dados de determinados tipos sejam armazenados em contas ou buckets específicos em seu locatário de nuvem.

O Unity Catalog oferece a capacidade de configurar locais de armazenamento no nível de metastore, catálogo ou esquema para atender a esses requisitos. O sistema avalia a hierarquia dos locais de armazenamento, do esquema ao catálogo e ao metastore.

Por exemplo, digamos que sua organização tenha uma política de conformidade da empresa que exija que os dados de produção relacionados aos recursos humanos residam no contêiner abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net. No Unity Catalog, você pode atingir esse requisito definindo um local em um nível de catálogo, criando um catálogo chamado, por exemplo hr_prod, e atribuindo o local abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog a ele. Isso significa que tabelas hr_prod gerenciadas ou volumes criados no catálogo (por exemplo, usando CREATE TABLE hr_prod.default.table …) armazenam seus dados em abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. Opcionalmente, você pode optar por fornecer locais no nível do esquema para organizar os hr_prod catalog dados em um nível mais granular.

Se o isolamento de armazenamento não for necessário para alguns catálogos, você pode, opcionalmente, definir um local de armazenamento no nível do metastore. Esse local serve como um local padrão para tabelas e volumes gerenciados em catálogos e esquemas que não têm armazenamento atribuído. Normalmente, no entanto, o Databricks recomenda que você atribua locais de armazenamento gerenciado separados para cada catálogo.

Para obter mais informações, consulte Especificar um local de armazenamento gerenciado no Catálogo Unity e Os dados estão fisicamente separados no armazenamento.

Vinculação de catálogo de espaço de trabalho

Por padrão, os proprietários do catálogo (e os administradores do metastore, se estiverem definidos para a conta) podem tornar um catálogo acessível aos usuários em vários espaços de trabalho anexados ao mesmo metastore do Unity Catalog. No entanto, se você usar espaços de trabalho para isolar o acesso aos dados do usuário, convém limitar o acesso ao catálogo a espaços de trabalho específicos em sua conta, para garantir que certos tipos de dados sejam processados somente nesses espaços de trabalho. Você pode querer espaços de trabalho de produção e desenvolvimento separados, por exemplo, ou um espaço de trabalho separado para processar dados pessoais. Isso é conhecido como vinculação de catálogo de espaço de trabalho. Consulte Limitar o acesso do catálogo a espaços de trabalho específicos.

Nota

Para aumentar o isolamento de dados, você também pode vincular o acesso ao armazenamento em nuvem e o acesso ao serviço de nuvem a espaços de trabalho específicos. Consulte (Opcional) Atribuir uma credencial de armazenamento a espaços de trabalho específicos, (Opcional) Atribuir um local externo a espaços de trabalho específicos e (Opcional) Atribuir uma credencial de serviço a espaços de trabalho específicos.

Auditando o acesso aos dados

O Unity Catalog captura um log de auditoria de ações executadas no metastore, permitindo que os administradores acessem detalhes refinados sobre quem acessou um determinado conjunto de dados e as ações executadas.

Você pode acessar os logs de auditoria da sua conta usando tabelas do sistema gerenciadas pelo Unity Catalog.

Consulte Auditar eventos do Catálogo Unity, eventos do Catálogo Unity e Monitorar a atividade da conta com tabelas do sistema.

Rastreando linhagem de dados

Você pode usar o Catálogo Unity para capturar linhagem de dados de tempo de execução em consultas em qualquer linguagem executada em um cluster do Azure Databricks ou armazém SQL. A linhagem é capturada até o nível da coluna e inclui blocos de anotações, trabalhos e painéis relacionados à consulta. Para saber mais, consulte Capturar e visualizar linhagem de dados usando o Catálogo Unity.

Lakehouse Federation e Unity Catálogo

Lakehouse Federation é a plataforma de federação de consultas para o Azure Databricks. O termo federação de consultas descreve uma coleção de recursos que permitem que usuários e sistemas executem consultas em várias fontes de dados em silos sem a necessidade de migrar todos os dados para um sistema unificado.

O Azure Databricks usa o Unity Catalog para gerenciar a federação de consultas. Você usa o Unity Catalog para configurar conexões somente leitura para sistemas de banco de dados externos populares e criar catálogos estrangeiros que espelham bancos de dados externos. As ferramentas de governança de dados e linhagem de dados do Unity Catalog garantem que o acesso aos dados seja gerenciado e auditado para todas as consultas federadas feitas pelos usuários em seus espaços de trabalho do Azure Databricks.

Veja O que é Lakehouse Federation?.

Delta Sharing, Databricks Marketplace e Unity Catalog

O Delta Sharing é uma plataforma segura de compartilhamento de dados que permite compartilhar dados e ativos de IA com usuários fora da sua organização, independentemente de esses usuários usarem ou não o Databricks. Embora o Delta Sharing esteja disponível como uma implementação de código aberto, no Databricks ele requer o Unity Catalog para aproveitar ao máximo a funcionalidade estendida. Consulte O que é Delta Sharing?.

O Databricks Marketplace, um fórum aberto para troca de produtos de dados, é construído com base no Delta Sharing e, como tal, você deve ter um espaço de trabalho habilitado para Unity Catalog para ser um provedor do Marketplace. Consulte O que é o Databricks Marketplace?.

Como configuro o Catálogo Unity para minha organização?

Para usar o Unity Catalog, seu espaço de trabalho do Azure Databricks deve ser habilitado para o Unity Catalog, o que significa que o espaço de trabalho está anexado a um metastore do Unity Catalog.

Como um espaço de trabalho é anexado a um metastore? Depende da conta e do espaço de trabalho:

  • Normalmente, quando você cria um espaço de trabalho do Azure Databricks em uma região pela primeira vez, o metastore é criado automaticamente e anexado ao espaço de trabalho.
  • Para algumas contas mais antigas, um administrador de conta deve criar o metastore e atribuir os espaços de trabalho nessa região ao metastore. Para obter instruções, consulte Criar um metastore do Catálogo do Unity.
  • Se uma conta já tiver um metastore atribuído a uma região, um administrador de conta poderá decidir se deseja anexar o metastore automaticamente a todos os novos espaços de trabalho nessa região. Consulte Permitir que um metastore seja atribuído automaticamente a novos espaços de trabalho.

Se seu espaço de trabalho foi habilitado ou não para o Unity Catalog automaticamente, as etapas a seguir também são necessárias para começar a usar o Unity Catalog:

  • Crie catálogos e esquemas para conter objetos de banco de dados, como tabelas e volumes.
  • Crie locais de armazenamento gerenciado para armazenar as tabelas e volumes gerenciados nesses catálogos e esquemas.
  • Conceda ao usuário acesso a catálogos, esquemas e objetos de banco de dados.

Os espaços de trabalho habilitados automaticamente para o Unity Catalog provisionam um catálogo de espaços de trabalho com amplos privilégios concedidos a todos os usuários do espaço de trabalho. Este catálogo é um ponto de partida conveniente para experimentar o Unity Catalog.

Para obter instruções detalhadas de configuração, consulte Configurar e gerenciar o Catálogo Unity.

Migrando um espaço de trabalho existente para o Unity Catalog

Se você tiver um espaço de trabalho mais antigo que ativou recentemente para o Unity Catalog, provavelmente terá dados gerenciados pelo metastore herdado do Hive. Você pode trabalhar com esses dados ao lado dos dados registrados no Unity Catalog, mas o metastore herdado do Hive foi preterido e você deve migrar os dados em seu metastore do Hive para o Unity Catalog o mais rápido possível para aproveitar os recursos e o desempenho superiores de governança do Unity Catalog.

A migração envolve o seguinte:

  1. Converter quaisquer grupos locais de espaço de trabalho em grupos no nível da conta. O Unity Catalog centraliza o gerenciamento de identidades no nível da conta.
  2. Migração de tabelas e exibições gerenciadas no metastore do Hive para o Unity Catalog.
  3. Atualize consultas e trabalhos para fazer referência às novas tabelas do Catálogo Unity em vez das antigas tabelas de metastore do Hive.

O seguinte pode ajudá-lo a gerenciar uma migração:

Requisitos e restrições do Catálogo Unity

O Unity Catalog requer tipos específicos de computação e formatos de arquivo, descritos abaixo. Também estão listados abaixo alguns recursos do Azure Databricks que não são totalmente suportados no Unity Catalog em todas as versões do Databricks Runtime.

Suporte à região

Todas as regiões suportam o Unity Catalog. Para obter detalhes, consulte Regiões do Azure Databricks.

Requisitos de computação

O Unity Catalog é suportado em clusters que executam o Databricks Runtime 11.3 LTS ou superior. O Unity Catalog é suportado por padrão em todas as versões de computação do SQL warehouse .

Os clusters executados em versões anteriores do Databricks Runtime não fornecem suporte para todos os recursos e funcionalidades do Unity Catalog GA.

Para acessar dados no Unity Catalog, os clusters devem ser configurados com o modo de acesso correto. O Unity Catalog é seguro por padrão. Se um cluster não estiver configurado com o modo de acesso compartilhado ou de usuário único, o cluster não poderá acessar dados no Unity Catalog. Consulte Modos de acesso.

Para obter informações detalhadas sobre as alterações de funcionalidade do Unity Catalog em cada versão do Databricks Runtime, consulte as notas de versão.

As limitações do Unity Catalog variam de acordo com o modo de acesso e a versão do Databricks Runtime. Consulte Limitações do modo de acesso de computação para o Unity Catalog.

Suporte ao formato de ficheiro

O Unity Catalog suporta os seguintes formatos de tabela:

  • As tabelas gerenciadas devem usar o formato de delta tabela.
  • As tabelas externas podem usar delta, CSV, , JSONavro, ORCparquet, ou text.

Limitações

O Catálogo Unity tem as seguintes limitações. Alguns deles são específicos para versões mais antigas do Databricks Runtime e modos de acesso de computação.

As cargas de trabalho do Streaming estruturado têm limitações adicionais, dependendo do tempo de execução e do modo de acesso do Databricks. Consulte Limitações do modo de acesso de computação para o Unity Catalog.

O Databricks lança uma nova funcionalidade que reduz essa lista regularmente.

  • Os grupos que foram criados anteriormente em um espaço de trabalho (ou seja, grupos no nível do espaço de trabalho) não podem ser usados em instruções do Catálogo Unity GRANT . Isso é para garantir uma exibição consistente de grupos que podem se estender por espaços de trabalho. Para usar grupos em GRANinstruções T, crie seus grupos no nível da conta e atualize qualquer automação para gerenciamento de entidade ou grupo (como conectores SCIM, Okta e Microsoft Entra ID e Terraform) para fazer referência a pontos de extremidade de conta em vez de pontos de extremidade de espaço de trabalho. Consulte Diferença entre grupos de contas e grupos locais de espaço de trabalho.

  • As cargas de trabalho em R não suportam o uso de exibições dinâmicas para segurança em nível de linha ou coluna em computação executando o Databricks Runtime 15.3 e inferior.

    Use um recurso de computação de usuário único executando o Databricks Runtime 15.4 LTS ou superior para cargas de trabalho em R que consultam exibições dinâmicas. Essas cargas de trabalho também exigem um espaço de trabalho habilitado para computação sem servidor. Para obter detalhes, consulte Controle de acesso refinado na computação de usuário único.

  • Clones superficiais não são suportados no Unity Catalog em computação executando o Databricks Runtime 12.2 LTS e inferior. Você pode usar clones superficiais para criar tabelas gerenciadas no Databricks Runtime 13.3 LTS e superior. Não é possível usá-los para criar tabelas externas, independentemente da versão do Databricks Runtime. Consulte Clone superficial para tabelas do Catálogo Unity.

  • Não há suporte para bucketing para tabelas do Unity Catalog. Se você executar comandos que tentam criar uma tabela bucketed no Unity Catalog, ele lançará uma exceção.

  • Gravar no mesmo caminho ou na tabela Delta Lake a partir de espaços de trabalho em várias regiões pode levar a um desempenho não confiável se alguns clusters acessarem o Unity Catalog e outros não.

  • A manipulação de partições para tabelas externas usando comandos como ALTER TABLE ADD PARTITION requer que o registro de metadados de partição seja habilitado. Consulte Descoberta de partições para tabelas externas.

  • O modo de substituição para operações de gravação DataFrame no Unity Catalog é suportado apenas para tabelas Delta, não para outros formatos de arquivo. O usuário deve ter o CREATE privilégio no esquema pai e deve ser o proprietário do objeto existente ou ter o MODIFY privilégio no objeto.

  • UDFs Python não são suportados no Databricks Runtime 12.2 LTS e inferior. Isso inclui UDAFs, UDTFs e Pandas no Spark (applyInPandas e mapInPandas). UDFs escalares Python são suportados no Databricks Runtime 13.3 LTS e superior.

  • UDFs Scala não são suportados no Databricks Runtime 14.1 e inferior em clusters compartilhados. UDFs escalares Scala são suportadas no Databricks Runtime 14.2 e superior em clusters compartilhados.

  • Não há suporte para pools de threads Scala padrão. Em vez disso, use os pools de threads especiais em org.apache.spark.util.ThreadUtils, por exemplo, org.apache.spark.util.ThreadUtils.newDaemonFixedThreadPool. No entanto, os seguintes pools de threads não ThreadUtils são suportados: ThreadUtils.newForkJoinPool e qualquer ScheduledExecutorService pool de threads.

  • O log de auditoria é suportado apenas para eventos do Catálogo Unity no nível do espaço de trabalho. Os eventos que ocorrem no nível da conta sem referência a um espaço de trabalho, como a criação de um metastore, não são registrados.

Os modelos registrados no Catálogo Unity têm limitações adicionais. Consulte Limitações.

Quotas de recursos

O Unity Catalog impõe quotas de recursos em todos os objetos com capacidade de segurança. Essas cotas estão listadas em Limites de recursos. Se você espera exceder esses limites de recursos, entre em contato com sua equipe de conta do Azure Databricks.

Você pode monitorar o uso da cota usando as APIs de cotas de recursos do Unity Catalog. Consulte Monitorar o uso das cotas de recursos do Unity Catalog.