Hive metastore federação: permite que Unity Catalog governe tabelas registradas em uma Hive metastore
Prévia
Este recurso está em visualização pública.
Este artigo apresenta a federação Hive metastore, um recurso que permite que o Unity Catalog governe tabelas armazenadas em um Hive metastore. O senhor pode federar um Hive metastore externo, AWS Glue ou um Databricks interno legado Hive metastore.
Hive metastore A federação pode ser usada nos seguintes casos de uso:
Como uma etapa no caminho de migração para Unity Catalog, permitindo a migração incremental sem adaptação de código, com algumas de suas cargas de trabalho continuando a usar dados registrados em Hive metastore enquanto outras são migradas.
Esse caso de uso é mais adequado para organizações que usam um Databricks Hive metastore interno legado atualmente, porque os metastores Hive internos federados permitem cargas de trabalho de leitura e gravação.
Fornecer um modelo híbrido de longo prazo para organizações que precisam manter alguns dados em Hive metastore juntamente com seus dados registrados em Unity Catalog.
Esse caso de uso é mais adequado para organizações que usam um Hive metastore externo ou AWS Glue atualmente, porque os catálogos federados para esses metastores Hive são somente leitura.
Visão geral da federação Hive metastore
Na federação Hive metastore, o senhor cria uma conexão do seu Databricks workspace para o seu Hive metastore, e o Unity Catalog rastreia o Hive metastore para preencher um catálogo federado que permite que sua organização trabalhe com as tabelas Hive metastore no Unity Catalog, fornecendo controles de acesso centralizados, linhagem, pesquisa e muito mais.
Os metastores federados Hive 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 do Hive metastore e do Unity Catalog quando o senhor modifica os metadados.
Quando o senhor consulta o Hive metastore ativo 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 Hive metastore. Por exemplo, se um usuário consultar uma tabela armazenada no formato Parquet em um catálogo federado, então:
O Unity Catalog verifica se o usuário tem acesso à tabela e infere a linhagem para a consulta.
A própria consulta é executada no site subjacente Hive metastore, aproveitando os metadados mais recentes e as informações de partição armazenadas nele.
Como a federação Hive metastore se compara ao uso de tabelas externas Unity Catalog?
Unity Catalog tem a capacidade de criar tabelas externas, pegando dados que já existem em um local arbitrário de armazenamento na nuvem e registrando-os em Unity Catalog como uma tabela. Esta seção explora as diferenças entre as tabelas Hive metastore externas e federadas.
Ambos os tipos de tabela têm as seguintes propriedades:
Pode ser usado para registrar um local arbitrário no armazenamento em nuvem como uma tabela.
Pode aplicar permissões do Unity Catalog e controles de acesso refinados.
Podem ser visualizados na linhagem para consultas que os referenciam.
Somente tabelas federadas têm as seguintes propriedades:
São descobertos automaticamente com base no rastreamento de um site Hive metastore. Assim que as tabelas são criadas no Hive metastore, elas são exibidas e ficam disponíveis para consulta no catálogo federado Unity Catalog.
Permitir que as tabelas sejam definidas com a semântica do Hive, como Hive SerDes e partições.
Permita que as tabelas tenham caminhos sobrepostos com outras tabelas em catálogos federados.
Permitir que as mesas sejam colocadas em DBFS root locais.
Inclua a visualização que está definida em Hive metastore.
Dessa forma, o senhor pode pensar nas tabelas federadas Hive metastore como oferecendo compatibilidade retroativa com Hive metastore, permitindo que as cargas de trabalho usem a semântica somente Hive, mas com a governança fornecida por Unity Catalog.
No entanto, alguns Unity Catalog recursos não estão disponíveis em tabelas federadas, por exemplo:
recurso disponível somente para Unity Catalog gerenciar tabelas, como otimização preditiva.
Pesquisa vetorial, Delta Sharing, monitoramento de lagos e tabelas on-line.
Algumas funcionalidades da loja de recursos, incluindo a criação de lojas de recursos, criação de modelos de serviço, criação de especificações de recursos, registro de modelos e pontuação de lotes.
O desempenho pode ser marginalmente pior do que as cargas de trabalho em Unity Catalog ou Hive metastore porque tanto Hive metastore quanto Unity Catalog estão no caminho de consulta de uma tabela federada.
Para obter mais informações sobre a funcionalidade suportada, consulte Requisitos, recurso suportado e limitações.
O que significa escrever em um catálogo Hive metastore federado em Databricks?
As gravações são compatíveis apenas com os metastores internos federados do Hive, não com os metastores externos do Hive ou com o AWS Glue.
As gravações em metástores federados são de dois tipos:
Operações DDL como
CREATE TABLE
,ALTER TABLE
, eDROP TABLE
.As operações DDL são refletidas de forma síncrona no site subjacente Hive metastore. Por exemplo, a execução de uma instrução
CREATE TABLE
cria a tabela tanto no Hive metastore quanto no catálogo federado.Aviso
Isso também significa que
DROP
comandos são refletidos no site Hive metastore. Por exemplo,DROP SCHEMA mySchema CASCADE
elimina todas as tabelas do esquema subjacente Hive metastore, sem a opçãoUNDROP
, porque o site Hive metastore não oferece suporte aUNDROP
.Operações DML, como
INSERT
,UPDATE
, eDELETE
.As operações DML também são refletidas de forma síncrona na tabela Hive metastore subjacente. Por exemplo, a execução de
INSERT INTO
adiciona registros à tabela no endereço Hive metastore.O suporte à gravação é um key para permitir uma transição perfeita durante a migração de Hive metastore para Unity Catalog. Consulte Como o senhor usa a federação Hive metastore durante a migração para Unity Catalog?
Como o senhor configura a federação Hive metastore?
Para configurar a federação Hive metastore, o senhor deve fazer o seguinte:
Crie uma conexão em Unity Catalog que especifique o caminho e as credenciais para acessar o site Hive metastore.
Hive metastore A federação usa essa conexão para rastrear o site Hive metastore. Para a maioria dos sistemas de banco de dados, você fornece um nome de usuário e uma senha. Para a AWS Glue, o senhor fornece uma IAM role. Para uma conexão com um legado interno Databricks workspace Hive metastore, Hive metastore a federação cuida da autorização.
Crie uma credencial de armazenamento e um local externo em Unity Catalog para os caminhos das tabelas registradas em Hive metastore.
Os locais externos contêm caminhos e as credenciais de armazenamento necessárias para acessar esses caminhos. As credenciais de armazenamento são objetos protegíveis Unity Catalog que especificam credenciais, como a função IAM, para acesso ao armazenamento em nuvem. Dependendo do fluxo de trabalho escolhido para a criação de locais externos, talvez seja necessário criar credenciais de armazenamento antes de criar o local externo.
Crie um catálogo federado no Unity Catalog, usando a conexão que o senhor criou na etapa 1.
Esse é o catálogo que os usuários do workspace e do fluxo de trabalho usam para trabalhar com as tabelas do Hive metastore usando o Unity Catalog. Depois de criar o catálogo federado, o site Unity Catalog o preenche com as tabelas registradas no site Hive metastore.
Conceda privilégios às tabelas no catálogo federado usando o Unity Catalog.
O senhor também pode usar filtros de linha e coluna do Unity Catalog para controle de acesso refinado.
começar a consultar dados.
O acesso ao uso federado de dados Unity Catalog é somente leitura para os metastores externos Hive e AWS Glue, e leitura e gravação para os metastores internos Hive.
Para metastores internos Hive, metastores externos Hive e metastores Glue, o Unity Catalog atualiza continuamente os metadados da tabela à medida que são alterados no Hive metastore. Para os metastores internos do Hive, as novas tabelas e as atualizações de tabelas enviadas do catálogo federado são gravadas de volta no Hive metastore, mantendo a interoperabilidade total entre os catálogos Unity Catalog e Hive metastore.
Para obter instruções detalhadas, consulte:
Como o senhor usa a federação Hive metastore durante a migração para Unity Catalog?
Hive metastore A federação permite que o senhor migre para Unity Catalog de forma incremental, reduzindo a necessidade de coordenação entre equipes e cargas de trabalho. Em particular, se estiver migrando do Databricks workspace 's internal Hive metastore, a capacidade de ler e gravar no Hive metastore e no Unity Catalog metastore significa que é possível manter metastores "espelhados" durante a migração, proporcionando os seguintes benefícios:
As cargas de trabalho que são executadas em catálogos federados são executadas no modo de compatibilidade Hive metastore, reduzindo o custo de adaptação do código durante a migração.
Cada carga de trabalho pode optar por migrar independentemente das outras, sabendo que, durante o período de migração, os dados estarão disponíveis tanto em Hive metastore quanto em Unity Catalog, aliviando a necessidade de coordenação entre cargas de trabalho que dependem umas das outras.
Esta seção descreve um fluxo de trabalho típico para a migração do legado interno de um Databricks workspace Hive metastore para Unity Catalog, com a federação Hive metastore facilitando a transição. Isso não se aplica à migração de um metastore externo do Hive ou do AWS Glue. Os catálogos federados para metastores externos do Hive não são compatíveis com gravações.
Etapa 1: Federar o sistema interno Hive metastore
Nesta etapa, o senhor cria um catálogo federado que espelha seu Hive metastore em Unity Catalog. Vamos chamá-lo de hms_in_uc
.
Observação
Como parte do processo de federação, você configura locais externos para fornecer acesso aos dados no armazenamento em nuvem. Em cenários de migração nos quais algumas cargas de trabalho estão consultando os mecanismos de acesso de uso de dados legados e outras cargas de trabalho estão consultando os mesmos dados em,Unity Catalog Unity Catalogos controles de acesso de -gerenciar em locais externos podem impedir que as cargas de trabalho legadas acessem os caminhos para o armazenamento a partir de Unity Cataloghabilitado compute para. O senhor pode ativar o "modofallback " nesses locais externos para recorrer a qualquer credencial de clustering ou de escopo de Notebook que tenha sido definida para a carga de trabalho herdada. Então, quando a migração estiver concluída, o senhor desativa o modo de fallback. Consulte O que é o modo fallback?
Para obter detalhes, consulte Habilitar a federação Hive metastore para um legado workspace Hive metastore .
Etapa 2. Execução de novas cargas de trabalho no catálogo federado em Unity Catalog
Quando o senhor tiver um catálogo federado em funcionamento, poderá conceder acesso a ele aos consumidores de SQL analistas e ciência de dados e começar a desenvolver novas cargas de trabalho que apontem para ele. As novas cargas de trabalho se beneficiam do conjunto de recursos adicionais em Unity Catalog, incluindo controles de acesso, pesquisa e linhagem.
Nessa etapa, você normalmente faz o seguinte:
Escolha compute compatível com o Unity Catalog (ou seja, modos de acesso de usuário único ou de clustering compartilhado, SQL warehouse ou serverless compute). Consulte Requisitos, recursos compatíveis e limitações.
Torne o catálogo federado o catálogodefault no recurso compute ou adicione
USE CATALOG hms_in_uc
à parte superior do seu código. Como os esquemas e os nomes de tabela no catálogo federado são espelhos exatos daqueles no Hive metastore, seu código começará a se referir ao catálogo federado.
Etapa 3. Migrar o trabalho existente para execução no catálogo federado
Para migrar o trabalho existente para consultar o catálogo federado:
Altere o catálogo default no clustering do Job para
hms_in_uc
, definindo uma propriedade no próprio clustering ou adicionandoUSE CATALOG hms_in_uc
na parte superior do código.Altere o Job para o modo de acesso de usuário único ou compartilhado compute e atualize para uma das versões do Databricks Runtime que ofereça suporte à federação Hive metastore. Consulte Requisitos, recursos compatíveis e limitações.
Solicite a um administrador do Databricks que conceda os privilégios corretos do Unity Catalog nos objetos de dados em
hms_in_uc
e em quaisquer caminhos de armazenamento em nuvem (incluídos em Unity Catalog locais externos) que o Job acesse. Consulte gerenciar privilégios em Unity Catalog.
Etapa 4. Negar acesso ao Hive metastore
Depois que o senhor migrar todas as suas cargas de trabalho para consultar o catálogo federado, não precisará mais do Hive metastore. O senhor pode usar as permissões de controle de acesso legado da tabela e compute para bloquear o acesso direto do seu Databricks workspace ao Hive metastore. Por exemplo, você pode:
Revogar todos os privilégios dos objetos no catálogo Hive metastore.
O comando
MSCK REPAIR PRIVILEGES
é conveniente para essa finalidade. Veja Msck REPAIR PRIVILEGES e Hive metastore privileges and securable objects (legado).Evite que os usuários criem e usem clusters que ignorem o controle de acesso da tabela (clusters que usam o modo de acesso No Isolation Shared ou um tipo de cluster personalizado legado).
Consulte Aplicar controle de acesso da tabela.
Tornar o catálogo federado o catálogo workspace default .
Consulte gerenciar o catálogo default .
Perguntas frequentes
As seções a seguir fornecem informações mais detalhadas sobre a federação Hive metastore.
O que é o modo fallback?
O modo de fallback é uma configuração em locais externos que o senhor pode usar para ignorar as verificações de permissão do Unity Catalog durante a migração para o Unity Catalog. A configuração garante que as cargas de trabalho que ainda não foram migradas não sejam afetadas durante a fase de configuração.
Unity Catalog ganha acesso ao armazenamento em nuvem usando locais externos, que são objetos seguros que definem um caminho e uma credencial para acessar seu armazenamento em nuvem account. Você pode emitir permissões para eles, como READ FILES
, para determinar quem pode usar o caminho. Um desafio durante o processo de migração é que talvez o senhor não queira que o Unity Catalog comece a governar todo o acesso ao caminho imediatamente, por exemplo, quando houver cargas de trabalho existentes e não migradas que façam referência ao caminho.
O modo fallback permite que o senhor adie a aplicação rigorosa do controle de acesso Unity Catalog em locais externos. Quando o modo fallback está ativado, as cargas de trabalho que acessam um caminho são primeiro verificadas em relação às permissões do Unity Catalog e, se falharem, voltam a usar credenciais de clustering ou de escopo de Notebook, como perfil de instância ou propriedades de configuração do Apache Spark. Isso permite que as cargas de trabalho existentes continuem usando suas credenciais atuais.
O modo fallback destina-se apenas ao uso durante a migração. O senhor deve desativá-lo quando todas as cargas de trabalho tiverem sido migradas e estiver pronto para aplicar os controles de acesso do Unity Catalog.
O que são caminhos autorizados?
Quando o senhor cria um catálogo federado, é solicitado a fornecer caminhos autorizados para o armazenamento em nuvem onde as tabelas Hive metastore estão armazenadas. Qualquer tabela que o senhor queira acessar usando a federação Hive metastore deve ser coberta por esses caminhos. A Databricks recomenda que seus caminhos autorizados sejam subcaminhos comuns em 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.
O senhor pode usar o UCX para ajudá-lo a identificar os caminhos que estão presentes em seu site Hive metastore.
Os caminhos autorizados adicionam uma camada extra de segurança aos catálogos federados, permitindo 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 site Hive metastore permitir que os usuários atualizem metadados e alterem arbitrariamente os locais das tabelas - atualizações que, de outra forma, seriam sincronizadas no catálogo federado. 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.
Posso federar os metastores do Hive usando o UCX?
UCX, o projeto do Databricks Labs para migrar o espaço de trabalho Databricks para Unity Catalog, inclui utilidades para habilitar a federação Hive metastore:
enable-hms-federation
create-federated-catalog
Consulte o readme do projeto no GitHub. Para obter uma introdução ao UCX, consulte Use as utilidades do UCX para atualizar seu workspace para Unity Catalog.
Requisitos, recursos suportados e limitações
A tabela a seguir lista o serviço e o recurso que são suportados pela federação Hive metastore. Em alguns casos, o serviço ou recurso sem suporte também é listado. Nessas tabelas, "HMS" significa Hive metastore.
Categoria |
Suportado |
Não suportado |
---|---|---|
Metastores |
|
|
Operações |
|
|
Hive metastore dados ativos |
|
|
Armazenar |
|
|
tipos de cálculo |
|
Sem clustering de isolamento |
versões de cálculo |
|
Delta Live Tables canal atual |
Unity Catalog recurso |
|
|