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. Normalmente, um metastore é criado automaticamente quando o senhor cria um Databricks workspace em uma região pela primeira vez. Para algumas contas mais antigas, um administrador do account deve criar o metastore e atribuir o espaço de trabalho dessa região ao metastore.

Consulte Criar um metastore Unity Catalog .

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 ficam 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:

Para obter mais informações sobre os objetos seguros do Delta Sharing, consulte Compartilhar dados e IA ativo com segurança usando o 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 dados de determinados tipos sejam armazenados em contas ou compartimentos específicos no site cloud 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 a um espaço de trabalho específico. Consulte (Opcional) Assign a storage credential to specific workspaces (Atribuir uma credencial de armazenamento a espaços de trabalho específicos) e (Opcional) Assign an external location to specific workspaces (Atribuir um local externo 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 o uso com tabelas do sistema.

acompanhamento linhagem de dados

O senhor pode usar o Unity Catalog para capturar a linhagem de dados em tempo de execução em consultas em qualquer idioma executadas em clusters do Databricks ou em SQL warehouse. A linhagem é capturada até o nível da coluna e inclui Notebook, fluxo de trabalho e dashboards relacionados à consulta. Para saber mais, consulte Captura e view linhagem de dados usando o 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.

O Databricks usa o Unity Catalog para gerenciar a federação query . 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 query federadas feitas pelos usuários em seu workspace 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 IA 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. Veja Compartilhar dados e IA ativo com segurança usando 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. Todos os novos espaços de trabalho são habilitados para Unity Catalog automaticamente após a criação, mas os espaços de trabalho mais antigos podem exigir que um administrador de account habilite Unity Catalog manualmente. 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 fluxo de 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 principais ou grupos (como SCIM, conectores Okta e Microsoft Entra ID (anteriormente Azure Active Directory) 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 recurso de usuário único compute executando Databricks Runtime 15.4 LTS ou acima para cargas de trabalho em R que consultam a exibição dinâmica (Public Preview). 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.

  • Esquemas de partição personalizados criados com comandos como ALTER TABLE ADD PARTITION não são suportados para tabelas no Unity Catalog. O Unity Catalog pode acessar tabelas que usam particionamento no estilo de diretório.

  • O modo de substituição para operações de gravação de DataFrame no Unity Catalog é suportado somente para tabelas Delta, 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.

  • 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. Se o senhor espera exceder esses limites de recurso, entre em contato com a equipe Databricks account .

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

Objeto

Pai

Valor

mesa

esquema

10000

mesa

metastore

1000000

volume

esquema

10000

volume

metastore

100.000

função

esquema

10000

modelo registado

esquema

1000

modelo registado

metastore

5000

versão do modelo

modelo registado

10000

versão do modelo

metastore

100.000

esquema

Catálogo

10000

Catálogo

metastore

1000

conexão

metastore

1000

Credencial de armazenamento

metastore

200

localização externa

metastore

10000

Para limites Delta Sharing , consulte Cotas de recursos.