Searching...
domingo, 4 de junio de 2023

Exportación de metadata de datahub a S3

Supuesto práctico 

Tengo una aplicación Scala que llama a una API externa (Datahub), procesa la respuesta JSON y genera un conjunto de ficheros en local. Se puede ejecutar esta aplicación en un cluster EMR Serverless?

Ejecución en EMR Serverless

No es posible ejecutar directamente una aplicación Scala que procesa datos en un cluster EMR Serverless. EMR Serverless es un servicio de AWS que se utiliza para ejecutar trabajos de procesamiento de datos basados en Apache Spark en forma de consultas SQL o scripts de Spark, pero no es adecuado para ejecutar aplicaciones de Scala independientes.

En EMR Serverless, se ejecutan consultas o trabajos Spark en un entorno administrado por AWS, sin necesidad de aprovisionar y administrar un clúster de EMR tradicional. Esto permite un procesamiento rápido y escalable de datos sin preocuparse por la infraestructura subyacente.

Si tienes una aplicación Scala que procesa datos y genera archivos localmente, puedes ejecutarla en una instancia de EC2 en lugar de utilizar EMR Serverless. En EC2, tienes más control sobre el entorno de ejecución y puedes instalar las dependencias necesarias, configurar los recursos de hardware y ejecutar tu aplicación Scala directamente.

Puedes utilizar una instancia de EC2 para ejecutar tu aplicación Scala y, si es necesario, interactuar con otros servicios de AWS como S3 para el almacenamiento de archivos o incluso utilizar servicios de procesamiento de datos como EMR si tu aplicación requiere un procesamiento más complejo.

En resumen, EMR Serverless está diseñado específicamente para trabajar con consultas y trabajos Spark, no para ejecutar aplicaciones Scala independientes. Para ejecutar una aplicación Scala que genera archivos localmente, te recomendaría utilizar una instancia de EC2 en AWS.

Ejecutar en una instancia EC2


Si deseas ejecutar tu proceso batch en una instancia EC2 y planificar su ejecución, puedes seguir los siguientes pasos:

  1. Crear una instancia EC2: Provisiona una instancia EC2 en AWS con el sistema operativo de tu elección. Asegúrate de seleccionar una instancia con los recursos adecuados para ejecutar tu proceso, como capacidad de CPU, memoria y almacenamiento suficientes.

  2. Configurar la instancia EC2: Accede a la instancia EC2 y configúrala según tus necesidades. Esto puede incluir la instalación de las dependencias necesarias para tu proceso batch, como el lenguaje de programación, las bibliotecas y cualquier otra herramienta requerida.

  3. Desarrollar y configurar el proceso batch: Implementa tu proceso batch en la instancia EC2. Esto puede implicar la escritura de scripts o programas que llamen a la API de Datahub, procesen los datos y generen los archivos CSV. Asegúrate de que el proceso esté configurado correctamente y funcione según lo esperado.

  4. Programar la ejecución del proceso: Utiliza una herramienta de planificación de tareas en la instancia EC2, como cron en sistemas basados en Unix o el Programador de tareas en Windows, para programar la ejecución periódica de tu proceso. Configura la programación según tus necesidades, como la frecuencia y el horario de ejecución.

  5. Configurar permisos y acceso a recursos: Asegúrate de que la instancia EC2 tenga los permisos adecuados para acceder a la API de Datahub y para escribir los archivos CSV en el almacenamiento deseado. Esto puede implicar la configuración de roles de IAM y asignarlos a la instancia EC2 para otorgar los permisos necesarios.

  6. Monitorear y administrar la instancia EC2: Mantén un monitoreo regular de la instancia EC2 para asegurarte de que está funcionando correctamente. Puedes utilizar servicios como Amazon CloudWatch para recopilar métricas y registros de la instancia y configurar alarmas en caso de cualquier problema.

Con estos pasos, podrás ejecutar tu proceso batch en una instancia EC2 y planificar su ejecución según tus necesidades. Ten en cuenta que en este enfoque, la responsabilidad de la administración y escalado de la instancia EC2 recae en ti, a diferencia de los servicios administrados como AWS Lambda.

Ejecutar mediante función Lambda

Para ejecutar tu proceso batch que llama a una API de Datahub, procesa los datos y genera archivos CSV en AWS, puedes considerar los siguientes pasos:

  1. Crear una función Lambda: Crea una función Lambda en AWS que contenga la lógica de tu proceso batch. Esta función será responsable de llamar a la API de Datahub, procesar los datos y generar los archivos CSV. Puedes desarrollar tu función en el lenguaje de programación de tu elección (por ejemplo, Python, Node.js, Java, etc.) y utilizar las bibliotecas necesarias para realizar las llamadas a la API y procesar los datos.

  2. Configurar un trigger de tiempo: Utiliza el servicio CloudWatch Events para programar la ejecución periódica de tu función Lambda. Puedes configurar una regla en CloudWatch Events para que se active en un intervalo específico, por ejemplo, cada día a una hora determinada. Cuando se active la regla, CloudWatch Events invocará automáticamente tu función Lambda.

  3. Configurar permisos y roles: Asegúrate de que la función Lambda tenga los permisos adecuados para acceder a la API de Datahub y para escribir los archivos CSV en el almacenamiento deseado, como Amazon S3 o Amazon EFS. Puedes crear un rol de IAM con las políticas necesarias y asignarlo a tu función Lambda.

  4. Almacenar archivos CSV: Decide dónde quieres almacenar los archivos CSV generados por tu proceso batch. Puedes utilizar Amazon S3 para almacenarlos de forma duradera y segura. Configura tu función Lambda para guardar los archivos CSV en el bucket de Amazon S3 correspondiente.

Con estos pasos, tu proceso batch se ejecutará automáticamente cada día dentro de AWS. La función Lambda se activará según la programación establecida en CloudWatch Events, realizará las llamadas a la API de Datahub, procesará los datos y guardará los archivos CSV en Amazon S3. Esto te proporcionará una solución escalable, administrada y automatizada para ejecutar tu proceso batch en la nube de AWS.

0 comentarios:

Publicar un comentario

Gracias por participar en esta página.

 
Back to top!