Se necesita asesoramiento de AWS Glue para escalar o evaluar el rendimiento.
Escenario:
Tengo un trabajo de AWS Glue que se ocupa de S3 y realiza algunas exploraciones para insertar datos de los archivos de S3 en postgres en RDS.
Debido a que el tamaño del archivo a veces es muy grande, lleva mucho tiempo realizar la operación, por lo que el tiempo que dura el trabajo es más de 2 días.
El script para el trabajo está escrito en python.
Estoy buscando una forma de poder mejorar el trabajo de alguna manera, como:
- Algún tipo de opciones de multiprocesamiento dentro del trabajo para una ejecución más rápida – ¿es factible? ¿hay opciones / alternativas para esto?
- ¿Hay alguna opción oculta o inexplorada de AWS que pueda probar para este tipo de actividad?
- ¿Alguna idea innovadora?
Cualquier respuesta sería apreciada, ¡gracias!
davy.ai
Solución:
Como experto en IT especializado en Python, multithreading, Amazon Web Services y AWS Glue, recomiendo las siguientes soluciones:
1. Opciones de multithreading en el trabajo para realizar una ejecución más rápida
El multithreading es una opción viable para mejorar el rendimiento del trabajo. Con multithreading, se pueden utilizar hilos para paralelizar el procesamiento de archivos grandes, lo que puede reducir en gran medida el tiempo de procesamiento. Usando la clase ThreadPoolExecutor en el módulo concurrent.futures de Python, podemos crear un grupo de hilos para ejecutar múltiples instancias del trabajo. Esto nos permitirá aprovechar al máximo múltiples CPU y reducir el tiempo de ejecución general. Sin embargo, debemos asegurarnos de que la conexión a la base de datos sea segura para los hilos y también hacer pruebas exhaustivas sobre el enfoque multitarea.
2. Opciones ocultas o sin explorar de AWS para este tipo de actividad
AWS proporciona varios servicios que se pueden utilizar para mejorar el rendimiento del trabajo. Aquí hay algunas opciones a considerar:
Estas opciones pueden ayudar a optimizar el rendimiento del trabajo, reducir el tiempo de inactividad y aumentar la confiabilidad.
3. Pensamientos innovadores
Aquí hay algunos pensamientos innovadores a considerar:
En general, estas son algunas soluciones prácticas para mejorar el rendimiento del trabajo de AWS Glue mientras trabaja con archivos grandes en S3 e insertándolos en RDS.