Si tuviera que realizar ETL en un conjunto de datos enorme (por ejemplo, 1 TB) almacenado en S3 como archivos csv, se pueden usar tanto el trabajo ETL de AWS Glue como los pasos de EMR de AWS. Entonces, ¿en qué se diferencia AWS Glue de AWS EMR? Y cuál es la mejor solución en este caso.
Glue le permite enviar scripts ETL directamente en PySpark/Python/Scala, sin necesidad de administrar un clúster EMR. Se gestiona todo el montaje/desmontaje de la infraestructura.
También hay algunos otros componentes administrados como Crawlers, Glue Data Catalog, etc. que facilitan el trabajo con sus datos.
Puede usar cualquiera de los dos para su caso de uso, Glue sería más rápido, sin embargo, es posible que no tenga la flexibilidad que obtiene con EMR.
La mayoría de las diferencias ya están enumeradas, por lo que me centraré más en el caso de uso específico.
Cuándo elegir pegamento aws
Cuándo usar EMR
Así que depende de cuál sea su caso de uso. Ambos son un gran servicio.
Pegamento usa EMR debajo del capó. Esto es evidente cuando accede al controlador de su terminal de desarrollo de Glue.
Ahora, dado que Glue es un entorno Spark administrado o, por ejemplo, un entorno EMR administrado, viene con una flexibilidad reducida. El tipo de trabajadores que puede elegir es limitado. La cantidad de bibliotecas de idiomas que puede usar en su código Spark es limitada. Glue no admitía paquetes como pandas, numpy hasta hace poco. Las aplicaciones como presto no se pueden integrar con Glue, aunque Athena es una buena alternativa a una instalación separada de presto.
Sin embargo, el problema principal es que los trabajos de Glue tienen un tiempo de inicio en frío de entre 1 minuto y 15 minutos.
EMR es una buena opción para el análisis exploratorio de datos, pero para un entorno de producción con CI/CD, Glue parece ser la mejor opción.
EDITAR: los trabajos de pegamento ya no tienen un tiempo de espera de inicio en frío