He estado usando trabajos de shell de aws glue python para crear trabajos etl de datos simples, para trabajos de chispa, solo los he usado una o dos veces para convertir a formato orc o ejecutar chispa sql en datos JDBC. Entonces, ¿se pregunta cuáles son los mejores/típicos casos de uso para cada uno de ellos? Algún documento dice que el trabajo de Python Shell es adecuado para trabajos simples, mientras que Spark para trabajos más complicados, ¿es correcto? ¿Podría compartir más experiencia al respecto?
Muchas gracias
Utilice el shell Python de AWS Glue cuando no necesite demasiada potencia informática para ejecutar cargas de trabajo de ETL ligeras. Utilice AWS Glue con Spark cuando deba escalar horizontal, verticalmente o ambos.
¿Cuáles son los mejores/típicos casos de uso para cada uno de ellos? Algún documento dice que el trabajo de Python Shell es adecuado para trabajos simples, mientras que Spark para trabajos más complicados, ¿es correcto?
AWS Glue es una instalación/servicio de desarrollo rápido para trabajos de ETL proporcionado por AWS. En mi humilde opinión, es un desarrollo muy rápido si sabe lo que debe hacerse en su tubería etl.
Glue tiene componentes como Discover, Develop, Deploy. En Discover... el rastreo automático (ejecutar o programar un rastreador varias veces) es la característica importante que lo diferencia de otras herramientas que observé.
Glue parece una función de integración para conectarse a los servicios del ecosistema de AWS (donde como chispa debe hacerlo)
El caso de uso típico de AWS Glue podría ser...
1) Cargar datos de casas de Dataware.
2) Cree un lago de datos en amazon s3.
Consulte esta presentación de AWS para obtener más información.
Custom Spark Job también puede hacer lo mismo, pero debe desarrollarse desde cero. y no tiene una función de rastreo automático incorporada.
Pero si desarrolla un trabajo de chispa para etl, tiene un control detallado para implementar trabajos complicados.
Tanto el pegamento como la chispa tienen el mismo objetivo para ETL. AFAIK, Glue es para trabajos simples como cargar desde el origen hasta el destino. Mientras que Spark Job puede realizar una amplia variedad de transformaciones de forma controlada.
Conclusión: para casos de uso simple de ETL (que se puede hacer sin mucha experiencia en desarrollo), vaya con Glue. Para ETL personalizado que tiene muchas dependencias/transformaciones, vaya con Spark Job.