Criar Integrações ETL zero entre o Amazon RDS e um lakehouse do Amazon SageMaker - Amazon Relational Database Service

Criar Integrações ETL zero entre o Amazon RDS e um lakehouse do Amazon SageMaker

Ao criar uma Integração ETL zero entre o Amazon RDS e um lakehouse do Amazon SageMaker, você deve especificar o banco de dados do RDS de origem e o catálogo de destino gerenciado pelo AWS Glue. Você também pode personalizar as configurações de criptografia e adicionar etiquetas. O Amazon RDS cria uma integração entre o banco de dados de origem e o destino. Quando a integração estiver ativa, todos os dados inseridos no banco de dados de origem serão replicados no destino configurado.

Pré-requisitos

Antes de criar uma Integração ETL zero com um lakehouse do Amazon SageMaker, você deve criar um banco de dados de origem e um catálogo de destino gerenciado pelo AWS Glue. Também é necessário permitir a replicação no catálogo adicionando o banco de dados como uma origem de integração autorizada.

Para obter instruções sobre como concluir cada uma dessas etapas, consulte Conceitos básicos das integrações ETL zero do Amazon RDS com o Amazon Redshift.

Permissões obrigatórias

Algumas permissões do IAM são necessárias para criar uma Integração ETL zero com o lakehouse do Amazon SageMaker. No mínimo, são necessárias permissões para executar as seguintes ações:

  • Crie integrações ETL zero para o banco de dados do RDS de origem.

  • Visualizar e excluir todas as integrações ETL zero.

  • Criar integrações de entrada no catálogo de destino gerenciado pelo AWS Glue.

  • Acessar os buckets do Amazon S3 usados pelo catálogo gerenciado pelo AWS Glue.

  • Usar chaves do AWS KMS para criptografia se a criptografia personalizada estiver configurada.

  • Registrar recursos com o Lake Formation.

  • Inserir a política de recursos no catálogo gerenciado pelo AWS Glue para autorizar integrações de entrada.

O exemplo de política a seguir demonstra as permissões de privilégio mínimo necessárias para criar e gerenciar integrações com um lakehouse do Amazon SageMaker. Talvez você não precise dessas permissões exatas se o usuário ou o perfil tiver permissões mais amplas, como uma política gerenciada AdministratorAccess.

Além disso, você deve configurar uma política de recursos no catálogo de destino gerenciado pelo AWS Glue para autorizar integrações de entrada. Use o comando da AWS CLI a seguir para aplicar a política de recursos.

aws glue put-resource-policy \ --policy-in-json '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": [ "glue:AuthorizeInboundIntegration" ], "Resource": ["arn:aws:glue:region:account_id:catalog/catalog_name"], "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:rds:region:account_id:db:source_name" } } }, { "Effect": "Allow", "Principal": { "AWS": "account_id" }, "Action": ["glue:CreateInboundIntegration"], "Resource": ["arn:aws:glue:region:account_id:catalog/catalog_name"] } ] }' \ --region region
nota

Os nomes de recurso da Amazon (ARNs) do catálogo do Glue têm o seguinte formato:

  • Catálogo do Glue: arn:aws:glue:{region}:{account-id}:catalog/catalog-name.

Escolher um catálogo de destino gerenciado pelo AWS Glue em uma conta diferente

Se você planeja especificar um catálogo de destino gerenciado pelo AWS Glue que esteja em outra Conta da AWS, deverá criar um perfil que permita que os usuários da conta atual acessem os recursos na conta de destino. Para obter mais informações, consulte Fornecer acesso a um usuário do IAM em outra Conta da AWS de sua propriedade.

O perfil deve ter as permissões a seguir, que possibilitam ao usuário visualizar os catálogos disponíveis do AWS Glue na conta de destino.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "glue:GetCatalog" ], "Resource":[ "*" ] } ] }

O perfil deve ter a seguinte política de confiança, que especifica o ID da conta de destino.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS": "arn:aws:iam::{external-account-id}:root" }, "Action":"sts:AssumeRole" } ] }

Para obter instruções sobre como criar o perfil, consulte Criar um perfil usando políticas de confiança personalizadas.

Criar Integrações ETL zero com um lakehouse do Amazon SageMaker

É possível criar uma Integração ETL zero com um lakehouse do Amazon SageMakerusando o AWS Management Console, a AWS CLI ou a API do RDS.

Importante

Em Integrações ETL zero com um lakehouse do Amazon SageMaker, não é possível usar operações de atualização ou ressincronização. Se você encontrar problemas com uma integração após a criação, deverá excluir a integração e criar outra.

Por padrão, o RDS para MySQL limpa imediatamente os arquivos de log binários. Como as integrações ETL zero dependem de logs binários para replicar dados da origem para o destino, o período de retenção do banco de dados de origem deve ser de pelo menos uma hora. Assim que você cria uma integração, o Amazon RDS verifica o período de retenção do arquivo de log binário para o banco de dados de origem selecionado. Se o valor atual for 0 hora, o Amazon RDS o alterará automaticamente para 1 hora. Caso contrário, o valor permanecerá o mesmo.

Como criar Integrações ETL zero com um lakehouse do Amazon SageMaker
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação à esquerda, escolha Integrações ETL zero.

  3. Escolha Criar integração ETL zero.

  4. Em Nome da integração, insira um nome para a integração. O nome pode ter até 60 caracteres alfanuméricos e pode incluir hifens.

  5. Escolha Próximo.

  6. Em Origem, selecione o banco de dados do RDS de onde os dados serão originados.

    nota

    O RDS notifica você se os parâmetros do de banco de dados não estiverem configurados corretamente. Se você receber essa mensagem, poderá escolher Corrigir para mim ou configurá-las manualmente. Para obter instruções sobre como corrigi-los manualmente, consulteEtapa 1: Criar um grupo de parâmetros de de banco de dados personalizado.

    A modificação dos parâmetros de banco de dados requer uma reinicialização. Antes de criar a integração, a reinicialização deve ser concluída e os valores do novo parâmetro deve ser aplicado com êxito ao banco de dados.

  7. Depois que o banco de dados de origem for configurado com êxito, selecione Próximo.

  8. Em Destino 1, faça o seguinte:

    1. (Opcional) Para usar uma Conta da AWS diferente para o lakehouse de destino do Amazon SageMaker, escolha Especificar uma conta diferente. Depois, insira o ARN de um perfil do IAM com permissões para exibir seus catálogos do AWS Glue. Para obter instruções sobre como criar um perfil do IAM, consulte Escolher um catálogo de destino gerenciado pelo AWS Glue em uma conta diferente.

    2. Em Catálogo do AWS Glue, selecione o destino para os dados replicados do banco de dados de origem. Você pode escolher um catálogo existente gerenciado pelo AWS Glue como destino.

    3. O perfil do IAM de destino precisa de permissões de descrição no catálogo de destino e deve ter as seguintes permissões:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "glue:GetCatalog", "Resource": [ "arn:aws:glue:region:account-id:catalog/*", "arn:aws:glue:region:account-id:catalog" ] } ] }

      O perfil do IAM deve ter a seguinte relação de confiança:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    4. Você deve conceder ao perfil do IAM de destino as permissões de descrição referentes ao catálogo de destino gerenciado pelo AWS Glue com o perfil de administrador do Lake Formation criado na seção .

    nota

    O RDS notificará você se a política de recursos ou as configurações do catálogo gerenciado pelo AWS Glue especificado não estiverem configuradas corretamente. Se você receber essa mensagem, poderá escolher Corrigir para mim ou configurá-las manualmente.

    Se a origem e o destino selecionados estiverem em valores diferentesContas da AWS, o Amazon RDS não poderá corrigir essas configurações para você. Você deve navegar até a outra conta e corrigi-la manualmente no SageMaker Unified Studio.

  9. Depois que o catálogo de destino gerenciado pelo AWS Glue estiver configurado corretamente, escolha Próximo.

  10. (Opcional) Em Etiquetas, adicione uma ou mais etiquetas à integração. Para obter mais informações, consulte Marcar recursos do Amazon RDS.

  11. Em Criptografia, especifique como você deseja que sua integração seja criptografada. Por padrão, o RDS criptografa todas as integrações com uma Chave pertencente à AWS. Para escolher uma chave gerenciada pelo cliente em vez disso, habilite a opção Personalizar configurações de criptografia e escolha uma chave do KMS para criptografia. Para obter mais informações, consulte Criptografar recursos do Amazon RDS.

    Como opção, adicione um contexto de criptografia. Para obter mais informações, consulte Contexto de criptografia no Guia do desenvolvedor AWS Key Management Service.

    nota

    O Amazon RDS adiciona os seguintes pares de contexto de criptografia, além dos adicionados por você:

    • aws:glue:integration:arn - IntegrationArn

    • aws:servicename:id - glue

    Isso reduz o número geral de pares que você pode adicionar de oito para seis e contribui com o limite geral de caracteres da restrição de concessão. Para ter mais informações, consulte Using grant constraints no Guia do desenvolvedor do AWS Key Management Service.

  12. Escolha Próximo.

  13. Revise suas configurações de integração e escolha Criar integração sem ETL.

    Se a criação falhar, consulte Solução de problemas em integrações ETL zero do Amazon RDS com o Amazon Redshift para conferir etapas de solução de problemas.

A integração tem o status Creating enquanto está sendo criada, e o lakehouse de destino do Amazon SageMaker tem o status Modifying. Durante esse período, não é possível consultar o catálogo nem alterar sua configuração.

Quando a integração é criada com êxito, o status da integração e o lakehouse de destino do Amazon SageMaker mudam para Active.

Para preparar um catálogo de destino gerenciado pelo AWS Glue para Integração ETL zero usando a AWS CLI, você deve primeiro usar o comando create-integration-resource-property com as seguintes opções:

  • --resource-arn: especifique o ARN do catálogo gerenciado pelo AWS Glue que será o destino da integração.

  • --target-processing-properties: especifique o ARN do perfil do IAM para acessar o catálogo de destino gerenciado pelo AWS Glue.

aws glue create-integration-resource-property --region us-east-1 --resource-arn arn:aws:glue:region:account_id:catalog/catalog_name \ --target-processing-properties '{"RoleArn" : "arn:aws:iam::account_id:role/TargetIamRole"}'

Para criar uma Integração ETL zero com um lakehouse do Amazon SageMaker usando a AWS CLI, use o comando create-integration com as seguintes opções:

  • --integration-name: especifique um nome para a integração.

  • --source-arn: especifique o ARN do banco de dados do RDS que será a origem da integração.

  • --target-arn: especifique o ARN do catálogo gerenciado pelo AWS Glue que será o destino da integração.

Para Linux, macOS ou Unix:

aws rds create-integration \ --integration-name my-sagemaker-integration \ --source-arn arn:aws:rds:{region}:{account-id}:my-db \ --target-arn arn:aws:glue:{region}:{account-id}:catalog/catalog-name

Para Windows:

aws rds create-integration ^ --integration-name my-sagemaker-integration ^ --source-arn arn:aws:rds:{region}:{account-id}:my-db ^ --target-arn arn:aws:glue:{region}:{account-id}:catalog/catalog-name

Para criar uma Integração ETL zero como Amazon SageMaker usando a API do Amazon RDS, use a operação CreateIntegration com os seguintes parâmetros:

nota

Os nomes de catálogo podem ter no máximo 19 caracteres. O parâmetro IntegrationName deve atender a esse requisito se for usado como nome de catálogo.

  • IntegrationName: especifique um nome para a integração.

  • SourceArn: especifique o ARN do banco de dados do RDS que será a origem da integração.

  • TargetArn: especifique o ARN do catálogo gerenciado pelo AWS Glue que será o destino da integração.

Criptografar integrações com uma chave gerenciada pelo cliente

Se você especificar uma chave do KMS personalizada em vez de uma Chave pertencente à AWS ao criar uma integração com o Amazon SageMaker, a política de chave deverá fornecer à entidade principal do serviço SageMaker Unified Studio acesso à ação CreateGrant. Além disso, ela deve permitir que o usuário atual execute as ações DescribeKey e CreateGrant.

O exemplo de política a seguir demonstra como conceder as permissões necessárias na política de chave. Ele inclui chaves de contexto para reduzir ainda mais o escopo das permissões.

{ "Version": "2012-10-17", "Id": "Key policy", "Statement": [ { "Sid": "Enables IAM user permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allows the Glue service principal to add a grant to an AWS KMS key", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}":"{context-value}" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "Allows the current user or role to add a grant to a KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}:role/{role-name}" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}":"{context-value}", "kms:ViaService": "rds.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "Allows the current uer or role to retrieve information about a KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}:role/{role-name}" }, "Action": "kms:DescribeKey", "Resource": "*" } ] }

Para obter mais informações, consulte Criar uma política de chave no Guia do desenvolvedor do AWS Key Management Service.

Próximas etapas

Depois de criar com sucesso uma Integração ETL zero com o Amazon SageMaker, você poderá começar a adicionar dados ao banco de dados do RDS de origem e consultá-los no lakehouse do Amazon SageMaker. Os dados serão replicados automaticamente e disponibilizados para workloads de analytics e machine learning.