O que é federação de catálogos?
Com a federação de catálogos, você acessa diretamente a tabela externa no armazenamento de objetos. A consulta é executada apenas utilizando Databricks compute e, portanto, é mais econômica e otimizada em termos de desempenho. A federação de catálogos é utilizada para federar plataformas que possuem serviço de catálogo e suportam formatos de tabela abertos, como metastores externos Hive, metastores Databricks Hive , AWS Glue, Salesforce Data Cloud e Snowflake.
Casos de uso comuns
Os casos de uso comuns incluem:
- Como uma etapa na migração para o Unity Catalog, é possível habilitar a migração incremental sem adaptação de código, com algumas de suas cargas de trabalho continuando a utilizar os dados registrados em seu catálogo externo enquanto outras são migradas.
- Para fornecer um modelo híbrido de longo prazo para organizações que precisam manter alguns dados em um catálogo externo, juntamente com os dados registrados no Unity Catalog.
Visão geral da federação de catálogos
Com a federação de catálogos, é possível criar uma conexão do seu Databricks workspace para o seu catálogo externo, e o Unity Catalog rastreia o catálogo externo para preencher um catálogo externo, às vezes chamado de catálogo federado, que permite que sua organização trabalhe com as tabelas do catálogo externo em Unity Catalog, fornecendo controles de acesso centralizados, linhagem, pesquisa e muito mais.
Catálogos externos federados que são externos ao seu Databricks workspace, incluindo AWS Glue, permitem leituras usando Unity Catalog. Os metastores internos do Hive permitem leituras e gravações, atualizando os metadados Hive metastore, bem como os metadados Unity Catalog quando você modifica os metadados.
Quando você consulta tabelas externas em um catálogo externo federado, o Unity Catalog fornece a camada de governança, executando funções como verificações de controle de acesso e auditoria, enquanto as consultas são executadas usando a semântica do catálogo externo. Por exemplo, se um usuário consultar uma tabela armazenada no formato Parquet em um catálogo externo:
- O Unity Catalog verifica se o usuário tem acesso à tabela e infere a linhagem para a consulta.
- A consulta em si é executada no catálogo externo subjacente, utilizando os metadados e as informações de partição mais recentes armazenados nele.
O que são caminhos autorizados?
Ao criar um catálogo externo respaldado por uma federação d Hive metastore, é solicitado que você forneça caminhos autorizados para o armazenamento em nuvem onde as tabelas Hive metastore estão armazenadas. Qualquer tabela que você deseja acessar usando uma federaçã Hive metastore, deve estar coberta por esses caminhos. A Databricks recomenda que os caminhos autorizados sejam subcaminhos comuns a um grande número de tabelas. Por exemplo, se você tiver tabelas em s3://bucket/table1
, s3://bucket/table2
e s3://bucket/table3
, deverá fornecer s3://bucket/
como um caminho autorizado.
Os caminhos autorizados adicionam uma camada extra de segurança aos catálogos externos protegidos por uma federação Hive metastore. Eles permitem que o proprietário do catálogo aplique barreiras aos dados que os usuários podem acessar usando a federação. Isso é útil se o seu Hive metastore permite que os usuários atualizem metadados e alterem arbitrariamente os locais das tabelas, atualizações que, de outra forma, seriam sincronizadas no catálogo externo. Nesse cenário, os usuários poderiam potencialmente redefinir tabelas às quais já têm acesso para que elas apontem para novos locais aos quais, de outra forma, não teriam acesso.
Exemplo: Não garantido Hive metastore
O exemplo a seguir demonstra como um usuário mal-intencionado poderia contornar as permissões de Unity Catalog e acessar dados confidenciais em um catálogo federado manipulando caminhos em um Hive metastore não seguro.
Um administrador configura uma federação Hive metastore e concede ao Paul acesso ao esquema non_sensitive
em Unity Catalog. Paul não tem acesso ao esquema sensitive_table
no Unity Catalog.
Embora Unity Catalog seja seguro, Hive metastore não é seguro. Paul tem a capacidade de alterar o caminho da tabela non_sensitive_table
em Hive metastore para s3://abc/def
. No próximo " refresh " do catálogo federado, o caminho da tabela federada em Unity Catalog é atualizado. Como o Unity Catalog já possui uma credencial de armazenamento para acessar s3://abc/def
e o Paul possui acesso a SELECT
, ele agora pode acessar os dados da tabela sensitive_table
.
Para adicionar caminhos autorizados em escala, é possível utilizar as seguintes ferramentas:
-
Funções auxiliares integradas do Assistente deUnity Catalog Migração
-
Ferramentas de automação como Terraform
-
Funções auxiliares pré-construídas no seguinte Notebook: