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 conectá-lo AWS Glue Data Catalog a uma metastore do Hive, você precisa implantar um AWS SAM aplicativo 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 AWS SAM aplicativo no AWS Serverless Application Repository.

O AWS SAM aplicativo cria a conexão para o metastore Hive por trás do Amazon API Gateway usando uma função Lambda. O AWS SAM aplicativo usa um identificador uniforme de recursos (URI) como entrada do usuário e conecta o metastore 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 AWS SAM aplicativo.
    1. Faça login no AWS Management Console e abra AWS Serverless Application Repository o.

    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. Escolha o HiveMetastore aplicativo GlueDataCatalogFederation-.

    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 AWS SAM aplicativo.

      • GlueConnectionName- Um nome para a conexão.

      • HiveMetastoreURIs - O URI do seu host de metastore Hive.

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

      • LambdaTimeout- O tempo máximo de execução de invocação do Lambda em segundos. O padrão é 30.

      • VPC e SecurityGroupIds VPC SubnetIds - Informações para a VPC onde existe a metastore 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.

    O aplicativo é implantado no Lambda. Seu nome é prefixado com serverlessrepo- para indicar que o aplicativo foi implantado a partir 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 Lambda, que permite a comunicação entre o catálogo de dados e o metastore Hive, a AWS Glue conexão 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 metastore do Hive, você pode criar bancos de dados federados no Catálogo de Dados que apontam para os bancos de dados externos do metastore do Hive. Você precisa criar um banco de dados correspondente no Catálogo de Dados para cada banco de dados de metastore 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, escolha o nome da sua conexão de metastore 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 em sua 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 a ID do Catálogo de Dados pela Conta da AWS ID válida 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 funções do IAM em sua conta ou a organizações externas Contas da AWS e externas. Você não poderá conceder permissões de gravação de dados (inserir, excluir) e permissões de metadados (alterar, eliminar, 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 sintaxe de Amazon Athena consulta

    fed_glue_dbSubstitua pelo nome do banco de dados local que você criou anteriormente.

    Select * from fed_glue_db.customers limit 10;