EventoObtenha 50% de desconto no seu ingresso para MongoDB.local Londres em outubro 2. Use o código WEB50Saiba mais >>
Desenvolvedor MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

Transmitir dados para o MongoDB Atlas usando o AWS Glue

BS
Babu Srinivasan6 min read • Published Apr 16, 2024 • Updated Apr 16, 2024
AWSAtlas
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Neste tutorial, você encontrará uma demonstração tangível de como o AWS Glue, o Amazon Kinesis e o MongoDB Atlas se integram perfeitamente, criando uma solução simplificada de streaming de dados junto com recursos de extração, transformação e carregamento (ETL). Este repositório também aproveita o poder do AWS CDK para automatizar a implantação em diversos ambientes, aumentando a eficiência de todo o processo.
Para acompanhar este tutorial, você deve ter proficiência intermediária com os serviços da AWS e do MongoDB.

Diagrama de arquitetura.

diagrama de arquitetura
Na arquitetura descrita acima, vários streams de dados, como pedido e cliente, são recuperados por meio do Amazon Kinesis stream. Posteriormente, o AWS Glue Studio é utilizado para melhorar os dados. Os dados enriquecidos são copiados em um bucket S3 , enquanto o fluxo consolidado é armazenado no MongoDB Atlas e disponibilizado para acesso como APIs de dados para sistemas downstream.

Etapas de implementação

Pré-requisitos

  • AWS CLI instalada e configurada
  • NVM/NPM instalado e configurado
  • AWS CDK instalado e configurado
    • Python3 - yum install -y python3
    • Python Pip - yum install -y python-pip
    • Virtualenv - pip3 install virtualenv
Este repositório é desenvolvido utilizando us-east-1 como a região padrão. Atualize os scripts para sua região específica (se necessário). Esse repositório criará automaticamente um projeto MongoDB Atlas e um cluster de banco de dados de camada livre. Não há necessidade de criar um cluster de banco de dados manualmente. Este repositório é criado para fins de demonstração e o acesso IP não é restrito (0.0.0.0/0). Certifique-se de fortalecer a segurança atualizando o endereço IP relevante (se necessário).

Configuração do ambiente

Obtenha o código do aplicativo

git clone https://github.com/mongodb-partners/Stream_Data_into_MongoDB_AWS_Glue cd kinesis-glue-aws-cdk

Prepare o ambiente de desenvolvimento para executar Amazon Web Services CDK

a. Configure o ID da chave de acesso da variável de ambiente da AWS, a chave de acesso secreta da AWS e, opcionalmente, o token de sessão da AWS.
b. Usaremos o CDK para facilitar nossas implantações.
Você deve ter o npm pré-instalado. Se você não tiver o CDK instalado: npm install -g aws-cdk
Verifique se você está no diretório raiz. python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt
Para a configuração de desenvolvimento, use requires-dev.txt.
c. Bootstrap o aplicativo com a conta AWS.
cdk bootstrap
Defina o ORG_ID como uma variável de ambiente no .env Migrator. Todos os outros parâmetros são definidos como padrão em global_args.py na pasta kinesis-glue-aws-cdk. Os parâmetros MONGODB_USER e MONGODB_PASSWORD são definidos diretamente em mongodb_atlas_stack.py e cola_job_stack.py
A captura de tela abaixo mostra o local para obter o ID da organização do MongoDB Atlas.
ID da organização no MongoDB Atlas
Observe que usando "0.0.0.0/0" como IP, estamos permitindo o acesso ao banco de dados de qualquer lugar. Isso pode ser adequado para fins de desenvolvimento ou teste, mas é altamente desencorajado para ambientes de produção, pois expõe o banco de dados a possíveis ataques de fontes não autorizadas.
e. Liste as CDKs:
cdk ls
Você deverá ver uma saída das pilhas disponíveis:
aws-etl-glue-job-stack

Implantando o aplicativo

Vamos examinar cada uma das pilhas:
Pilha para MongoDB Atlas: aws-etl-mongo-atlas-stack Essa pilha criará um projeto MongoDB Atlas e um cluster de banco de dados de camada livre com permissão de usuário e rede (aberto).

Pré-requisitos

a. Crie um papel AWS com seu relacionamento de confiança como um serviço CloudFormation.
Use o modelo para criar uma nova pilha do CloudFormation para criar a função de execução.
Criar um novo stsack do CloudFormation
b.A seguinte extensão pública no CloudFormation Registry deve ser ativada com a função criada na etapa anterior. Após fazer login no console AWS, use este link para registrar extensões no CloudFormation.
Passe o ARN da role da etapa anterior como entrada para ativar o recurso MongoDB na Extensão Pública.
Ativação de recursos do MongoDB em extensão pública:
Ativação de extensões públicas de registro
A captura de tela acima mostra a ativação das Extensões Públicas de Registro para o MongoDB::Atlas::Cluster.
Como alternativa, você pode ativar a extensão pública acima por meio da AWS CLI.
Comando para listar as extensões públicas MongoDB. Anote os alas para as quatro extensões públicas acima.
Comando para ativar a Extensão Pública. Use este comando para ativar todas as quatro extensões públicas mencionadas nas etapas anteriores.
c. Faça login no console do MongoDB e anote o ID da organização. Certifique-se de que o ID da organização esteja atualizado no global_args.py
Configurações da organização do cluster
A captura de tela acima mostra as configurações da Organização do Cluster MongoDB.
d. Criar uma chave de API em uma organização com acesso de Proprietário da organização. Anote as credenciais da API.
Editar chave API
A captura de tela acima mostra os gerenciadores de acesso para a chave de API criada no cluster do MongoDB Atlas.
Restrinja o acesso à API da organização com a lista de acesso à API. Fornecemos um 0 de acesso aberto.0.0.0/1 apenas para fins de demonstração. Desaconselhamos fortemente o uso desse recurso em qualquer ambiente de produção ou equivalente.
e. Um perfil deve ser criado no AWS Secrets Manager contendo a chave de API programática do MongoDB Atlas.
Use o modelo para criar uma nova pilhado CloudFormation para o perfil padrão que todos os recursos tentarão usar, a menos que uma substituição diferente seja especificada.

Pilha secreta de perfis

Pilha Amazon Web Services CloudFormation
A captura de tela acima mostra os parâmetros da pilha do AWS CloudFormation.
Inicie a implantação com o seguinte comando:
Depois de implantar a pilha com sucesso, valide a seção Saídas da pilha e o MongoDB Atlas cluster. Você encontrará o stdUrl e o stdSrvUrl para a connection string.

Stack:

Saída da pilha do CloudFormation
A captura de tela acima mostra a saída da pilha CloudFormation.

MongoDB Atlas cluster:

Criação de um cluster do MongoDB Atlas
A captura de tela acima mostra a criação bem-sucedida do cluster do MongoDB Atlas.

Pilha para criar o fluxo Kinesis: aws-etl-kinesis-stream-stack

Esta pilha criará dois fluxos de dados do Kinesis. Cada produtor executa um fluxo de ingestão de eventos para diferentes clientes com seus pedidos.
Inicie a implantação com o seguinte comando:
Depois de implantar a pilha com sucesso, verifique a seção Saídas da pilha. Você encontrará a função CustomerOrderKinesisDataStream Kinesis.

Stack:

Saída da pilha CloudFormation
A captura de tela acima mostra a saída da pilha do CloudFormation para fluxos do Kinesis.

Amazon Kinesis data stream:

Fluxo do Kinesis
A captura de tela acima mostra o fluxo do Kinesis criado.

Pilha para criar o bucket S3 : aws-etl-bucket-stack

Essa pilha criará um bucket de3 S que será usado pelos trabalhos do AWS Glue para manter os detalhes do cliente e do pedido recebidos.
Após a implantação bem-sucedida da pilha, verifique a seção Outputs (Saídas) da pilha. Você encontrará o recurso SourceBucket S3 .

Stack:

Saída da pilha CloudFormation
A captura de tela acima mostra a Saída da pilha CloudFormation.
Bucket AWS S3 :
S3 buckets criados
A captura de tela acima mostra os buckets S3 criados.

Pilha para criar o trabalho e os parâmetros do AWS Glue: aws-etl-glue-job-stack

Essa pilha criará dois trabalhos do AWS Glue: um trabalho para o cliente e outro para o pedido. O código está na localização glue_job_stack/glue_job_scripts/customer_kinesis_streams_s3.py e glue_job_stack/glue_job_scripts/order_kinesis_streams_s3.py.

Stack:

Saída da pilha do CloudFormation
A captura de tela acima mostra a saída da pilha CloudFormation.

Trabalho do AWS Glue:

AWS Glue Studio
A captura de tela acima mostra o trabalho do Amazon Web Services Glue Studio para configurar o trabalho.

Observação

A URL MongoDB do cluster recém-criado e outros parâmetros serão passados para o trabalho do AWS Glue programaticamente. Atualize esses parâmetros para seus valores (se necessário).
"Caminho dos logs da interface do usuário do Spark" e "Caminho temporário" Os detalhes serão mantidos no mesmo local do bucket com o nome de pasta /sparkHistoryLogs e /temporary.

Caminho dos registros da UI do Spark:

s3://<S3_BUCKET_NAME>/sparkHistoryLogs

Caminho temporário:

s3://<S3_BUCKET_NAME>/temporary/

Captura de tela dos parâmetros do Amazon Web Services Glue

Parâmetros do AWS Glue
A captura de tela acima mostra os parâmetros do Amazon Web Services Glue.
Quando estiver pronto com todas as pilhas, inicie os produtores para o cliente e faça o pedido. O código está nesse local, para ingerir dados em um fluxo de dados do kinesis e também iniciar o trabalho do Glue para ambos.
producer/customer.py e producer/order.py

Amostra de registro no MongoDB Atlas:

Limpeza

Use cdk destroy para limpar todos os recursos do Amazon Web Services CDK.

Solução de problemas

Consulte o GitHub para resolver alguns problemas comuns encontrados ao usar o AWS CloudFormation/CDK com MongoDB Atlas Resources.

Comandos úteis

cdk ls lista todas as pilhas no aplicativo.cdk synth emite o modelo sincronizado do CloudFormation. cdk deploy implanta esta pilha em sua conta/região padrão da AWS. cdk diff compara a pilha distribuída com o estado atual. cdk docs abre a documentação do CDK.
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.
Iniciar a conversa

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Início rápido

Início rápido 2: pesquisa vetorial com MongoDB e OpenAI


May 06, 2024 | 12 min read
Tutorial

Como Migrar PostgreSQL para MongoDB com Confluent Kafka


Aug 30, 2024 | 10 min read
Evento do setor
localizaçãoAURORA, CO, Estados Unidos | presencial

Encontrei você na CppCon 2024


Sep 16, 2024 - Sep 21, 2024
Tutorial

Como usar o MongoDB Atlas e os LLMs do IBM watsonx.ai em seus aplicativos de GenAI sem interrupções


Sep 18, 2024 | 9 min read
Sumário