Habilitar a federação Hive metastore para um senhor externo Hive metastore

Prévia

Este recurso está em visualização pública.

Este artigo mostra como federar um Hive metastore externo 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 computador externo Hive metastore

Nesta etapa, o senhor cria uma conexão, um objeto securizável Unity Catalog que especifica um caminho e credenciais para acessar um sistema de banco de dados, neste caso, o seu Hive metastore.

Requisitos

Você deve ter o seguinte:

  • Um nome de usuário e uma senha que concedem acesso ao sistema de banco de dados que hospeda o Hive metastore.

  • O URL do banco de dados (host e porta).

  • O nome do banco de dados.

  • O privilégio CREATE CONNECTION no metastore do Unity Catalog. Os administradores de metastore têm esse privilégio em default.

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.

Observação

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.

  1. Em seu site Databricks workspace, clique em Ícone de catálogo Catalog.

  2. Na página Acesso rápido, clique em Adicionar dados > Adicionar uma conexão.

  3. Insira um nome de conexão fácil de lembrar.

  4. Selecione um tipo de conexão de Hive metastore e o tipo de Metastore de External.

  5. Insira as seguintes propriedades de autenticação para seu banco de dados host.

    • Anfitrião: Por exemplo, mysql-demo.lb123.us-west-2.rds.amazonaws.com

    • Porto: Por exemplo, 3306

    • Usuário: Por exemplo, mysql_user

    • Senha: Por exemplo, password123

  6. Insira os seguintes detalhes da conexão para seu banco de dados host.

    • Versão: As versões compatíveis do site Hive metastore incluem 0.13 e 2.3.

    • Banco de dados: o nome do banco de dados ao qual você está se conectando.

    • Tipo de banco de dados: Por exemplo, MySQL.

  7. (Opcional) Adicione um comentário.

    O senhor só precisa disso se não quiser usar o local default.

  8. Clique em Criar.

Execute o seguinte comando em um notebook ou no editor de consultas SQL do Databricks.

CREATE CONNECTION <connection-name> TYPE hive_metastore
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>',
  database '<database-name>',
  db_type 'MYSQL',
  version '2.3',
);

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.

Recomendamos que você utilize segredos do Databricks em vez de cadeias de texto simples para valores confidenciais, como credenciais. Por exemplo:

CREATE CONNECTION <connection-name> TYPE hive_metastore
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>'),
  database '<database-name>',
  db_type 'MYSQL',
  version '2.3'
)

Se o senhor precisar usar o texto simples strings no Notebook SQL comando, evite truncar as cadeias de caracteres escapando de caracteres especiais como $ com \. Por exemplo: \$.

Para obter informações sobre como configurar segredos, consulte Gerenciamento de segredos.

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 mantêm os dados registrados em seu Hive metastore externo.

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:

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.

  1. Em seu site Databricks workspace, clique em Ícone de catálogo Catalog.

  2. Na página Acesso rápido, clique em Dados externos >.

  3. Selecione o local externo que você deseja atualizar.

  4. 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": "gs://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.

Observação

O senhor também pode usar a API do Unity Catalog. Consulte Criar um catálogo na referência da API REST da Databricks.

  1. Em seu site Databricks workspace, clique em Ícone de catálogo Catalog para abrir o Catalog Explorer.

  2. Na página de acesso rápido, clique no botão Adicionar dados e selecione Adicionar um catálogo .

  3. Insira um nome de catálogo e selecione um tipo de catálogo estrangeiro.

  4. Selecione a conexão que você criou na Etapa 1 no menu suspenso.

  5. No campo Caminhos autorizados, insira caminhos para os locais de armazenamento em nuvem que você definiu como locais externos na Etapa 2. Por exemplo, gs://demo,gs://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?.

  6. Clique em Criar.

  7. (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 .

  8. (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.

  9. 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, gs://demo,gs://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.