Habilitar a federação Hive metastore para os metastores do AWS Glue
Prévia
Este recurso está em visualização pública.
Este artigo mostra como federar um AWS Glue Hive metastore para que sua organização possa trabalhar com suas tabelas Hive metastore usando Unity Catalog.
Para obter uma visão geral da federação Hive metastore, consulte Hive metastore federation: enable Unity Catalog to govern tables registered in a Hive metastore.
Antes de começar
Veja a lista de serviços e recursos suportados pela federação Hive metastore: Requisitos, recursos suportados e limitações.
Os requisitos específicos para cada etapa estão listados abaixo.
Etapa 1: Conecte o site Unity Catalog ao seu AWS Glue Hive metastore
Para conectar o AWS Glue Hive metastore ao Databricks, o senhor deve:
Crie um IAM role com uma política de confiança que dê a Databricks acesso temporário a AWS Glue recurso.
Crie uma credencial de serviço que registre o IAM role em Unity Catalog. Uma credencial de serviço é um objeto seguro do Unity Catalog que encapsula uma credencial de nuvem de longo prazo.
Crie uma conexão do Unity Catalog com seu catálogo de cola do AWS a partir da Databricks. Uma conexão é um objeto seguro do Unity Catalog que especifica um caminho e as credenciais para acessar um sistema de banco de dados.
Requisitos
Você deve ter o seguinte:
A capacidade de criar um IAM role que concede acesso ao seu catálogo AWS Glue.
A região e o ID account do AWS account que contém seu catálogo AWS Glue.
Os privilégios
CREATE SERVICE CREDENTIAL
eCREATE CONNECTION
no metastore do Unity Catalog. Os administradores de metastore têm esses privilégios em default.
Criar a credencial IAM role e de serviço
Use as instruções da Etapa 1: Criar um IAM role para criar um IAM role que dê a Databricks acesso temporário ao seu recurso AWS Glue. Como o site IAM role deve ser assumido pelo senhor mesmo, o processo requer três etapas:
O senhor deve usar o exemplo de política de IAM para o AWS Glue que está incluído nestas instruções. O requisito de assumir uma função também é explicado nessas instruções.
Crie a conexão
Para criar uma conexão, você pode usar o Catalog Explorer ou o comando CREATE CONNECTION
do SQL em um Notebook do Databricks ou no editor de consultas SQL do Databricks.
Nota
O senhor também pode usar a API REST da Databricks ou a CLI da Databricks para criar uma conexão. Veja POST /api/2.1/unity-catalog/connections e Unity Catalog comando.
Em seu site Databricks workspace, clique em Catalog.
Na página Acesso rápido, clique em Adicionar dados > Adicionar uma conexão.
Insira um nome de conexão fácil de lembrar.
Selecione um tipo de conexão deHive metastore e o tipo de Metastore de AWS Glue.
Insira os seguintes detalhes da conexão para seu banco de dados host.
AWS Região: A região do site AWS account que contém o catálogo AWS Glue.
AWS ID da conta: O ID da conta do AWS account.
Credential (Credencial): Selecione a credencial de serviço que o senhor criou na etapa anterior.
(Opcional) Adicione um comentário.
(Opcional) Expanda Advanced options (Opções avançadas ) e insira o caminho totalmente qualificado para o diretório do Hive Warehouse.
O senhor só precisa disso se não quiser usar o local default.
Clique em Criar.
Execute o seguinte comando em um notebook ou no editor de consultas SQL do Databricks.
Inclua warehouse_directory
somente se o senhor não quiser usar o local do diretório do depósito default Hive para o seu Hive metastore.
CREATE CONNECTION <connection-name> TYPE glue
OPTIONS (
aws_region '<aws-region-ID>',
aws_account_id '<aws-account-ID>',
credential '<service-credential-ID>',
);
Etapa 2: Crie locais externos para os dados em seu Hive metastore
Nesta etapa, o senhor configura um local externo em Unity Catalog para controlar o acesso aos locais de armazenamento em nuvem que contêm os dados registrados no seu AWS Glue Hive metastore.
Os locais externos são objetos protegíveis do Unity Catalog que associam credenciais de armazenamento a caminhos de contêineres de armazenamento em nuvem. Consulte Locais externos e credenciais de armazenamento.
Requisitos
Para conhecer os requisitos de permissão do armazenamento em nuvem e da Databricks, consulte "Antes de começar" em Criar um local externo para conectar o armazenamento em nuvem à Databricks.
Opções para criar o local externo
O processo que a Databricks recomenda para criar um local externo no Unity Catalog depende de sua situação:
Se o senhor não tiver uma credencial de armazenamento criada em Unity Catalog, poderá criar o local externo usando um padrão do AWS CloudFormation que cria uma credencial de armazenamento e IAM role para o senhor. Siga as instruções em Criar um local externo para um bucket S3 usando um padrão AWS CloudFormation.
Se o senhor já tiver uma credencial de armazenamento criada no Unity Catalog, crie o local externo manualmente. Siga as instruções em Criar um local externo manualmente usando o Catalog Explorer ou Criar um local externo usando o SQL.
Ativar o modo de fallback em locais externos
Assim que o senhor cria um local externo Unity Catalog em, o acesso ao caminho representado por esse local externo é imposto pelas Unity Catalog permissões de quando o senhor executa consultas em habilitado Unity Catalog computepara(usuárioúnico, compartilhado SQL warehouse ou). Isso pode interromper as cargas de trabalho existentes que não têm as permissões corretas do Unity Catalog para acessar o caminho.
Quando um local externo está no modo fallback, o sistema primeiro verifica as permissões Unity Catalog da entidade consultante no local e, se isso não for bem-sucedido, volta a usar o clustering existente ou as credenciais no escopo do Notebook, como o perfil da instância ou as propriedades de configuração Apache Spark, para que as cargas de trabalho existentes continuem a ser executadas sem interrupções.
O modo de fallback é conveniente quando o senhor está no processo de migração da carga de trabalho legada. Depois de atualizar suas cargas de trabalho para execução com êxito usando as permissões Unity Catalog, o senhor deve desativar o modo fallback para evitar que as credenciais com escopo de clustering herdadas sejam usadas para contornar a governança de dados Unity Catalog.
O senhor pode ativar o modo de fallback usando o Catalog Explorer ou a API REST de locais externos do Unity Catalog.
Permissões necessárias: Proprietário do local externo.
Em seu site Databricks workspace, clique em Catalog.
Na página Acesso rápido, clique em Dados externos >.
Selecione o local externo que você deseja atualizar.
Ative o botão de alternância do modo de fallback e clique em Enable para confirmar.
Os exemplos curl a seguir mostram como ativar o modo fallback quando o senhor cria um local externo e quando atualiza um local externo existente.
Criação de um novo local externo:
curl -X POST -H 'Authorization: Bearer <token>' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations \
--data
'{
"name": "fallback_mode_enabled_external_location",
"url": "s3://external_location_bucket/url",
"credential_name": "external_location_credential",
"fallback": true
"skip_validation": true
}'
Atualizando um local externo:
curl -X PATCH \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations/<external-location-name> \
--data
'{
"comment": "fallback mode enabled",
"fallback": true
}'
Etapa 3: criar um catálogo federado
Nesta etapa, o senhor usa a conexão criada na etapa 1 para criar um catálogo federado em Unity Catalog que aponta para o local externo criado na etapa 2. Um catálogo federado é um tipo de catálogo externo, que é um objeto seguro em Unity Catalog que espelha um banco de dados ou catálogo em um sistema de dados externo, permitindo que o senhor realize consultas a esses dados em seu Databricks workspace, com acesso gerenciado por Unity Catalog. Nesse caso, o catálogo espelhado são seus dados registrados em Hive metastore.
Sempre que um usuário ou fluxo de trabalho interage com o catálogo federado, os metadados são sincronizados a partir do site Hive metastore.
Requisitos
Requisitos de permissão:
Para criar o catálogo estrangeiro:
O privilégio
CREATE CATALOG
em seu metastore do Unity Catalog.Propriedade da conexão ou o privilégio
CREATE FOREIGN CATALOG
na conexão.Para inserir caminhos autorizados para o catálogo externo, você deve ter o privilégio
CREATE FOREIGN SECURABLE
em um local externo que cubra esses caminhos. O proprietário do local externo tem esse privilégio pelo site default.
Para trabalhar com o catálogo estrangeiro:
Propriedade do catálogo ou
USE CATALOG
requisitos de computação:
Para criar o catálogo usando o Catalog Explorer: não é necessário o endereço compute.
Para criar o catálogo usando SQL: Databricks Runtime 13.3 LTS ou acima.
Para trabalhar com o catálogo: um clustering compartilhado em Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 ou acima.
Crie o catálogo estrangeiro
Para criar um catálogo externo, o senhor pode usar o Catalog Explorer ou o comando CREATE FOREIGN CATALOG
SQL em um Notebook Databricks ou o editor de consultas SQL.
Nota
O senhor também pode usar a API do Unity Catalog. Consulte Criar um catálogo na referência da API REST da Databricks.
Em seu site Databricks workspace, clique em Catalog para abrir o Catalog Explorer.
Na página de acesso rápido, clique no botão Adicionar dados e selecione Adicionar um catálogo .
Insira um nome de catálogo e selecione um tipo de catálogo estrangeiro.
Selecione a conexão que você criou na Etapa 1 no menu suspenso.
No campo Caminhos autorizados, insira caminhos para os locais de armazenamento em nuvem que você definiu como locais externos na Etapa 2. Por exemplo,
s3://demo,s3://depts/finance
.Os caminhos autorizados são uma camada adicional de segurança somente para catálogos federados. Consulte O que são caminhos autorizados?.
Clique em Criar.
(Opcional) Clique em Configurar para abrir um assistente que orienta você na concessão de permissões no catálogo e na adição de tags. Você também pode executar essas etapas posteriormente.
Consulte gerenciar privilégios em Unity Catalog e Aplicar tags a objetos protegíveis em Unity Catalog .
(Opcional) Vincular o catálogo a um espaço de trabalho específico.
Por default, os catálogos podem ser acessados de qualquer workspace anexado ao metastore Unity Catalog (restrito por privilégios de usuário). Se o senhor quiser permitir o acesso somente a partir de um espaço de trabalho específico, acesse o espaço de trabalho tab e atribua o espaço de trabalho. Consulte Limitar o acesso do catálogo a um espaço de trabalho específico.
Preencher o catálogo federado com os metadados do site Hive metastore.
Sempre que um usuário ou fluxo de trabalho interage com o catálogo federado, os metadados são sincronizados a partir do site Hive metastore. A primeira interação preenche o catálogo no Unity Catalog e torna seu conteúdo visível na UI do Catalog Explorer. O senhor pode preencher o catálogo selecionando e iniciando um recurso compute compatível no Catalog Explorer. Você deve ser o proprietário do catálogo (o que você é em virtude da criação do catálogo) ou um usuário com o privilégio
USE CATALOG
.Execute o seguinte comando SQL em um notebook ou no editor de consultas SQL. Os itens entre colchetes são opcionais. Substitua os valores temporários:
<catalog-name>
: Nome para o catálogo no Databricks.<connection-name>
: o nome do objeto de conexão que você criou na Etapa 1.<path1>,<path2>
: caminhos para os locais de armazenamento em nuvem que você definiu como locais externos na Etapa 2. Por exemplo,s3://demo,s3://depts/finance
. Os caminhos autorizados são uma camada adicional de segurança somente para catálogos federados. Consulte O que são caminhos autorizados?.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name> OPTIONS (authorized_paths '<path1>,<path2>');
Sempre que um usuário ou fluxo de trabalho interage com o catálogo federado, os metadados são sincronizados a partir do site Hive metastore.
Consulte também gerenciar e trabalhar com catálogos estrangeiros.