AWS Glue ETL - Recomendações da AWS

AWS Glue ETL

O AWS Glue ETL suporta a extração de dados de várias fontes, transformando-os para atender às necessidades de sua empresa e carregá-los em um destino de sua escolha. Esse serviço usa o mecanismo Apache Spark para distribuir workloads de big data entre os nós de processamento, permitindo transformações mais rápidas com o processamento na memória.

AWS Glue oferece suporte a uma variedade de fontes de dados, incluindo Amazon Simple Storage Service (Amazon S3), Amazon DynamoDB e Amazon Relational Database Service (Amazon RDS). Para saber mais sobre as fontes de dados compatíveis, consulte Tipos de conexão e opções para ETL no AWS Glue.

Criação no AWS Glue

AWS Glue fornece várias maneiras de criar tarefas de ETL, dependendo de sua experiência e caso de uso:

  • As tarefas de shell do Python são projetadas para executar scripts ETL básicos criados em Python. Essas tarefas são executadas em uma única máquina e são mais adequadas para conjuntos de dados pequenos ou médios.

  • As tarefas do Apache Spark podem ser escritas em Python ou Scala. Essas tarefas utilizam o Spark para escalar horizontalmente workloads em vários nós de processamento, para que possam lidar com grandes conjuntos de dados e transformações complexas.

  • O ETL de transmissão do AWS Glue usa o mecanismo Apache Spark Structured Streaming para transformar dados de streaming em trabalhos de micro lotes usando uma semântica do tipo exatamente uma vez. É possível criar trabalhos de transmissão do AWS Glue em Python ou Scala.

  • O AWS Glue Studio é uma interface visual no estilo caixas e setas para tornar o ETL baseado em Spark acessível a desenvolvedores que são novos na programação do Apache Spark.

Unidades de processamento de dados

AWS Glue utiliza unidades de processamento de dados (DPUs) para medir os recursos computacionais alocados para uma tarefa de ETL e calcular o custo. Cada DPU é equivalente a 4 vCPUs e 16 GB de memória. As DPUs devem ser alocadas para sua tarefa AWS Glue, dependendo da complexidade e do volume de dados. A alocação da quantidade adequada de DPUs permitirá que você equilibre as necessidades de desempenho com as restrições de custo.

O AWS Glue fornece vários tipos de processamento que são otimizados para várias workloads:

  • G.1X ou G.2X (para a maioria das transformações de dados, junções e consultas)

  • G.4X ou G.8X (para transformações de dados, agregações, junções e consultas mais exigentes)

  • G.025X (para fluxos de dados esporádicos e de baixo volume)

  • Padrão (para AWS Glue versões 1.0 ou anteriores; não recomendado para versões posteriores do AWS Glue)

Como utilizar o shell Python

Para uma tarefa de shell do Python, você pode utilizar 1 DPU para usar 16 GB de memória ou 0,0625 DPU para usar 1 GB de memória. O shell Python destina-se a trabalhos de ETL básicos com conjuntos de dados pequenos ou médios (até aproximadamente 10 GB).

Como comparar tipos de processamento

A tabela a seguir mostra os diferentes tipos de processamento do AWS Glue para workloads em lote, transmissão e ETL do AWS Glue Studio usando o ambiente Apache Spark.

G.1X

G.2X

G.4X

G.8X

G.025X

Padrão

vCPU

4

8

16

32

2

4

Memória

16 GB

32 GB

64 GB

128 GB

4 GB

16 GB

Espaço em disco

64 GB

128 GB

256 GB

512 GB

64 GB

50 GB

Executor por processamento

1

1

1

1

2

DPU

1

2

4

8

0.25

1

O tipo de processamento padrão não é recomendado para a versão 2.0 e posterior do AWS Glue. O tipo de trabalhador G.025X está disponível apenas para trabalhos de streaming que utilizam o AWS Glue versão 3.0 ou posterior.