Pular para o conteúdo principal

AWS Habilite a federação de Hive metastore para Glue metastores

Este artigo demonstra como federar um AWS Glue Hive metastore para que sua organização possa trabalhar com suas tabelas Hive metastore utilizando Unity Catalog.

Para obter uma visão geral da federação Hive metastore, consulte FederaçãoHive metastore: habilite Unity Catalog para controlar tabelas registradas em um Hive metastore.

Antes de começar

Veja a lista de serviços e recursos suportados pela federação Hive metastore: Requisitos e suporte a recursos.

Os requisitos específicos estão listados para cada etapa abaixo.

Passo 1: Conecte o Unity Catalog ao seu AWS Glue Hive metastore

Para conectar o seu AWS Glue Hive metastore ao Databricks, é necessário:

  1. Crie um IAM role com uma política de confiança que conceda ao Databricks acesso temporário ao recurso AWS Glue .
  2. Crie uma credencial de serviço que registre o IAM role em Unity Catalog. Uma credencial de serviço é um objeto protegido do Unity Catalog que encapsula uma credencial de nuvem de longo prazo.
  3. Crie uma conexão do Unity Catalog com o seu catálogo AWS Glue a partir do Databricks. Uma conexão é um objeto protegido do Unity Catalog que especifica um caminho e 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 .
  • AWS A região e o ID de identificação do account do account que contém o seu AWS Glue catalog.
  • Os privilégios CREATE SERVICE CREDENTIAL e CREATE CONNECTION no metastore do Unity Catalog. Os administradores do Metastore possuem esses privilégios por meio de default.

Crie as credenciais IAM role e serviço.

Siga as instruções na Etapa 1: Criar um IAM role para criar um IAM role que conceda ao Databricks acesso temporário ao seu recurso AWS Glue . Como este IAM role deve ser autoassumido, o processo requer três etapas:

Recomenda-se utilizar a política IAM de exemplo para AWS Glue incluída 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

Você também pode utilizar a API REST do Databricks ou a CLI do Databricks para criar uma conexão. Veja POST /api/2.1/unity-catalog/connections e o comandoUnity Catalog.

  1. Em Databricks workspace, clique em Ícone de dados. Catalog .

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

  3. Na página Noções básicas de conexão do assistente de configuração de conexão , insira um nome de conexão fácil de usar.

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

  5. (Opcional) Adicione um comentário.

  6. Clique em Avançar .

  7. Na página Detalhes da conexão , insira o seguinte para seu banco de dados host:

    • AWS Região: A região do AWS account que contém o catálogo AWS Glue .
    • AWS ID da conta: O ID da conta do AWS account.
    • Credencial : selecione a credencial de serviço criada na etapa anterior.

    (Opcional) Se a instância do banco de dados não usar um certificado de servidor assinado pela CA, selecione Certificado de servidor confiável .

  8. Clique em Criar conexão .

  9. Na página Noções básicas do catálogo , insira um nome para o catálogo estrangeiro.

  10. Em Caminhos autorizados , escolha caminhos de armazenamento em nuvem que possam ser acessados por meio do catálogo. Somente as tabelas que se enquadram nesses caminhos podem ser consultadas por meio do catálogo estrangeiro. Os caminhos devem ser percorridos por locais externos. Para obter mais informações, consulte O que são caminhos autorizados?

  11. Clique em Criar catálogo .

  12. Na página Acesso , selecione o espaço de trabalho no qual os usuários podem acessar o catálogo que você criou. É possível selecionar Todos os espaços de trabalho têm acesso ou clicar em Atribuir ao espaço de trabalho , selecionar o espaço de trabalho e, em seguida, clicar em Atribuir .

  13. Adicione um proprietário que poderá gerenciar o acesso a todos os objetos no catálogo. Inicie digitando um usuário ou grupo na caixa de texto e, em seguida, clique no usuário ou grupo nos resultados exibidos.

  14. Conceda privilégios no catálogo.

    1. Clique em Conceder .

    2. Especifique os diretores que terão acesso aos objetos no catálogo. Inicie digitando um usuário ou grupo na caixa de texto e, em seguida, clique no usuário ou grupo nos resultados exibidos.

    3. Selecione as predefinições de privilégios a serem concedidas a cada usuário ou grupo. Todos os usuários do account têm direito a BROWSE por default.

      • Selecione Leitor de dados no menu suspenso para conceder privilégios read em objetos no catálogo.
      • Selecione Editor de dados no menu suspenso para conceder os privilégios read e modify aos objetos no catálogo.
      • Selecione manualmente os privilégios a serem concedidos.
    4. Clique em Conceder .

  15. Clique em Avançar .

  16. Na página Metadados , opcionalmente, especifique tags como par key-value. Para obter mais informações, consulte Aplicar tags a objetos protegidos d Unity Catalog.

  17. (Opcional) Adicione um comentário.

  18. Clique em Salvar .

Passo 2: Crie locais externos para os dados em seu Hive metastore

Nesta etapa, você configura um local externo em Unity Catalog para controlar o acesso aos locais de armazenamento em nuvem que contêm os dados registrados em AWS Glue Hive metastore.

Os locais externos são objetos protegíveis Unity Catalog que associam credenciais de armazenamento a caminhos de contêineres de armazenamento cloud.

Opções para criar o local externo

O processo recomendado pela Databricks para criar um local externo no Unity Catalog depende da 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 uma credencial de armazenamento que acesse um bucket do AWS S3.
  • Se o senhor já tiver uma credencial de armazenamento criada no Unity Catalog, crie o local externo manualmente usando o Catalog Explorer ou o SQL.

Ativar modo de fallback em locais externos

Assim que criar um local externo em Unity Catalog, o acesso ao caminho representado por esse local externo será imposto pelas permissões Unity Catalog quando executar consultas em Unity Cataloghabilitado compute. Isso pode interromper as cargas de trabalho existentes que não possuem 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 ” do principal que está fazendo a consulta no local e, se isso não for bem-sucedido, recorre ao uso de credenciais de clustering existentes ou no escopo do Notebook, como o perfil da instância ou as propriedades de configuração “ Apache Spark ”, para que suas cargas de trabalho existentes continuem a ser executadas sem interrupções.

O modo de fallback é conveniente quando você está migrando sua carga de trabalho legada. Após atualizar suas cargas de trabalho para execução com sucesso usando permissões Unity Catalog, é recomendável desativar o modo fallback para evitar que credenciais de escopo de cluster legadas sejam utilizadas para contornar a governança de dados Unity Catalog.

É possível ativar o modo de fallback utilizando o Catalog Explorer ou a API REST de locais externos do Unity Catalog.

Permissões necessárias : Proprietário do local externo.

  1. Em Databricks workspace, clique em Ícone de dados. 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 Ativar para confirmar.

Etapa 3: criar um catálogo estrangeiro

nota

Talvez você já tenha concluído essa etapa se tiver usado o assistente de criação de conexão no Catalog Explorer para concluir a Etapa 1. Caso não tenha criado o catálogo externo ao concluir a etapa 1 ou se tiver utilizado SQL para criar a conexão, é necessário seguir as instruções nesta seção.

Nesta etapa, utilize a conexão criada na etapa 1 para criar um catálogo externo em Unity Catalog que aponte para o local externo criado na etapa 2. Um catálogo externo é um objeto protegido em Unity Catalog que espelha um banco de dados ou catálogo em um sistema de dados externo, permitindo que você execute consultas sobre esses dados em Databricks workspace, com acesso gerenciado por Unity Catalog. Nesse caso, o catálogo espelhado é o seu dado registrado em um Hive metastore.

Sempre que um usuário ou fluxo de trabalho interage com o catálogo externo, os metadados são sincronizados a partir do Hive metastore.

Requisitos

Requisitos de permissão :

Para criar o catálogo estrangeiro:

  • O privilégio CREATE CATALOG no 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 possui este privilégio por meio de default.

Para trabalhar com o catálogo estrangeiro:

  • Propriedade do catálogo ou USE CATALOG

requisitos de computação :

  • Para criar o catálogo utilizando o Catalog Explorer: não é necessário realizar o download do compute.
  • Para criar o catálogo utilizando o SQL: Databricks Runtime 13.3 LTS ou superior.
  • Para trabalhar com o catálogo: um compute com modo de acesso padrão em Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 ou superior.

Crie o catálogo estrangeiro

Para criar um catálogo externo, é possível utilizar o Catalog Explorer ou o comando CREATE FOREIGN CATALOG SQL em um Notebook Databricks ou no editor de consultas SQL.

Consulte também gerenciar e trabalhar com catálogos estrangeiros.

nota

Também é possível utilizar o Unity Catalog API. Consulte Criar um catálogo na referência da API REST do Databricks.

  1. No seu Databricks workspace, clique em Ícone de dados. 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, s3://demo, s3://depts/finance.

    Os caminhos autorizados são uma camada adicional de segurança para catálogos externos protegidos por uma federação Hive metastore. 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 Unity Catalog objetos protegidos.

  8. (Opcional) Vincule o catálogo a um espaço de trabalho específico.

    Por meio de default, os catálogos podem ser acessados a partir de qualquer workspace conectado ao metastore Unity Catalog (restrito por privilégios de usuário). Se desejar permitir o acesso apenas 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 ao catálogo a áreas de trabalho específicas.

  9. Preencha o catálogo externo com os metadados Hive metastore.

    Sempre que um usuário ou fluxo de trabalho interage com o catálogo externo, os metadados são sincronizados a partir do Hive metastore. A primeira interação preenche o catálogo no Unity Catalog e torna seu conteúdo visível na interface do usuário do Catalog Explorer. É possível 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.