O ETL baseado em SQL com Apache Spark no Amazon EKS oferece o suporte declarativo ao processamento de dados, recursos de extração-transformação-carga (ETL) sem código e automação com orquestração de fluxos de trabalho para ajudar seus usuários de negócios (como analistas e cientistas de dados) a acessarem dados e criarem insights significativos sem exigir processos de TI manuais.
Benefícios
Use o JupyterHub, um ambiente de desenvolvimento integrado (IDE) interativo baseado na Web para simplificar o desenvolvimento de aplicações de ETL.
Implemente verificações de lógica de negócios e qualidade de dados no desenvolvimento do pipeline de ETL usando o Spark SQL.
Use fluxos de trabalho do Argo para agendar trabalhos e gerenciar dependências de trabalho complexas sem a necessidade de codificar.
Configure um pipeline de melhoria e desenvolvimento contínuos (CI/CD) da AWS para armazenar com segurança a imagem do Docker da framework de dados no Amazon Elastic Container Registry (Amazon ECR).
Visão geral
O diagrama abaixo apresenta a arquitetura que você pode construir usando o código de exemplo no GitHub.
Arquitetura do ETL baseado em SQL com Apache Spark no Amazon EKS
O ETL baseado em SQL com Apache Spark no Amazon EKS implanta um ambiente seguro, tolerante a falhas e de escalabilidade automática para oferecer suporte às workloads de ETL que contêm os seguintes componentes:
- Uma camada de gerenciamento de fluxo de trabalho personalizável e flexível (consulte a orquestração no grupo do Amazon Elastic Kubernetes Service (Amazon EKS) no diagrama) inclui o plugin do Argo Workflows. Esse plug-in fornece uma ferramenta baseada na Web para orquestrar seus trabalhos de ETL sem a necessidade de escrever código. Opcionalmente, você pode usar outras ferramentas de fluxo de trabalho, como o Volcano e o Apache Airflow.
- Um espaço de trabalho seguro de processamento de dados é configurado para unificar workloads de dados no mesmo cluster do Amazon EKS. Esse espaço de trabalho contém uma segunda ferramenta baseada na Web, o JupyterHub, para compilações e testes de tarefas interativas. Você pode desenvolver o notebook Jupyter usando uma abordagem declarativa para especificar tarefas de ETL ou escrever programaticamente suas etapas de ETL usando o PySpark. Esse espaço de trabalho também fornece automações de trabalhos do Spark que são gerenciadas pela ferramenta Argo Workflows.
- Um conjunto de funções de segurança é implantado na solução. O Amazon Elastic Container Registry (Amazon ECR) mantém e protege uma imagem do Docker da framework de processamento de dados. O recurso IRSA [funções para contas de serviços do AWS Identity and Access Management (IAM)] no Amazon EKS fornece autorização de token com controle de acesso detalhado a outros serviços da AWS. Por exemplo, a integração do Amazon EKS com o Amazon Athena não tem senha, para atenuar o risco de expor credenciais da AWS em uma string de conexão. O Jupyter busca credenciais de login do AWS Secrets Manager para o Amazon EKS instantaneamente. O Amazon CloudWatch monitora aplicações no Amazon EKS usando o recurso ativado do CloudWatch Container Insights.
- As workloads analíticas no cluster do Amazon EKS produzem resultados de dados para um data lake do Amazon Simple Storage Service (Amazon S3). Uma entrada de esquema de dados (metadados) é criada em um Catálogo de dados do AWS Glue via Amazon Athena.
ETL baseado em SQL com Apache Spark no Amazon EKS
Versão 1.0.0
Lançamento: 07/2021
Autor: AWS
Recursos adicionais
Explore nossa biblioteca de soluções da AWS para obter respostas para problemas comuns de arquitetura.
Encontre parceiros da AWS para ajudá-lo a começar.
Diagramas de arquitetura prescritivos, código de amostra e conteúdo técnico para casos de uso comuns.