Pular para o conteúdo principal

Biblioteca de Soluções da AWS

Orientações para ETL com base em SQL com Apache Spark no Amazon EKS

Desbloqueie fluxos de trabalho de dados eficientes e insights mais rápidos com uma solução escalável de extração, transformação e carregamento (ETL) de nível corporativo

Visão geral

Esta orientação ajuda a eliminar a lacuna entre os requisitos de consumo de dados e as atividades de processamento de dados de baixo nível realizadas por práticas comuns de ETL. Para organizações que operam em sistemas de gerenciamento de dados baseados em SQL, a adaptação às práticas modernas de engenharia de dados pode retardar a obtenção de insights poderosos de seus dados. Esta orientação fornece um design com reconhecimento de qualidade para aumentar a produtividade do processo de dados por meio da estrutura de dados de código aberto Arc para uma abordagem de ETL centrada no usuário. A orientação acelera a interação com as práticas de ETL, promovendo simplicidade e elevando o nível de abstração para unificar as atividades de ETL tanto em lote quanto em streaming.

Também oferecemos opções para um design ideal usando instâncias de computação eficientes (como os processadores AWS Graviton) que permitem otimizar a performance e o custo da execução de trabalhos de ETL em grande escala no Amazon EKS.

Como funciona

Esse diagrama de arquitetura acelera o processamento de dados com o Apache Spark no Amazon EKS.

Pilares do Well-Architected

O diagrama de arquitetura acima exemplifica a criação de uma solução pautada nas melhores práticas do Well-Architected. Para ser totalmente Well-Architected, é preciso respeitar a maior quantidade possível das melhores práticas desse framework.

Nos clusters do Amazon EKS, as instâncias do Amazon Elastic Compute Cloud (Amazon EC2) (CPU X86_64, Graviton ARM64) atuam como nós de computação, executando cargas de trabalho de orientação. Os trabalhos do Spark são executados em instâncias spot do Amazon EC2 provisionadas elasticamente com base nas demandas de carga de trabalho. O CodeBuild e o CodePipeline automatizam o processo do GitOps, criando imagens de contêiner a partir de atualizações de código do Git e enviando-as para o registro privado do Amazon ECR. O Argo Workflows programa trabalhos de ETL no Amazon EKS, extraindo automaticamente a imagem do Docker do Arc do Amazon ECR, baixando ativos de ETL do bucket do S3 do artefato e enviando registros de aplicações para o CloudWatch. Essa implantação e execução automatizadas de trabalhos de ETL de dados minimizam a sobrecarga operacional e melhoram a produtividade. Além disso, o pipeline de CI/CD usando o CodeBuild e o CodePipeline ajuda a garantir a melhoria e o desenvolvimento contínuos, ao mesmo tempo em que armazena com segurança a imagem Arc Docker do Guidance no Amazon ECR.

Leia o whitepaper sobre excelência operacional

Os recursos de cluster do Amazon EKS são implantados em uma Amazon VPC, fornecendo isolamento lógico de rede da Internet pública. O Amazon VPC oferece suporte a recursos de segurança como VPC endpoint (mantendo o tráfego dentro da rede AWS), grupos de segurança, listas de controle de acesso à rede (ACLs) e funções e políticas do AWS Identity and Access Management (IAM) para controlar o tráfego de entrada e saída e a autorização. O registro de imagens do Amazon ECR oferece recursos de segurança em nível de contêiner, como verificação de vulnerabilidades. O Amazon ECR e o Amazon EKS seguem os padrões de registro da Open Container Initiative (OCI) e da API Kubernetes, incorporando protocolos de segurança rígidos. O IAM fornece controle de acesso aos dados do aplicativo Amazon S3, enquanto o AWS Key Management Service (AWS KMS) criptografa dados em repouso no Amazon S3. O IAM Roles for Service Accounts (IRSA) em clusters do Amazon EKS permite um controle de acesso refinado para pods, aplicando o controle de acesso baseado em funções e limitando o acesso não autorizado aos dados do Amazon S3. O Secrets Manager armazena e gerencia as credenciais com segurança. O CloudFront fornece pontos de entrada seguros codificados em SSL para as ferramentas web Jupyter e Argo Workflows.

Leia o whitepaper sobre segurança

O Amazon EKS habilita topologias altamente disponíveis ao implantar os planos de controle e computação do Kubernetes em várias zonas de disponibilidade (AZs). Isso ajuda a garantir a disponibilidade contínua dos aplicativos de dados, mesmo que um AZ sofra uma interrupção, resultando em uma implantação confiável de instâncias EC2 Multi-AZ no Amazon EKS. Para armazenamento de dados, o Amazon S3 oferece alta durabilidade e disponibilidade, replicando automaticamente objetos de dados em várias AZs dentro de uma região. Além disso, o Amazon ECR hospeda imagens do Docker em uma arquitetura altamente disponível e escalável, suportando de forma confiável a implantação de aplicações baseadas em contêineres e incrementos. O Amazon S3, o Amazon EKS e o Amazon ECR são serviços totalmente gerenciados projetados para acordos de alto nível de serviço (SLAs) com custos operacionais reduzidos. Eles permitem a implantação de aplicações essenciais aos negócios para atender aos requisitos de alta disponibilidade.

Leia o whitepaper sobre confiabilidade

Os nós de computação do Amazon EC2 do cluster do Amazon EKS podem ter a escala aumentada ou reduzida verticalmente de forma dinâmica com base na workload da aplicação. As instâncias do EC2 baseadas em Graviton oferecem performance mais eficiente por meio de processadores personalizados baseados em ARM, hardware otimizado e aprimoramentos arquitetônicos. Um padrão de armazenamento computacional desacoplado (com dados de entrada e saída armazenados no Amazon S3 melhora a eficiência da escalabilidade computacional dinâmica. O Data Catalog simplifica o gerenciamento de metadados, integrando-se perfeitamente ao Athena para gerenciamento simplificado de metadados e desempenho aprimorado de consultas. O Catálogo de Dados automatiza o crawling e a manutenção de metadados técnicos para processamento e consulta eficientes de dados. O Athena oferece consultas rápidas aos dados do Amazon S3 sem movê-los, aprimorando ainda mais a eficiência do fluxo de trabalho de análise.

Leia o whitepaper sobre eficiência da performance

O Amazon ECR é um serviço gerenciado para proteger e oferecer suporte a aplicativos de contêiner com uma taxa mensal fixa para armazenar e servir imagens de contêineres. Os nós de computação em cluster do Amazon EKS podem aumentar ou diminuir a escala com base nas cargas de trabalho do Spark, oferecendo tipos econômicos de instâncias Graviton e Spot. O Data Catalog fornece um repositório de metadados sem servidor e totalmente gerenciado, eliminando a necessidade de configurar e manter um banco de dados de metadados de longa duração e reduzindo a sobrecarga operacional e os custos. O CodeBuild e o CodePipeline automatizam a criação e a implantação da imagem do Docker do Arc ETL Framework em um ambiente sem servidor, eliminando a necessidade de provisionar e gerenciar servidores de compilação, além de reduzir os custos de manutenção da infraestrutura.

Leia o whitepaper sobre otimização de custos

Esta orientação executa um cluster Amazon EKS com tipos de computação eficientes baseados em processadores Graviton. O Amazon ECR elimina a necessidade de gerenciamento personalizado de hardware ou servidor físico. O Catálogo de Dados e o Athena são serviços sem servidor que ajudam a reduzir ainda mais o impacto ambiental e energético. A otimização da camada de computação do Amazon EKS para workloads do Apache Spark em grande escala minimiza o impacto ambiental das workloads de análise. Você tem a flexibilidade de escolher processadores baseados em Arm com base nas necessidades de performance e nas suas prioridades de sustentabilidade.

Leia o whitepaper sobre sustentabilidade

Recursos de implementação

O código de exemplo é um ponto de partida. Ele é validado para o setor, é prescritivo, mas não definitivo, e mostra o que há por trás de tudo para ajudar você a começar.
Abra o guia de implementação

Aviso de isenção de responsabilidade

O código de exemplo, as bibliotecas de software, as ferramentas de linha de comando, as provas de conceito, os modelos ou outra tecnologia relacionada (incluindo qualquer uma das anteriores fornecidas por nossa equipe) são fornecidos a você como Conteúdo da AWS nos termos do Contrato de Cliente da AWS ou o contrato por escrito pertinente entre você e a AWS (o que for aplicável). Você não deve usar esse Conteúdo da AWS em suas contas de produção, na produção ou em outros dados essenciais. Você é responsável por testar, proteger e otimizar o Conteúdo da AWS, como código de exemplo, conforme apropriado para uso em nível de produção com base em suas práticas e padrões específicos de controle de qualidade. A implantação de Conteúdo da AWS pode gerar cobranças da AWS para criar ou usar recursos cobráveis, como executar instâncias do Amazon EC2 ou usar armazenamento do Amazon S3.

Você encontrou o que estava procurando hoje?

Informe-nos para que possamos melhorar a qualidade do conteúdo em nossas páginas