Conectando o catálogo de dados a um repositório externo do Hive - AWS Lake Formation

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Conectando o catálogo de dados a um repositório externo do Hive

Para conectar AWS Glue Data Catalog a um repositório do Hive, você precisa implantar um aplicativo do AWS SAM chamado GlueDataCatalogFederation-HiveMetastore. Ele cria os recursos necessários para conectar o repositório externo do Hive ao catálogo de dados. Você pode acessar o aplicativo do AWS SAM no AWS Serverless Application Repository.

O aplicativo do AWS SAM cria a conexão para o Repositório do Hive por trás do Amazon API Gateway usando uma função do Lambda. O aplicativo do AWS SAM usa um identificador uniforme de recursos (URI) como entrada do usuário e conecta o repositório externo do Hive ao catálogo de dados. Quando um usuário executa uma consulta nas tabelas do Hive, o Catálogo de Dados chama o endpoint do API Gateway. O endpoint invoca a função do Lambda para recuperar os metadados das tabelas do Hive.

Como conectar o catálogo de dados ao repositório do Hive e configurar permissões
  1. Implante o aplicativo AWS SAM.
    1. Faça login no Console de gerenciamento da AWS e abra a AWS Serverless Application Repository.

    2. No painel de navegação, escolha Aplicativos disponíveis.

    3. Selecione Aplicativos públicos.

    4. Selecione a opção Show apps that create custom IAM roles or resource policies (Mostrar aplicações que criam funções personalizadas do IAM ou políticas de recursos).

    5. Na caixa de pesquisa, digite o nome GlueDataCatalogFederation-HiveMetastore.

    6. Selecione o aplicativo GlueDataCatalogFederation-HiveMetastore.

    7. Em Configurações do aplicativo, digite as seguintes configurações mínimas necessárias para sua função do Lambda:

      • Nome do aplicativo — Um nome para seu aplicativo AWS SAM.

      • GlueConnectionName — Um nome para a conexão.

      • HiveMetastoreURIs — O URI do seu host de Repositório do Hive.

      • LambdaMemory — A quantidade de memória Lambda em MB de 128 a 10240. O padrão é 1024.

      • LambdaTimeout — O runtime máximo de invocação do Lambda em segundos. O padrão é 30.

      • VPCSecurityGroupIds e VPCSubnetIds — Informações para a VPC em que existe o Repositório do Hive.

    8. Selecione Reconheço que este aplicativo cria perfis personalizadas do IAM e políticas de recursos. Para obter mais informações, escolha o link Informações.

    9. Na parte inferior direita da página Configurações da aplicação selecione Implantar. Quando a implantação for concluída, a função do Lambda será exibida seção Recursos no console do Lambda.

    A aplicação é implantada no Lambda. O nome é prefixado com serverlessrepo- para indicar que a aplicação foi implantada por meio do AWS Serverless Application Repository. Selecionar o aplicativo leva você à página Recursos, na qual cada um dos recursos do aplicativo que foram implantados está listado. Os recursos incluem a função do Lambda, que permite a comunicação entre o catálogo de dados e o Repositório do Hive, a conexão do AWS Glue e outros recursos necessários para a federação do banco de dados.

  2. Crie um banco de dados federado no catálogo de dados.

    Depois de criar uma conexão com o repositório do Hive, você pode criar bancos de dados federados no Catálogo de Dados que apontam para os bancos de dados externos do repositório do Hive. Você precisa criar um banco de dados correspondente no Catálogo de Dados para cada banco de dados de repositório do Hive que você está conectando ao Catálogo de Dados.

    Lake Formation console
    1. Na página Compartilhamento de dados, selecione a guia Bancos de dados compartilhados e, em seguida, selecione Criar banco de dados.

    2. Em Nome da conexão, selecione o nome da sua conexão de repositório do Hive no menu suspenso.

    3. Digite um nome de banco de dados exclusivo e o identificador de origem da federação para o banco de dados. Esse é o nome que você usa em suas instruções SQL ao consultar tabelas. O nome pode ter no máximo 255 caracteres e deve ser exclusivo dentro da conta.

    4. Selecione Criar banco de dados.

    AWS CLI
    aws glue create-database \ '{ "CatalogId": "<111122223333>", "database-input": { "Name":"<fed_glue_db>", "FederatedDatabase":{ "Identifier":"<hive_db_on_emr>", "ConnectionName":"<hms_connection>" } } }'
  3. Visualize tabelas no banco de dados federado.

    Após criar o banco de dados federado, você pode exibir a lista de tabelas em seu repositório do Hive usando o console do Lake Formation ou a AWS CLI.

    Lake Formation console
    1. Selecione o nome do banco de dados na guia Bancos de dados compartilhados.

    2. Na página Bancos de dados, selecione Exibir tabelas.

    AWS CLI

    Os exemplos a seguir mostram como recuperar a definição da conexão, o nome do banco de dados e algumas ou todas as tabelas no banco de dados. Substitua o ID do Catálogo de Dados por um ID válido da Conta da AWS que você usou para criar o banco de dados. Substitua hms_connection pelo nome da conexão.

    aws glue get-connection \ --name <hms_connection> \ --catalog-id 111122223333
    aws glue get-database \ --name <fed_glu_db> \ --catalog-id 111122223333
    aws glue get-tables \ --database-name <fed_glue_db> \ --catalog-id 111122223333
    aws glue get-table \ --database-name <fed_glue_db> \ --name <hive_table_name> \ --catalog-id 111122223333
  4. Conceder permissões

    Depois de criar o banco de dados, você pode conceder permissões a outros usuários e perfis do IAM em sua conta ou a Contas da AWS e organizações externas. Você não poderá conceder permissões de gravação de dados (inserir e excluir) e permissão de metadados (alterar, descartar e criar) nos bancos de dados federados. Para obter mais informações sobre a concessão de permissões, consulte Gerenciando permissões do Lake Formation.

  5. Consulte os bancos de dados federados.

    Após conceder permissões, os usuários podem fazer login e começar a consultar o banco de dados federado usando o Athena e o Amazon Redshift. Agora, os usuários podem usar o nome do banco de dados local para referenciar o banco de dados do Hive em consultas SQL.

    Exemplo de consulta e sintaxe do Amazon Athena

    Substitua o fed_glue_db pelo nome do banco de dados local que você criou anteriormente.

    Select * from fed_glue_db.customers limit 10;