Compartilhar via


O que é Catálogo do Unity?

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

Observação

O Catálogo do Unity também está disponível como uma implementação de código aberto. Consulte o blog de comunicados e o repositório público do GitHub do Catálogo do Unity.

Visão geral do Catálogo do Unity

O Unity Catalog fornece recursos centralizados de controle de acesso, auditoria, linhagem e descoberta de dados em workspaces do Azure Databricks.

Diagrama do Catálogo do Unity

Os principais recursos do Catálogo do Unity incluem:

  • Definir uma vez, proteger em todos os lugares: o Catálogo do Unity oferece um só local para administrar as políticas de acesso a dados que se aplicam a todos os workspaces.
  • Modelo de segurança em conformidade com padrões: o modelo de segurança do Catálogo do Unity baseia-se no padrão ANSI SQL e permite que os administradores concedam permissões no data lake existente deles usando uma sintaxe conhecida no nível de catálogos, esquemas (também chamados de bancos de dados), tabelas e exibições.
  • Auditoria e linhagem de dados integradas: o Unity Catalog captura automaticamente os logs de auditoria de 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 todas 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 esses dados.
  • Tabelas do sistema (Visualização Pública): o Catálogo do Unity permite acessar e consultar facilmente os dados operacionais da sua conta, incluindo logs de auditoria, uso faturável e linhagem.

O modelo de objeto do Catálogo do Unity

No Catálogo do Unity, todos os metadados são registrados em um metastore. A hierarquia de objetos de banco de dados em qualquer metastore do Catálogo do Unity é dividida em três níveis, representada 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 Catálogo do Unity

Metastores

O metastore é o contêiner de nível superior para metadados no Catálogo do Unity. Ele registra metadados sobre dados e ativos de IA e as permissões que controlam o acesso a eles. Para um workspace usar o Catálogo do Unity, ele deve ter um metastore do Catálogo do Unity anexado.

Você deve ter um metastore para cada região em que você tenha espaços de trabalho. Normalmente, um metastore é criado automaticamente quando você cria um espaço de trabalho do Azure Databricks em uma região pela primeira vez. 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.

Consulte Criar um metastore do Catálogo do Unity.

Hierarquia de objetos no metastore

Em um metastore do Catálogo do Unity, 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 objetos de dados e IA, como tabelas e modelos.

Nível um:

  • 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 espelho unidades organizacionais ou escopos do ciclo de vida de desenvolvimento de software. Confira O que são os catálogos do Azure Databricks?.
  • Objetos protegíveis que não são de dados, como credenciais de armazenamento e locais externos, são usados para gerenciar seu modelo de governança de dados no Catálogo do Unity. Eles também residem diretamente no metastore. Eles são descritos com mais detalhes em Outros objetos protegíveis.

Nível dois:

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

Nível três:

Trabalhando com objetos de banco de dados no Catálogo do Unity

Trabalhar com objetos de banco de dados no Catálogo do Unity é muito semelhante a trabalhar com objetos de banco de dados registrados em um metastore do Hive, com exceção de que um metastore do Hive não inclui catálogos no namespace do objeto. Você pode usar uma sintaxe ANSI familiar para criar objetos de banco de dados, gerenciar objetos de banco de dados, gerenciar permissões e trabalhar com dados no Catálogo do Unity. 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 Catálogo do Unity e o metastore do Hive herdado.

Outros objetos protegíveis

Além dos objetos de banco de dados e dos ativos de IA contidos em esquemas, o Catálogo do Unity também rege o acesso aos dados usando os seguintes objetos protegíveis:

Para obter mais informações sobre os objetos protegíveis de Delta Sharing, consulte Compartilhar ativos de IA e dados com segurança usando o Compartilhamento Delta.

Conceder e revogar o acesso a objetos de banco de dados e outros objetos protegíveis no Catálogo do Unity

Você pode conceder e revogar o acesso a objetos protegíveis em qualquer nível na hierarquia, incluindo o metastore em si. 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 típicos do SQL ANSI para conceder e revogar o acesso a objetos no Catálogo do Unity. Por exemplo:

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

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

Conceder privilégio usando o Gerenciador de Catálogos

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

Acesso padrão a objetos de banco de dados no Catálogo do Unity

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

Funções de administrador

Administradores de espaço de trabalho e administradores de conta têm privilégios adicionais por padrão. A administração de 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 do Unity e (opcional) Atribuir a função de administrador de metastore.

Volumes e tabelas gerenciados versus externos

Tabelas e volumes podem ser gerenciados ou externos.

  • Tabelas gerenciadas são totalmente gerenciadas pelo Catálogo do Unity, o que significa que o Catálogo do Unity 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 Catálogo do Unity no 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.
  • Tabelas externas são tabelas cujo acesso do Azure Databricks é gerenciado pelo Catálogo do Unity, 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. Há suporte para tabelas externas em vários formatos de dados. Depois que uma tabela externa é registrada em um metastore do Catálogo do Unity, você pode gerenciar e auditar o acesso do Azure Databricks a ela — e trabalhar com ela — da mesma forma que você pode com tabelas gerenciadas.
  • Volumes gerenciados são totalmente gerenciados pelo Catálogo do Unity, o que significa que o Catálogo do Unity gerencia o acesso ao local de armazenamento do volume na 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 contém.
  • Volumes externos representam dados existentes em locais de armazenamento gerenciados fora do Azure Databricks, mas registrados no Catálogo do Unity para controlar e auditar o acesso de dentro do Azure Databricks. Ao criar um volume externo no Azure Databricks, especifique a localização, que deve estar em um caminho definido em um local externo do Catálogo do Unity.

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

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

isolamento de dados usando o armazenamento gerenciado

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

O Catálogo do Unity oferece a capacidade de configurar locais de armazenamento no nível do metastore, catálogo ou esquema para atender a esses requisitos. O sistema avalia a hierarquia de locais de armazenamento de esquema para catálogo para 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 Catálogo do Unity, 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 as tabelas gerenciadas ou os volumes criados no catálogo hr_prod (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 dados dentro do hr_prod catalog em um nível mais granular.

Se o isolamento de armazenamento não for necessário para alguns catálogos, opcionalmente, você poderá 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 do Unity e Os dados são fisicamente separados no armazenamento.

Associação espaço de trabalho-catálogo

Por padrão, os proprietários de catálogo (e administradores de metastore, se 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 Catálogo do Unity. No entanto, se você usar espaços de trabalho para isolar o acesso a 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 determinados tipos de dados sejam processados apenas nesses espaços de trabalho. Talvez você queira espaços de trabalho separados para produção e desenvolvimento, por exemplo, ou um espaço de trabalho separado para o processamento de dados pessoais. Isso é conhecido como associação espaço de trabalho-catálogo. Consulte Limitar acesso do catálogo a espaços de trabalho específicos.

Observação

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

Auditar o acesso a dados

O Catálogo do Unity 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 Catálogo do Unity.

Consulte Auditar eventos do Catálogo do Unity, Eventos do Catálogo do Unity e Monitorar o uso com tabelas do sistema.

Controle da linhagem de dados

Você pode usar o Catálogo do Unity para capturar a linhagem de dados de runtime em consultas em qualquer linguagem executadas em um cluster do Azure Databricks ou no SQL Warehouse. A linhagem é capturada até o nível da coluna e inclui notebooks, fluxos de trabalho e painéis relacionados à consulta. Para saber mais, confira Capturar e exibir a linhagem de dados usando o Catálogo do Unity.

Federação do Lakehouse e Catálogo do Unity

A Federação de Lakehouse é a plataforma de federação de consultas do Azure Databricks. O termo federação de consulta 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 Catálogo do Unity para gerenciar a federação de consultas. Você usa o Catálogo do Unity para configurar conexões somente leitura para sistemas de banco de dados externos populares e criar catálogos estrangeiros que espelho bancos de dados externos. As ferramentas de linhagem de dados e governança de dados do Catálogo do Unity garantem que o acesso aos dados seja gerenciado e auditado para todas as consultas federadas feitas pelos usuários em seus workspaces do Azure Databricks.

Veja O que é a Federação Lakehouse.

Compartilhamento Delta, Databricks Marketplace e Catálogo do Unity

O Delta Sharing é uma plataforma segura de compartilhamento de dados que permite compartilhar ativos de IA e dados com usuários fora da sua organização, quer esses usuários usem ou não o Databricks. Embora o Delta Sharing esteja disponível como uma implementação de código aberto, no Databricks, ele requer que o Catálogo do Unity aproveite ao máximo a funcionalidade estendida. Confira Compartilhar dados e ativos de IA com segurança usando o Compartilhamento Delta.

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

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

Para usar o Catálogo do Unity, o espaço de trabalho do Azure Databricks deve estar habilitado para o Catálogo do Unity, o que significa que o espaço de trabalho está anexado a um metastore do Catálogo do Unity. Todos os novos espaços de trabalho são habilitados para o Catálogo do Unity automaticamente após a criação. Porém, espaços de trabalho mais antigos podem exigir que um administrador de conta habilite o Catálogo do Unity manualmente. Se o espaço de trabalho foi habilitado ou não para o Catálogo do Unity automaticamente, as seguintes etapas também são necessárias para começar a usar o Catálogo do Unity:

  • 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.

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

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

Migrar um workspace existente para o Catálogo do Unity

Se você tiver um workspace mais antigo habilitado recentemente para o Catálogo do Unity, provavelmente terá dados gerenciados pelo metastore do Hive herdado. Você pode trabalhar com esses dados juntamente com os dados registrados no Catálogo do Unity, mas o metastore herdado do Hive foi preterido e você deve migrar os dados em seu metastore do Hive para o Catálogo do Unity assim que possível para aproveitar os recursos de governança e o desempenho superiores do Catálogo do Unity.

A migração envolve o seguinte:

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

O seguinte pode ajudar você a gerenciar uma migração:

Requisitos e restrições do Catálogo do Unity

O Catálogo do Unity 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 têm suporte total no Catálogo do Unity em todas as versões do Databricks Runtime.

Suporte à região

Todas as regiões dão suporte para o Catálogo do Unity. Para obter detalhes, confira Regiões do Azure Databricks.

Requisitos de computação

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

Os clusters em execução em versões anteriores do Databricks Runtime não oferecem suporte para todos os recursos e funcionalidades em GA do Catálogo do Unity.

Para acessar dados no Catálogo do Unity, os clusters devem ser configurados com o modo de acesso correto. O Catálogo do Unity é 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 Catálogo do Unity. Consulte Modos de acesso.

Para obter informações sobre a funcionalidade atualizada do Catálogo do Unity em versões posteriores do Databricks Runtime, confira as notas de versão.

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

Suporte ao formato de arquivo

O Catálogo do Unity é compatível com os seguintes formatos de tabela:

Limitações

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

Cargas de trabalho de streaming estruturadas têm limitações adicionais, dependendo do Databricks Runtime e do modo de acesso. Confira Limitações do modo de acesso de computação para o Catálogo do Unity.

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 de nível de espaço de trabalho) não podem ser usados em instruções GRANT do Catálogo do Unity. Isso serve para garantir uma exibição consistente de grupos que podem se estender entre workspaces. Para usar os grupos em instruções GRANT, crie seus grupos no nível da conta e atualize qualquer automação para o gerenciamento de entidades ou de grupos (como os conectores do SCIM, do Okta, do Microsoft Entra ID, antigo Azure Active Directory e do Terraform), a fim de referenciar os pontos de extremidade de conta em vez dos pontos de extremidade de workspace. Confira Diferença entre os grupos de contas e os grupos locais de workspace.

  • As cargas de trabalho no R não dão suporte ao uso de exibições dinâmicas para segurança em nível de linha ou de coluna.

  • Clones rasos não têm suporte no Catálogo do Unity em uma computação que execute o Databricks Runtime 12.2 LTS e versões anteriores. Você pode usar clones rasos para criar tabelas gerenciadas no Databricks Runtime 13.3 LTS e versões posteriores. Você não pode usá-los para criar tabelas externas, independentemente da versão do Databricks Runtime. Confira Clone superficial para tabelas do Catálogo do Unity.

  • Não há suporte para o particionamento de memória em tabelas do Catálogo do Unity. Se você executar comandos que tentem criar uma tabela em bucket no Catálogo do Unity, uma exceção será gerada.

  • A gravação no mesmo caminho ou na tabela Delta Lake de workspaces em várias regiões pode resultar em um desempenho não confiável se alguns clusters acessarem o Catálogo do Unity e outros não.

  • Os esquemas de partição personalizados que foram criados usando comandos como ALTER TABLE ADD PARTITION não têm suporte para tabelas no Unity Catalog. O Unity Catalog pode acessar tabelas que usam o particionamento em estilo de diretório.

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

  • Não há suporte para UDFs do Python no Databricks Runtime 12.2 LTS e versões posteriores. Isso inclui UDAFs, UDTFs e Pandas no Spark (applyInPandas e mapInPandas). UDFs escalares do Python têm suporte no Databricks Runtime 13.3 LTS e versões posteriores.

  • Não há suporte para UDFs do Scala no Databricks Runtime 14.1 e versões anteriores em clusters compartilhados. Há suporte para UDFs escalares do Scala no Databricks Runtime 14.2 e versões posteriores em clusters compartilhados.

  • Não há suporte para pools de threads em Escala 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, não há suporte para os seguintes pools de threads em ThreadUtils : ThreadUtils.newForkJoinPool e qualquer pool de threads ScheduledExecutorService.

  • O log de auditoria tem suporte apenas para eventos do Unity Catalog no nível do workspace. Os eventos que ocorrem no nível da conta sem referência a um workspace, como a criação de um metastore, não são registrados.

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

Cotas de recursos

O Catálogo do Unity impõe cotas de recursos em todos os objetos protegíveis. Se você espera exceder esses limites de recursos, entre em contato com sua equipe de conta do Azure Databricks.

Os valores de cota abaixo são expressos em relação ao objeto pai (ou avô) no Unity Catalog.

Objeto Pai Valor
tabela esquema 10000
tabela metastore 1.000.000
volume esquema 10000
function esquema 10000
modelo registrado esquema 1000
modelo registrado metastore 5000
versão de modelo modelo registrado 10000
versão de modelo metastore 100000
esquema catálogo 10000
catálogo metastore 1000
connection metastore 1000
credencial de armazenamento metastore 200
local externo metastore 10000

Para saber os limites do Delta Sharing, veja Cotas de recursos.