O que é Unity Catalog?

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

Observação

O Unity Catalog também está disponível como uma implementação de código aberto. Veja os blogs de anúncios e o público Unity Catalog GitHub repo.

Visão geral do Unity Catalog

O Unity Catalog oferece recursos centralizados de controle de acesso, auditoria, linhagem e descoberta de dados nos workspaces do Databricks.

Diagrama do Unity Catalog

Os principais recursos do Unity Catalog incluem:

  • Defina uma vez, proteja em qualquer lugar: o Unity Catalog oferece um local único para administrar políticas de acesso a dados que se aplicam a todos os workspace.

  • Modelo de segurança em conformidade com os padrões: Unity CatalogO modelo de segurança do 's é baseado no padrão ANSI SQL e permite que os administradores concedam permissões em seu site data lake usando uma sintaxe familiar, no nível de catálogos, esquemas (também chamados de bancos de dados), tabelas e visualizaçõ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 oferece 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 query facilmente os dados operacionais da sua account , incluindo logs de auditoria, uso faturável e linhagem.

O modelo de objeto Unity Catalog

No Unity Catalog, todos os metadados são registrados em um metastore. A hierarquia dos 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 o senhor faz referência a tabelas, visualizações, volumes, modelos e funções.

Diagrama de modelo de objeto do Unity Catalog

Metastores

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

O senhor deve ter um metastore para cada região em que tem um espaço de trabalho. Como um workspace é anexado a um metastore? Consulte Como configurar o Unity Catalog 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 dados ativos e, normalmente, são usados como o nível superior em seu esquema de isolamento de dados. Os catálogos geralmente refletem as unidades organizacionais ou os escopos do ciclo de vida do desenvolvimento de software. Consulte O que são catálogos no Databricks?

  • Objetos não protegíveis por dados, como credenciais de armazenamento e locais externos, são usados para gerenciar seu modelo de governança de dados no Unity Catalog. Eles 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, visualizações, volumes, modelos de IA e funções. Os esquemas organizam os dados e a IA ativa 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 sandbox da equipe. Consulte O que são esquemas em Databricks?

Nível três:

Trabalho com objetos de banco de dados no Unity Catalog

Trabalhar com objetos de banco de dados em Unity Catalog é muito semelhante a trabalhar com objetos de banco de dados registrados em Hive metastore, com a exceção de que Hive metastore não inclui catálogos no namespace do objeto. O senhor 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. O senhor 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 em Databricks e Trabalhe com Unity Catalog e o legado Hive metastore.

Outros objetos protegíveis

Além dos objetos do banco de dados e do IA ativo contidos nos esquemas, o site Unity Catalog também regula o acesso ao uso de dados dos seguintes objetos seguros:

  • Salas limpas, que representam um ambiente Databricks-gerenciar onde vários participantes podem colaborar em projetos sem compartilhar dados subjacentes entre si. Veja o que é o Databricks Clean Rooms?

  • Shares, que são objetos Delta Sharing que representam uma coleção de dados somente leitura e IA ativo que um provedor de dados compartilha com um ou mais destinatários.

  • Destinatários, que são objetos Delta Sharing que representam uma entidade que recebe compartilhamentos de um provedor de dados.

  • Providers, que são objetos Delta Sharing que representam uma entidade que compartilha dados com um destinatário.

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

Concessão e revogação de acesso a objetos de banco de dados e outros objetos protegíveis no Unity Catalog

O senhor pode conceder e revogar o 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.

O senhor pode usar o comando ANSI SQL típico para conceder e revogar o acesso a objetos em Unity Catalog. Por exemplo:

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

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

Conceder privilégio usando o Catalog Explorer

Para saber como gerenciar privilégios em Unity Catalog, consulte gerenciar privilégios em Unity Catalog.

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

Unity Catalog opera com base no princípio do menor privilégio, em que os usuários têm o mínimo de acesso necessário para realizar a tarefa exigida. Quando um workspace é criado, os usuários não administradores têm acesso apenas ao catálogoworkspace de provisionamento automático, 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 em Unity Catalog. Consulte Privilégios do catálogo do espaço de trabalho.

Funções administrativas

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

gerenciar versus tabelas e volumes externos

As tabelas e os volumes podem ser gerenciais ou externos.

  • As tabelas gerenciar são totalmente gerenciadas por Unity Catalog, o que significa que Unity Catalog gerencia tanto a governança quanto os arquivos de dados subjacentes para cada tabela gerenciar. As tabelas gerenciar são armazenadas em um local do Unity Catalog-gerenciar em seu armazenamento cloud. As tabelas gerenciais sempre usam o formato Delta Lake. O senhor pode armazenar tabelas gerenciais nos níveis do metastore, do catálogo ou do esquema.

  • Tabelas externas são tabelas cujo acesso a partir de Databricks é gerenciado por Unity Catalog, mas cujo ciclo de vida de dados e disposição de arquivos são gerenciados usando seu provedor cloud e outras plataformas de dados. Normalmente, o senhor usa tabelas externas para registrar grandes quantidades de dados existentes em Databricks ou se também precisar de acesso de gravação às ferramentas de uso de dados fora de Databricks. As tabelas externas são suportadas em vários formatos de dados. Depois que uma tabela externa é registrada em um metastore Unity Catalog, o senhor pode gerenciar e auditar o acesso Databricks a ela - e trabalhar com ela - da mesma forma que faz com as tabelas gerenciadas.

  • Os volumes ger enciados são totalmente gerenciados pelo Unity Catalog, o que significa que o Unity Catalog gerencia o acesso ao local de armazenamento do volume em seu provedor cloud account. Quando o senhor cria um volume gerenciar, ele é armazenado automaticamente no local de armazenamento gerenciar atribuído ao esquema que o contém.

  • Os volumes externos representam dados existentes em locais de armazenamento gerenciados fora de Databricks, mas registrados em Unity Catalog para controlar e auditar o acesso de dentro de Databricks. Ao criar um volume externo no Databricks, o usuário especifica sua localização, que deve estar em um caminho definido em uma localização externa do Unity Catalog.

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

Consulte Trabalhar com tabelas gerenciar, Trabalhar com tabelas externas e Gerenciar vs. volumes externos.

Isolamento de dados usando armazenamento gerenciável

Sua organização pode exigir que determinados tipos de dados sejam armazenados em contas ou buckets específicos em sua nuvem tenant.

O Unity Catalog oferece a capacidade de configurar locais de armazenamento no nível do metastore, do catálogo ou do 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 compliance que exija que os dados de produção relacionados a recursos humanos residam no bucket s3://mycompany-hr-prod. No Unity Catalog, o senhor 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 s3://mycompany-hr-prod/unity-catalog a ele. Isso significa que gerenciar tabelas ou volumes criados no catálogo hr_prod (por exemplo, usando CREATE TABLE hr_prod.default.table ) armazena seus dados em s3://mycompany-hr-prod/unity-catalog. Opcionalmente, o senhor pode optar por fornecer locais em nível de esquema para organizar os dados dentro do hr_prod catalog em um nível mais granular.

Se o isolamento do armazenamento não for necessário para alguns catálogos, o senhor poderá, opcionalmente, definir um local de armazenamento no nível do metastore. Esse local serve como um default local para gerenciar tabelas e volumes em catálogos e esquemas que não têm armazenamento atribuído. No entanto, normalmente, o site Databricks recomenda que o senhor atribua locais de armazenamento gerenciar separados para cada catálogo.

Para obter mais informações, consulte Specify a gerenciar storage location em Unity Catalog e Data is physically separated in storage.

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

Pelo site default, os proprietários de catálogos (e administradores de metastore, se estiverem definidos para o account) podem tornar um catálogo acessível aos usuários em vários espaços de trabalho anexados ao mesmo Unity Catalog metastore. No entanto, se o senhor usar o espaço de trabalho para isolar o acesso aos dados do usuário, talvez queira limitar o acesso ao catálogo a um espaço de trabalho específico no site account, para garantir que determinados tipos de dados sejam processados somente nesse espaço de trabalho. O senhor pode querer um espaço de trabalho separado para produção e desenvolvimento, por exemplo, ou um workspace separado para o processamento de dados pessoais. Isso é conhecido como workspace-catalog binding. Consulte Limitar o acesso do catálogo a um espaço de trabalho específico.

Observação

Para aumentar o isolamento dos dados, o senhor também pode vincular o acesso ao armazenamento cloud e o acesso ao serviço cloud a um espaço de trabalho específico. 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.

Auditoria de acesso aos dados

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

O senhor pode acessar a auditoria do seu account logs usando as tabelas do sistema gerenciadas pelo Unity Catalog.

Consulte Auditar eventos do Unity Catalog, Eventos do Unity Catalog e Monitorar a atividade da conta com tabelas do sistema.

acompanhamento linhagem de dados

O senhor pode usar o site Unity Catalog para capturar a linhagem de dados em tempo de execução em consultas em qualquer idioma executadas em um clustering Databricks ou SQL warehouse. A linhagem é capturada até o nível da coluna e inclui Notebook, Job e dashboards relacionados à consulta. Para saber mais, consulte Capture e view linhagem de dados usando Unity Catalog.

Federação Lakehouse e Unity Catalog

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

A Databricks usa o Unity Catalog para gerenciar a federação de consultas. Use o Unity Catalog para configurar conexões somente leitura com sistemas de bancos de dados externos populares e criar catálogos externos que espelhem bancos de dados externos. Unity Cataloggarantem que o acesso aos dados seja gerenciado e auditado para todas as consultas federadas feitas pelos usuários em seu espaço de trabalho Databricks.

Veja o que é Lakehouse Federation?

Delta Sharing, Databricks Marketplace e Unity Catalog

Delta Sharing é uma plataforma segura de compartilhamento de dados que permite que o senhor compartilhe dados e AI ativo 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?

Databricks Marketplace, um fórum aberto para troca de dados de produto, foi desenvolvido com base em Delta Sharing e, como tal, o senhor deve ter um workspace habilitado para o Unity Catalog para ser um provedor de marketplace. Consulte O que é o Databricks Marketplace?

Como configuro o Unity Catalog para minha organização?

Para usar o Unity Catalog, seu Databricks workspace deve estar habilitado para Unity Catalog, o que significa que o workspace está anexado a um Unity Catalog metastore.

Como um workspace é anexado a um metastore? Depende do site account e do site workspace:

  • Normalmente, quando o senhor cria um Databricks workspace em uma região pela primeira vez, o metastore é criado automaticamente e anexado ao workspace.

  • Para algumas contas mais antigas, um administrador do account deve criar o metastore e atribuir o espaço de trabalho nessa região ao metastore. Para obter instruções, consulte Criar um metastore do Unity Catalog.

  • Se um account já tiver um metastore atribuído a uma região, um administrador do account poderá decidir se anexará o metastore automaticamente a todos os novos espaços de trabalho nessa região. Consulte Habilitar um metastore para ser atribuído automaticamente a um novo espaço de trabalho.

Independentemente de o seu workspace ter sido habilitado automaticamente para Unity Catalog, os seguintes passos também são necessários para começar a usar o Unity Catalog:

  • Criar catálogos e esquemas para conter objetos de banco de dados, como tabelas e volumes.

  • Criar locais de armazenamento gerenciar para armazenar as tabelas e os volumes gerenciar nesses catálogos e esquemas.

  • Conceder acesso de usuário a catálogos, esquemas e objetos de banco de dados.

que são automaticamente habilitados para Unity Catalog provisionamento de um catálogoworkspace com privilégios amplos concedidos a todos os usuários workspace. Esse 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 Unity Catalog.

Migração de um espaço de trabalho existente para o Unity Catalog

Se o senhor tiver um workspace mais antigo que habilitou recentemente para Unity Catalog, provavelmente terá dados gerenciados pelo legado Hive metastore. O senhor pode trabalhar com esses dados juntamente com os dados registrados em Unity Catalog, mas o legado de Hive metastore está obsoleto e o senhor deve migrar os dados de Hive metastore para Unity Catalog o mais rápido possível para aproveitar os recursos superiores de governança e desempenho de Unity Catalog.

A migração envolve o seguinte:

  1. Converter todos os grupos workspace-local em grupos account-level. Unity Catalog centraliza o gerenciamento de identidade no nível account.

  2. Migrar tabelas e gerenciar visualizações em Hive metastore para Unity Catalog.

  3. Atualize as consultas e o trabalho para fazer referência às novas tabelas Unity Catalog em vez das antigas tabelas Hive metastore.

Os itens a seguir podem ajudá-lo a gerenciar uma migração:

Requisitos e restrições do Unity Catalog

Unity Catalog requer tipos específicos de compute e formatos de arquivo, descritos abaixo. Também estão listados abaixo alguns Databricks recursos que não são totalmente compatíveis com Unity Catalog em todas as versões de Databricks Runtime.

Suporte à região

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

Requisitos de computação

O Unity Catalog é compatível com clusters que executam o Databricks Runtime 11.3 LTS ouacima. O Unity Catalog é compatível por padrão com todas as versões de computação do SQL warehouse.

Os clusters executados em versões anteriores do Databricks Runtime não oferecem compatibilidade com todos os recursos e funcionalidades do Unity Catalog GA.

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

Para obter informações detalhadas sobre as alterações de funcionalidade Unity Catalog em cada versão do Databricks Runtime, consulte as notas sobre a 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 arquivo

O Unity Catalog é compatível com os seguintes formatos de tabela:

Requisitos de nomeação de objetos seguros

As seguintes limitações se aplicam a todos os nomes de objetos no Unity Catalog:

  • Os nomes dos objetos não podem exceder 255 caracteres.

  • Os seguintes caracteres especiais não são permitidos:

    • Período (.)

    • Espaço ( )

    • Barra (/)

    • Todos os caracteres de controle ASCII (00-1F hex)

    • O caractere DELETE (7F hex)

  • O Unity Catalog armazena todos os nomes de objetos em letras minúsculas.

  • Ao fazer referência a nomes UC em SQL, você deve usar backticks para nomes de escape que contenham caracteres especiais, como hífens (-).

Observação

Os nomes das colunas podem usar caracteres especiais, mas o nome deve ser escapado com acentos graves em todas as instruções SQL se forem usados caracteres especiais. Unity Catalog preserva a capitalização do nome da coluna, mas query nas tabelas Unity Catalog não diferencia maiúsculas de minúsculas.

Limitações

O Unity Catalog tem as seguintes limitações. Alguns deles são específicos das versões mais antigas do site Databricks Runtime e dos modos de acesso do site compute.

As cargas de trabalho de transmissão estruturada têm limitações adicionais, dependendo do site Databricks Runtime e do modo de acesso. Consulte Limitações do modo de acesso à computação para o Unity Catalog.

A Databricks lança regularmente novas funcionalidades que reduzem essa lista.

  • Os grupos que foram criados anteriormente em um workspace (ou seja, grupos de nível workspace) não podem ser usados em declarações Unity Catalog GRANT. Isso é para garantir uma view consistente de grupos que podem se estender por todo o espaço de trabalho. Para usar grupos em declarações GRANT, crie seus grupos no nível account e atualize qualquer automação para o gerenciamento de diretores ou grupos (como SCIM, conectores Okta e Microsoft Entra ID e Terraform) para fazer referência ao endpoint account em vez do endpoint workspace. Consulte Diferença entre grupos de contas e grupos locais do espaço de trabalho.

  • As cargas de trabalho no R não são compatíveis com o uso da visualização dinâmica para segurança em nível de linha ou coluna no site compute executando Databricks Runtime 15.3 e abaixo.

    Use um único usuário compute recurso executando Databricks Runtime 15.4 LTS ou acima para cargas de trabalho em R que consultam a exibição dinâmica. Essas cargas de trabalho também exigem um workspace que esteja habilitado para serverless compute. Para obter detalhes, consulte Controle de acesso refinado em computação de usuário único.

  • Não há suporte para clones rasos em Unity Catalog em compute executando Databricks Runtime 12.2 LTS e abaixo. O senhor pode usar clones rasos para criar tabelas gerenciáveis em Databricks Runtime 13.3 LTS e acima. O senhor não pode usá-los para criar tabelas externas, independentemente da versão do Databricks Runtime. Consulte Shallow clone para tabelas do Unity Catalog.

  • O agrupamento não é compatível com as tabelas do Unity Catalog. Se você executar comandos que tentarem criar uma tabela agrupada no Unity Catalog, isso vai gerar uma exceção.

  • Gravar no mesmo caminho ou tabela Delta Lake de workspaces 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 exige que o registro de metadados da partição esteja ativado. Consulte Descoberta de partições para tabelas externas.

  • Ao usar o modo de substituição para tabelas que não estejam no formato Delta, o usuário deve ter o privilégio CREATE TABLE no esquema pai e deve ser o proprietário do objeto existente OU ter o privilégio MODIFY no objeto.

  • Python Não há suporte para UDFs em Databricks Runtime 12.2 LTS e abaixo. Isso inclui UDAFs, UDTFs e Pandas no Spark (applyInPandas e mapInPandas). Python Os UDFs escalares são compatíveis com Databricks Runtime 13.3 LTS e acima.

  • Scala Não há suporte para UDFs em Databricks Runtime 14.1 e abaixo em clusters compartilhado. Scala As UDFs escalonadas são suportadas em Databricks Runtime 14.2 e acima em clusters compartilhado.

  • Os pools de thread padrão do Scala não são suportados. Em vez disso, use os conjuntos de threads especiais em org.apache.spark.util.ThreadUtils, por exemplo, org.apache.spark.util.ThreadUtils.newDaemonFixedThreadPool. No entanto, os seguintes conjuntos de thread em ThreadUtils não são suportados: ThreadUtils.newForkJoinPool e qualquer conjunto de threads ScheduledExecutorService.

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

cotas de recursos

Unity Catalog impõe cotas de recurso em todos os objetos protegíveis. Essas cotas são listadas em limites de recurso. Se o senhor espera exceder esses limites de recurso, entre em contato com a equipe Databricks account .

O senhor pode monitorar o uso da cota usando o recurso Unity Catalog quotas APIs. Consulte Monitorar o uso das cotas de recurso do Unity Catalog .