Integração ETL zero com o Amazon OpenSearch Service - Amazon DocumentDB

Integração ETL zero com o Amazon OpenSearch Service

Amazon OpenSearch Service como destino

A integração do OpenSearch Service com o Amazon DocumentDB permite que você transmita a carga completa e altere eventos de dados para domínios do OpenSearch. A infraestrutura de ingestão é hospedada como pipelines de ingestão do OpenSearch e fornece um mecanismo de alta escala e baixa latência para transmitir continuamente dados das coleções do Amazon DocumentDB.

Durante a carga total, a integração ETL zero primeiro extrai dados históricos de carga total para o OpenSearch usando um pipeline de ingestão. Depois que os dados de carga total forem ingeridos, os pipelines de ingestão do OpenSearch começarão a ler os dados dos fluxos de alterações do Amazon DocumentDB e, eventualmente, se atualizarão para manter a consistência de dados quase em tempo real entre o Amazon DocumentDB e o OpenSearch. O OpenSearch armazena documentos em índices. Os dados recebidos de uma coleção do Amazon DocumentDB podem ser enviados para um índice ou podem ser particionados em índices diferentes. Os pipelines de ingestão sincronizarão todos os eventos de criação, atualização e exclusão em uma coleção do Amazon DocumentDB como correspondentes a criação, atualização e exclusão de documentos do OpenSearch para manter os dois sistemas de dados sincronizados. Os pipelines de ingestão podem ser configurados para ler dados de uma coleção e gravar em um índice ou ler dados de uma coleção e rotear condicionalmente para vários índices.

Os pipelines de ingestão podem ser configurados para transmitir dados do Amazon DocumentDB para o Amazon OpenSearch Service usando:

  • Somente carga total

  • Transmitir eventos de fluxo de alterações do Amazon DocumentDB sem carga total

  • Carga total seguida por fluxos de alterações do Amazon DocumentDB

Para configurar seu pipeline de ingestão, execute as seguintes etapas:

Etapa 1: criar um domínio do Amazon OpenSearch Service ou uma coleção sem servidor do OpenSearch

É necessária uma coleção do Amazon OpenSearch Service com as permissões apropriadas para ler dados. Consulte Conceitos básicos sobre o Amazon OpenSearch Service ou Conceitos básicos do Amazon OpenSearch Sem Servidor no Guia do desenvolvedor do Amazon OpenSearch Service para criar uma coleção. Consulte o Amazon OpenSearch Ingestion no Guia do desenvolvedor do Amazon OpenSearch Service para criar um perfil de AIM com as permissões corretas para acessar dados de gravação na coleção ou no domínio.

Etapa 2: ativar fluxos de alterações no cluster do Amazon DocumentDB

Certifique-se de que os fluxos de alterações estejam ativados nas coleções necessárias no cluster do Amazon DocumentDB. Consulte Usar fluxos de alterações com o Amazon DocumentDB para obter mais informações.

Etapa 3: configurar o perfil do pipeline com permissões para gravar no bucket do Amazon S3 e no domínio ou coleção de destino

Depois de criar a coleção do Amazon DocumentDB e ativar o fluxo de alterações, defina o perfil de pipeline que você deseja usar na configuração do pipeline e adicione as seguintes permissões a esse perfil:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "allowReadAndWriteToS3ForExport", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::my-bucket/export/*" ] } ] }

Para que um pipeline do OpenSearch grave dados em um domínio do OpenSearch, o domínio deve ter uma política de acesso em nível de domínio que permita que o perfil de pipeline sts_role_arn o acesse. O exemplo de política de acesso ao domínio a seguir permite que a função de pipeline chamadapipeline-role, que você criou na etapa anterior, grave dados no domínio chamado ingestion-domain:

{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{your-account-id}:role/{pipeline-role}" }, "Action": ["es:DescribeDomain", "es:ESHttp*"], "Resource": "arn:aws:es:{region}:{your-account-id}:domain/{domain-name}/*" } ] }

Etapa 4: adicionar as permissões necessárias ao perfil do pipeline para criar o X-ENI

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DetachNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": [ "arn:aws:ec2:*:420497401461:network-interface/*", "arn:aws:ec2:*:420497401461:subnet/*", "arn:aws:ec2:*:420497401461:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:Describe*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:RequestTag/OSISManaged": "true" } } } ] }

Etapa 5: criar o pipeline

Configure um pipeline de ingestão do OpenSearch especificando o Amazon DocumentDB como fonte. Esse exemplo de configuração de pipeline pressupõe o uso de um mecanismo de busca do fluxo de alterações. Consulte Usar um pipeline de ingestão do OpenSearch com o Amazon DocumentDB no Guia do desenvolvedor do Amazon OpenSearch Service para obter mais informações.

Limitações

As seguintes limitações se aplicam à integração do OpenSearch ao Amazon DocumentDB:

  • Somente uma coleção do Amazon DocumentDB como fonte por pipeline é aceita.

  • Não há suporte para a ingestão de dados entre regiões. O cluster do Amazon DocumentDB e o domínio do OpenSearch devem estar na mesma região da AWS.

  • Não há suporte para a ingestão de dados entre contas. O cluster do Amazon DocumentDB e o pipeline de ingestão do OpenSearch devem estar na mesma conta da AWS.

  • Clusters elásticos do Amazon DocumentDB não têm suporte. Somente clusters baseados em instâncias do Amazon DocumentDB têm suporte.

  • Certifique-se de que o cluster do Amazon DocumentDB tenha a autenticação ativada usando segredos da AWS. Os segredos da AWS são o único mecanismo de autenticação com suporte.

  • A configuração existente do pipeline não pode ser atualizada para ingerir dados de um banco de dados diferente e/ou de uma coleção diferente. Para atualizar o banco de dados e/ou o nome da coleção de um pipeline, você deve criar um novo pipeline.