Práticas recomendadas - Recomendações da AWS

Práticas recomendadas

Ao desenvolver com o AWS Glue, considere as seguintes práticas recomendadas.

Desenvolva primeiro localmente

Para economizar tempo e custo ao criar suas tarefas de ETL, primeiro teste seu código e sua lógica de negócios localmente. Para obter instruções sobre como configurar um contêiner do Docker que possa ajudá-lo a testar tarefas de AWS Glue ETL em um shell e em um ambiente de desenvolvimento integrado (IDE), consulte a postagem do blog Desenvolva e teste tarefas AWS Glue localmente usando um contêiner do Docker.

Use as sessões interativas AWS Glue

As sessões interativas AWS Glue fornecem um backend do Spark de tecnologia sem servidor, juntamente com um kernel do Jupyter de código aberto que se integra com notebooks e IDEs como PyCharm, IntelliJ e VS Code. Ao utilizar sessões interativas, você pode testar seu código em conjuntos de dados reais com o backend do AWS Glue Spark e o IDE de sua escolha. Para começar, siga as etapas em Introdução às sessões interativas AWS Glue.

Use o particionamento para consultar exatamente o que você precisa

Particionamento se refere à divisão de um grande conjunto de dados em partições menores com base em colunas ou chaves específicas. Quando os dados são particionados, AWS Glue pode realizar varreduras seletivas em um subconjunto de dados que satisfaça critérios específicos de particionamento, em vez de escanear todo o conjunto de dados. Isso resulta em um processamento de consultas mais rápido e eficiente, especialmente ao trabalhar com grandes conjuntos de dados.

Particione os dados com base nas consultas que serão executadas neles. Por exemplo, se a maioria das consultas for filtrada em uma coluna específica, o particionamento nessa coluna poderá reduzir muito o tempo de consulta. Para saber mais sobre particionamento de dados, consulte Trabalhar com dados particionados em AWS Glue.

Otimize o gerenciamento de memória

O gerenciamento de memória é crucial ao escrever tarefas de AWS Glue ETL porque eles são executados no mecanismo Apache Spark, que é otimizado para processamento na memória. A postagem do blog Otimize o gerenciamento de memória em AWS Glue fornece detalhes sobre as seguintes técnicas de gerenciamento de memória:

  • Implementação da lista Amazon S3 de AWS Glue

  • Agrupamento

  • Excluindo caminhos e classes de armazenamento irrelevantes do Amazon S3

  • Particionamento do Spark e do AWS Glue Read

  • Bulk inserts

  • Otimizações de junção

  • Funções definidas pelo usuário PySpark (UDFs)

  • Processamento incremental.

Use formatos eficientes de armazenamento de dados

Ao criar tarefas de ETL, recomendamos exportar dados transformados em um formato de dados baseado em colunas. Formatos de dados colunares, como Apache Parquet e ORC, são comumente utilizados em armazenamento e analytics de big data. Eles são projetados para minimizar a movimentação de dados e maximizar a compactação. Esses formatos também permitem dividir dados em vários leitores para aumentar as leituras paralelas durante o processamento da consulta.

A compactação de dados também ajuda a reduzir a quantidade de dados armazenados e melhora o desempenho da operação de leitura/gravação. AWS Glue suporta vários formatos de compressão de forma nativa. Para obter mais informações sobre armazenamento e compactação eficientes de dados, consulte Como criar um pipeline de dados eficiente em termos de desempenho.

Utilize o tipo de escalabilidade apropriado

Entender quando escalar horizontalmente (alterar o número de funcionários) ou verticalmente (alterar o tipo de funcionário) é importante para AWS Glue porque isso pode afetar o custo e o desempenho das tarefas de ETL.

Geralmente, as tarefas de ETL com transformações complexas consomem mais memória e exigem escalabilidade vertical (por exemplo, passar do tipo de funcionário G.1X para o G.2X). Para tarefas de ETL com uso intensivo de computação e grandes volumes de dados, recomendamos o escalonamento horizontal, pois AWS Glue foi projetada para processar esses dados paralelamente em vários nós.

O monitoramento rigoroso das métricas de tarefa AWS Glue no Amazon CloudWatch ajuda a determinar se um gargalo de desempenho é causado pela falta de memória ou computação. Para obter mais informações sobre tipos de funcionários e escalabilidade AWS Glue, consulte Melhores práticas para escalar tarefas do Apache Spark e particionar dados com AWS Glue.