As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Práticas recomendadas
Ao desenvolver com AWS Glue, considere as seguintes melhores práticas.
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 pode ajudá-lo a testar trabalhos de AWS Glue ETL em um shell e em um ambiente de desenvolvimento integrado (IDE), consulte a postagem do blog Desenvolva e teste AWS Glue trabalhos localmente usando um contêiner do Docker
Use sessões AWS Glue interativas
AWS Glue as sessões interativas fornecem um back-end Spark sem servidor, juntamente com um kernel Jupyter de código aberto que se integra a notebooks e IDEs, como IntelliJ e VS Code. PyCharm Ao usar sessões interativas, você pode testar seu código em conjuntos de dados reais com o back-end do AWS Glue Spark e o IDE de sua escolha. Para começar, siga as etapas em Introdução às sessões AWS Glue interativas.
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 trabalhos 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
-
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
-
PySpark funções definidas pelo usuário (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 análise 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 trabalhadores) ou verticalmente (alterar o tipo de trabalhador) é importante 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 trabalhos de ETL com uso intensivo de computação e grandes volumes de dados, recomendamos o escalonamento horizontal, pois ele foi AWS Glue projetado para processar esses dados paralelamente em vários nós.
Monitorar de perto as métricas de AWS Glue trabalho na Amazon CloudWatch ajuda você a determinar se um gargalo de desempenho é causado pela falta de memória ou computação. Para obter mais informações sobre tipos de AWS Glue trabalhadores e escalabilidade, consulte Melhores práticas para escalar tarefas do Apache Spark e particionar