Criação de um data lake a partir de uma JDBC fonte no Lake Formation - 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á.

Criação de um data lake a partir de uma JDBC fonte no Lake Formation

Este tutorial orienta você pelas etapas a serem seguidas no AWS Lake Formation console para criar e carregar seu primeiro data lake de uma JDBC fonte usando o Lake Formation.

Público-alvo

A tabela a seguir lista as funções usadas neste AWS Lake Formation JDBCtutorial.

Função Descrição
IAMadministrador Um usuário que pode criar AWS Identity and Access Management (IAM) usuários e funções e buckets do Amazon Simple Storage Service (Amazon S3). Tem a política AdministratorAccess AWS gerenciada.
Administrador do data lake Um usuário que pode acessar o catálogo de dados, criar bancos de dados e conceder permissões do Lake Formation a outros usuários. Tem menos IAM permissões do que o IAM administrador, mas o suficiente para administrar o data lake.
Analista de dados Um usuário que pode executar consultas no data lake. Tem permissões suficientes apenas para executar consultas.
Função de fluxo de trabalho Uma função com as IAM políticas necessárias para executar um fluxo de trabalho.

Para obter informações sobre os pré-requisitos para concluir o tutorial, consulte JDBCpré-requisitos do tutorial.

JDBCpré-requisitos do tutorial

Antes de começar o AWS Lake Formation JDBCtutorial, certifique-se de ter feito o seguinte:

  • Conclua as tarefas em Introdução ao Lake Formation.

  • Escolha um armazenamento JDBC de dados acessível que você deseja usar para o tutorial.

  • Reúna as informações necessárias para criar uma AWS Glue conexão do tipoJDBC. Esse objeto do Catálogo de Dados inclui o URL armazenamento de dados, as credenciais de login e, se o armazenamento de dados foi criado em uma Amazon Virtual Private Cloud (AmazonVPC), informações adicionais VPC de configuração específicas. Para obter mais informações, consulte Definir conexões no catálogo de dados AWS Glue no Guia do desenvolvedor do AWS Glue .

O tutorial pressupõe que você esteja familiarizado com AWS Identity and Access Management (IAM). Para obter informações sobreIAM, consulte o Guia IAM do usuário.

Para começar, vá para Etapa 1: Criar um usuário de analista de dados.

Etapa 1: Criar um usuário de analista de dados

Nesta etapa, você cria um usuário AWS Identity and Access Management (IAM) para ser o analista de dados do seu data lake em AWS Lake Formation.

Esse usuário tem o conjunto mínimo de permissões para consultar o data lake.

  1. Abra o console do IAM em https://console.aws.amazon.com/iam. Entre como o usuário administrador que você criou Criar um usuário com acesso administrativo ou como um usuário com a política AdministratorAccess AWS gerenciada.

  2. Crie um usuário chamado datalake_user com as seguintes configurações:

    • Habilite AWS Management Console o acesso.

    • Defina uma senha e não solicite redefinição de senha.

    • Anexe a política AmazonAthenaFullAccess AWS gerenciada.

    • Anexe a seguinte política em linha. Atribua o nome DatalakeUserBasic à política.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }

Etapa 2: Criar uma conexão em AWS Glue

nota

Ignore essa etapa se você já tiver uma AWS Glue conexão com sua fonte JDBC de dados.

AWS Lake Formation acessa fontes JDBC de dados por meio de uma AWS Glue conexão. Uma conexão é um objeto do catálogo de dados que contém todas as informações necessárias para se conectar à fonte de dados. Você pode criar uma conexão usando o console do AWS Glue.

Como criar uma conexão
  1. Abra o console do AWS Glue em https://console.aws.amazon.com/glue/ e entre como o usuário administrador que você criou em Criar um usuário com acesso administrativo.

  2. No painel de navegação, em Data catalog (catálogo de dados), selecione Connections (Conexões).

  3. Na página Connectors (Conectores) escolha Create custom connector (Criar um conector personalizado).

  4. Na página de propriedades do conector, insira datalake-tutorial como nome da conexão e escolha JDBCcomo tipo de conexão. Em seguida, escolha Próximo.

  5. Continue através do assistente de conexão e salve a conexão.

    Para obter informações sobre como criar uma conexão, consulte as propriedades da AWS Glue JDBC conexão no Guia do AWS Glue desenvolvedor.

Etapa 3: Criar um bucket do Amazon S3 para o data lake

Nesta etapa, você criará o bucket do Amazon Simple Storage Service (Amazon S3) que será a localização raiz do data lake.

  1. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/e faça login como o usuário administrador que você criou. Criar um usuário com acesso administrativo

  2. Escolha Create bucket e acesse o assistente para criar um bucket chamado<yourName>-datalake-tutorial, onde <yourName> é seu primeiro nome e sobrenome. Por exemplo: jdoe-datalake-tutorial.

    Para obter instruções detalhadas sobre como criar um bucket do Amazon S3, consulte Como criar um bucket do S3? no Guia do usuário do Amazon Simple Storage Service.

Etapa 4: Registrar um caminho do Amazon S3

Nesta etapa, você registra um caminho do Amazon Simple Storage Service (Amazon S3) como a localização raiz do data lake.

  1. Abra o console do Lake Formation em https://console.aws.amazon.com/lakeformation/. Faça login como administrador de data lake.

  2. No painel de navegação, em Administração em Locais de data lake.

  3. Escolha Registrar localização e, em seguida, escolha Procurar.

  4. Selecione o <yourName>-datalake-tutorial bucket que você criou anteriormente, aceite o IAM papel AWSServiceRoleForLakeFormationDataAccess padrão e escolha Registrar localização.

    Para obter mais informações sobre o registro de locais, consulte Adicionar uma localização do Amazon S3 ao seu data lake.

Etapa 5: Conceder permissões de local de dados

As entidades principais devem ter permissões de local de dados em um local de data lake para criar tabelas ou bancos de dados do catálogo de dados que apontem para esse local. Você deve conceder permissões de localização de dados à IAM função para fluxos de trabalho para que o fluxo de trabalho possa gravar no destino de ingestão de dados.

  1. No console do Lake Formation, no painel de navegação, em Permissões, escolha Localizações de dados.

  2. Escolha Conceder e, na caixa de diálogo Conceder permissões, faça o seguinte:

    1. Para IAMusuário e funções, escolhaLakeFormationWorkflowRole.

    2. Para locais de armazenamento, escolha seu bucket <yourName>-datalake-tutorial.

  3. Selecione Conceder.

Para obter mais informações sobre permissões de local de dados, consulte Underlying data access control.

Etapa 6: Criar um banco de dados no catálogo de dados

As tabelas de metadados no catálogo de dados do Lake Formation são armazenadas em um banco de dados.

  1. No console do Lake Formation, no painel de navegação, em catálogo de dados, escolha Bancos de dados.

  2. Escolha Criar banco de dados e, em Detalhes do banco de dados, insira o nome lakeformation_tutorial.

  3. Deixe os outros campos em branco e escolha Criar banco de dados.

Etapa 7: Conceder permissões de dados

Você deve conceder permissões para criar tabelas de metadados no catálogo de dados. Como o fluxo de trabalho é executado com a função LakeFormationWorkflowRole, você deve conceder essas permissões à função.

  1. No console do Lake Formation, no painel de navegação, em Permissões, escolha Permissões do data lake.

  2. Escolha Conceder e, na caixa de diálogo Conceder permissões de dados, faça o seguinte:

    1. Em Diretores, para IAMusuário e funções, escolhaLakeFormationWorkflowRole.

    2. Em Tags do LF ou recursos de catálogo, escolha Recursos do catálogo de dados nomeados.

    3. Em Bancos de dados, escolha o banco de dados que você criou anteriormente, lakeformation_tutorial.

    4. Em Permissões do banco de dados, selecione Criar tabela, Alterar e Eliminar, e desmarque Super se estiver selecionado.

  3. Selecione Conceder.

Para obter mais informações sobre como conceder permissões ao Lake Formation, consulte Visão geral das permissões do Lake Formation .

Etapa 8: Usar um esquema para criar um fluxo de trabalho

O AWS Lake Formation fluxo de trabalho gera AWS Glue trabalhos, rastreadores e gatilhos que descobrem e ingerem dados em seu data lake. Você cria um fluxo de trabalho com base em um dos esquemas predefinidos do Lake Formation.

  1. No console do Lake Formation, no painel de navegação, escolha Esquemas e, em seguida, escolha Usar esquema.

  2. Na página Usar um esquema, em Tipo de esquema, escolha Snapshot de banco de dados.

  3. Em Fonte de importação, em Conexão de banco de dados, escolha a conexão que você acabou de criar, datalake-tutorial ou escolha uma conexão existente para sua fonte de dados.

  4. Em Caminho de dados de origem, insira o caminho do qual ingerir dados, no formulário <database>/<schema>/<table>.

    Você pode substituir o curinga percentual (%) por esquema ou tabela. Para bancos de dados que oferecem suporte a esquemas, insira <database>/<schema>/% para corresponder a todas as tabelas em <schema> dentro <database>. O Oracle Database e o My SQL não oferecem suporte ao esquema no caminho; em vez disso, insira <database>/%. Para o Oracle Database, <database> é o identificador do sistema (SID).

    Por exemplo, se um banco de dados Oracle tiver orcl como seuSID, insira orcl/% para corresponder a todas as tabelas às quais o usuário especificado na JDCB conexão tem acesso.

    Importante

    Este campo diferencia letras maiúsculas de minúsculas.

  5. Em Destino de importação, especifique estes parâmetros:

    Bancos de dados de destino lakeformation_tutorial
    Local de armazenamento de destino s3://<yourName>-datalake-tutorial
    Formato de dados (Escolha Parquet ouCSV)
  6. Para frequência de importação, escolha Executar sob demanda.

  7. Em Opções de importação, especifique estes parâmetros:

    Nome do fluxo de trabalho lakeformationjdbctest
    IAMpapel LakeFormationWorkflowRole
    Prefixo da tabela jdbctest
    nota

    Deve estar em letras minúsculas.

  8. Escolha Criar e aguarde até que o console informe que o fluxo de trabalho foi criado com sucesso.

    dica

    Você recebeu a seguinte mensagem de erro?

    User: arn:aws:iam::<account-id>:user/<datalake_administrator_user> is not authorized to perform: iam:PassRole on resource:arn:aws:iam::<account-id>:role/LakeFormationWorkflowRole...

    Em caso afirmativo, verifique se você substituiu <account-id> na política em linha para o usuário administrador do data lake com um número de AWS conta válido.

Etapa 9: Executar o fluxo de trabalho

Como você especificou que o fluxo de trabalho é run-on-demand, você deve iniciar manualmente o fluxo de trabalho em AWS Lake Formation.

  1. No console do Lake Formation, na página Esquemas, selecione o fluxo de trabalho lakeformationjdbctest.

  2. Escolha Ações e, em seguida, escolha Iniciar.

  3. À medida que o fluxo de trabalho é executado, visualize seu progresso na coluna Status da última execução. Escolha o botão de atualização ocasionalmente.

    O status vai de RUNNING, para Descoberta, para Importação, para. COMPLETED

    Quando o fluxo de trabalho for concluído:

    • O catálogo de dados tem novas tabelas de metadados.

    • Seus dados são ingeridos no data lake.

    Se o fluxo de trabalho falhar, faça o seguinte:

    1. Selecione o fluxo de trabalho. Escolha Ações e Exibir gráfico.

      O fluxo de trabalho é aberto no console do AWS Glue.

    2. Selecione o fluxo de trabalho e escolha a guia Histórico.​

    3. Selecione a execução mais recente e escolha Exibir detalhes da execução.

    4. Selecione um trabalho ou crawler com falha no gráfico dinâmico (runtime) e revise a mensagem de erro. Os nós com falha são vermelhos ou amarelos.

Etapa 10: subsídio SELECT nas mesas

Você deve conceder a SELECT permissão nas novas tabelas do Catálogo de Dados AWS Lake Formation para que o analista de dados possa consultar os dados para os quais as tabelas apontam.

nota

Um fluxo de trabalho concede automaticamente a permissão SELECT nas tabelas que ele cria ao usuário que o executou. Como o administrador do data lake executou esse fluxo de trabalho, você deve conceder SELECT ao analista de dados.

  1. No console do Lake Formation, no painel de navegação, em Permissões, escolha Permissões do data lake.

  2. Escolha Conceder e, na caixa de diálogo Conceder permissões de dados, faça o seguinte:

    1. Em Diretores, para IAMusuário e funções, escolhadatalake_user.

    2. Em Tags do LF ou recursos de catálogo, escolha Recursos do catálogo de dados nomeados.

    3. Para Bancos de dados, escolha lakeformation_tutorial.

      A lista de Tabelas é preenchida.

    4. Para Tabelas, selecione uma ou mais tabelas da fonte de dados.

    5. Em Permissões de tabela e coluna, escolha Selecionar.

  3. Selecione Conceder.

A próxima etapa é executada como analista de dados.

Etapa 11: Consultar o data lake usando Amazon Athena

Use o Amazon Athena console para consultar os dados em seu data lake.

  1. Abra o console do Athena em https://console.aws.amazon.com/athena/e faça login como analista de dados, usuário. datalake_user

  2. Se necessário, escolha Começar para continuar com o editor de consultas do Athena.

  3. Em Data source (Fonte de dados), selecione AwsDataCatalog.

  4. Para o Banco de dados, selecione lakeformation_tutorial.

    A lista Tabelas é preenchida.

  5. No menu pop-up ao lado de uma das tabelas, escolha Visualizar tabela.

    A consulta é executada e exibe 10 linhas de dados.

Etapa 12: Consulte os dados no data lake usando o Amazon Redshift Spectrum

Você pode configurar o Amazon Redshift Spectrum para consultar os dados importados para o data lake do Amazon Simple Storage Service (Amazon S3). Primeiro, crie uma função AWS Identity and Access Management (IAM) que seja usada para iniciar o cluster do Amazon Redshift e consultar os dados do Amazon S3. Em seguida, conceda a essa função as permissões Select nas tabelas que você deseja consultar. Em seguida, conceder permissões do usuário para usar o Editor de consultas do Amazon Redshift. Por fim, crie um cluster do Amazon Redshift e execute consultas.

Você cria o cluster como administrador e consulta o cluster como analista de dados.

Para obter mais informações sobre o Amazon Redshift Spectrum, consulte Usar o Amazon Redshift Spectrum para consultar dados externos no Guia do desenvolvedor de banco de dados do Amazon Redshift.

Para configurar permissões para executar consultas do Amazon Redshift
  1. Abra o IAM console em https://console.aws.amazon.com/iam/. Entre como o usuário administrador que você criou Criar um usuário com acesso administrativo (nome de usuárioAdministrator) ou como um usuário com a política AdministratorAccess AWS gerenciada.

  2. No painel de navegação, escolha Policies.

    Se essa for a primeira vez que você escolhe Políticas, a página Bem-vindo às políticas gerenciadas será exibida. Escolha Começar.

  3. Escolha Criar política.

  4. Escolha a JSONguia.

  5. Cole o seguinte documento JSON de política.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }
  6. Ao terminar, escolha Review (Revisar) para revisar a política. O validador de política indica se há qualquer erro de sintaxe.

  7. Na página Revisar política, insira o Nome como RedshiftLakeFormationPolicy na política que você está criando. Insira uma Description (Descrição) (opcional). Revise o Resumo da política para ver as permissões que são concedidas pela política. Em seguida, escolha Criar política para salvar seu trabalho.

  8. No painel de navegação do IAM console, escolha Funções e, em seguida, escolha Criar função.

  9. Em Select trusted entity (Selecionar entidade confiável), escolha AWS Service (Serviço).

  10. Escolha o serviço do Amazon Redshift para assumir essa função.

  11. Escolha o caso de uso Redshift Customizable (Personalizável pelo Redshift) para o serviço. Então, escolha Próximo: Permissões.

  12. Procure a política de permissões que você criou, RedshiftLakeFormationPolicy e marque a caixa de seleção ao lado do nome da política na lista.

  13. Escolha Próximo: etiquetas.

  14. Selecione Next: Review (Próximo: revisar).

  15. Em Role name (Nome da função), insira o nome RedshiftLakeFormationRole.

  16. (Opcional) Em Descrição do perfil, insira uma descrição para o novo perfil.

  17. Reveja a função e escolha Criar função.

Para conceder permissões Select na tabela a ser consultada no banco de dados do Lake Formation
  1. Abra o console do Lake Formation em https://console.aws.amazon.com/lakeformation/. Faça login como administrador de data lake.

  2. No painel de navegação, em Permissões, escolha Permissões do Data Lake e, em seguida, escolha Conceder.

  3. Forneça as informações a seguir:

    • Para IAMusuários e funções, escolha a IAM função que você criou,RedshiftLakeFormationRole. Quando você executa o Amazon Redshift Query Editor, ele usa essa IAM função para obter permissão para os dados.

    • Para o Banco de dados, selecione lakeformation_tutorial.

      A lista de tabelas é preenchida.

    • Em Tabela, escolha uma tabela na fonte de dados a ser consultada.

    • Escolha a permissão Selecionar tabela.

  4. Selecione Conceder.

Para configurar o Amazon Redshift Spectrum e executar consultas
  1. Abra o console do Amazon Redshift em https://console.aws.amazon.com/redshift. Faça login como usuário Administrator.

  2. Selecione Criar cluster.

  3. Na página Criar cluster, insira redshift-lakeformation-demo o Identificador do cluster.

  4. Para o Tipo de nó, selecione dc2.large.

  5. Role para baixo e, em Configurações do banco de dados, insira ou aceite estes parâmetros:

    • Nome de usuário administrador: awsuser

    • Senha do usuário administrador: (Choose a password)

  6. Expanda as permissões do cluster e, em IAM Funções disponíveis, escolha RedshiftLakeFormationRole. Em seguida, escolha Adicionar IAM função.

  7. Se você precisar usar uma porta diferente do valor padrão de 5439, ao lado de Configurações adicionais, desative a opção Usar padrões. Expanda a seção Configurações do banco de dados e, em seguida, insira um novo número de Porta do banco de dados.

  8. Selecione Criar cluster.

    A página Clusters é carregada.

  9. Espere até que o status do cluster se torne Disponível. Escolha o ícone de atualização periodicamente.

  10. Conceda permissão ao analista de dados para executar consultas no cluster. Para fazer isso, execute as etapas a seguir:

    1. Abra o IAM console em https://console.aws.amazon.com/iam/e faça login como Administrator usuário.

    2. No painel de navegação, escolha Usuários e anexe as seguintes políticas gerenciadas ao usuário datalake_user.

      • AmazonRedshiftQueryEditor

      • AmazonRedshiftReadOnlyAccess

  11. Saia do console do Amazon Redshift e entre novamente como usuário datalake_user.

  12. Na barra de ferramentas vertical esquerda, escolha o EDITORícone para abrir o editor de consultas e conectar-se ao cluster. Se a caixa de diálogo Conectar ao banco de dados for exibida, escolha o nome do cluster redshift-lakeformation-demo e insira o nome do banco de dados dev, o nome do usuário awsuser e a senha que você criou. Então escolha Connect to database (Conectar-se ao banco de dados).

    nota

    Se os parâmetros de conexão não forem solicitados e outro cluster já estiver selecionado no editor de consultas, escolha Alterar conexão para abrir a caixa de diálogo Conectar ao banco de dados.

  13. Na caixa de texto Nova consulta 1, insira e execute a seguinte instrução para mapear o banco de dados lakeformation_tutorial no Lake Formation para o nome do esquema Amazon Redshift redshift_jdbc:

    Importante

    Substituir <account-id> com um número de AWS conta válido e <region> com um nome de AWS região válido (por exemplo,us-east-1).

    create external schema if not exists redshift_jdbc from DATA CATALOG database 'lakeformation_tutorial' iam_role 'arn:aws:iam::<account-id>:role/RedshiftLakeFormationRole' region '<region>';
  14. Na lista de esquemas, em Selecionar esquema, escolha redshift_jdbc.

    A lista de tabelas é preenchida. O editor de consultas mostra somente as tabelas nas quais você recebeu permissões de data lake do Lake Formation.

  15. No menu pop-up ao lado do nome da tabela, escolha Visualizar dados.

    O Amazon Redshift retorna as 10 primeiras linhas.

    Agora você pode executar consultas nas tabelas e colunas para as quais você tem permissões.

Etapa 13: Conceder ou revogar permissões do Lake Formation usando o Amazon Redshift Spectrum

O Amazon Redshift oferece suporte à capacidade de conceder e revogar permissões do Lake Formation em bancos de dados e tabelas usando declarações modificadas. SQL Essas declarações são semelhantes às declarações existentes do Amazon Redshift. Para obter mais informações, consulte GRANTe REVOKEno Amazon Redshift Database Developer Guide.