Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Prácticas recomendadas
Al desarrollar con AWS Glue, tenga en cuenta las siguientes prácticas recomendadas.
Desarrolle primero a nivel local
Para ahorrar costos y tiempo a la hora de crear sus trabajos de ETL, pruebe primero el código y la lógica empresarial a nivel local. Para obtener instrucciones sobre cómo configurar un contenedor de Docker que pueda ayudarle a probar los trabajos de AWS Glue ETL tanto en un shell como en un entorno de desarrollo integrado (IDE), consulte la entrada del blog Desarrolle y pruebe AWS Glue trabajos de forma local mediante un contenedor de Docker
Utilice sesiones interactivas AWS Glue
AWS Glue las sesiones interactivas proporcionan un backend de Spark sin servidor, junto con un núcleo de Jupyter de código abierto que se integra con cuadernos e IDE como PyCharm IntelliJ y VS Code. Al usar sesiones interactivas, puedes probar tu código en conjuntos de datos reales con el backend de Spark y el AWS Glue IDE que prefieras. Para empezar, sigue los pasos que se indican en Cómo empezar con las sesiones AWS Glue interactivas.
Utilice la partición para consultar exactamente lo que necesita
La partición se refiere a dividir un conjunto de datos grande en particiones más pequeñas en función de columnas o claves específicas. Cuando los datos están particionados, AWS Glue puede realizar escaneos selectivos en un subconjunto de datos que satisfaga criterios de partición específicos, en lugar de escanear todo el conjunto de datos. Esto se traduce en un procesamiento de consultas más rápido y eficiente, especialmente cuando se trabaja con conjuntos de datos de gran tamaño.
Divida los datos en función de las consultas que se ejecutarán en ellos. Por ejemplo, si la mayoría de las consultas se filtran en una columna concreta, la partición de esa columna puede reducir considerablemente el tiempo de consulta. Para obtener más información sobre la partición de datos, consulte Trabajar con datos particionados en AWS Glue
Optimice la administración de la memoria
La administración de la memoria es crucial a la hora de escribir trabajos de AWS Glue ETL porque se ejecutan en el motor Apache Spark, que está optimizado para el procesamiento en memoria. En la entrada del blog Optimizar la gestión de la memoria AWS Glue
-
Implementación de la lista Amazon S3 de AWS Glue
-
Agrupación
-
Exclusión de rutas y clases de almacenamiento irrelevantes de Amazon S3
-
Particionamiento de Spark y AWS Glue lectura
-
Bulk inserts
-
Optimizaciones de unión
-
PySpark funciones definidas por el usuario (UDF)
-
Procesamiento incremental
Utilice formatos de almacenamiento de datos eficientes
A la hora de crear trabajos ETL, se recomienda dar salida a los datos transformados en un formato basado en columnas. Los formatos de datos en columnas, como Apache Parquet y ORC, se utilizan habitualmente en el almacenamiento y análisis de macrodatos. Están diseñados para minimizar el movimiento de datos y maximizar la compresión. Estos formatos también permiten dividir los datos en varios lectores para aumentar las lecturas paralelas durante el procesamiento de consultas.
La compresión de datos también ayuda a reducir la cantidad de datos almacenados y mejora el rendimiento de las operaciones de lectura/escritura. AWS Glue admite varios formatos de compresión de forma nativa. Para obtener más información sobre un almacenamiento y compresión de datos eficientes, consulte Creación de una canalización de datos eficiente en términos de rendimiento.
Utilice el modo de escalado
Es importante saber cuándo escalar horizontalmente (cambiar el número de trabajadores) o escalar verticalmente (cambiar el tipo de trabajador), AWS Glue ya que esto puede afectar al costo y al rendimiento de los trabajos de ETL.
Por lo general, los trabajos de ETL con transformaciones complejas consumen más memoria y requieren una escalabilidad vertical (por ejemplo, pasar del tipo de trabajador G.1X al G.2X). Para trabajos de ETL con uso intensivo de cómputo y grandes volúmenes de datos, recomendamos el escalado horizontal, ya que AWS Glue está diseñado para procesar esos datos en paralelo en varios nodos.
Supervisar de cerca las métricas de AWS Glue trabajo en Amazon te CloudWatch ayuda a determinar si un cuello de botella en el rendimiento se debe a la falta de memoria o de cómputo. Para obtener más información sobre los tipos de AWS Glue trabajadores y la escalabilidad, consulta las prácticas recomendadas para escalar los trabajos de Apache Spark y particionar los datos