Logotipo de Zephyrnet

Control de versiones de código con AWS Glue Studio y GitHub

Fecha:

Pegamento AWS ahora ofrece integración con Git, un sistema de control de versiones de código abierto ampliamente utilizado en la comunidad de desarrolladores. Gracias a esta integración, puede incorporar sus prácticas DevOps existentes en Empleos de AWS Glue. AWS Glue es un servicio de integración de datos sin servidor que lo ayuda a crear trabajos basados ​​en Apache Spark o Python para realizar tareas de extracción, transformación y carga (ETL) en conjuntos de datos de casi cualquier tamaño.

La integración de Git en AWS Glue funciona para todos los tipos de trabajos de AWS Glue, tanto visuales como basados ​​en código. Ofrece integración integrada con ambos GitHub y Compromiso de código de AWSy facilita el uso de herramientas de automatización como Jenkins y Implementación de código de AWS para implementar trabajos de AWS Glue. El editor visual de AWS Glue Studio ahora también admite la parametrización de fuentes y destinos de datos para implementaciones transparentes entre entornos.

Resumen de la solución

Para demostrar cómo integrar AWS Glue Studio con una plataforma de alojamiento de código para el control de versiones y la colaboración, utilizamos el Conjunto de datos de multas de estacionamiento de Toronto, específicamente los datos sobre las multas de estacionamiento emitidas en la ciudad de Toronto en 2019. El objetivo es crear un trabajo para filtrar las multas de estacionamiento en función de una categoría específica y enviar el código a un repositorio de GitHub para el control de versiones. Después de cargar el trabajo en el repositorio, realizamos algunos cambios en el código y recuperamos los cambios en el trabajo de AWS Glue.

Requisitos previos

Para este tutorial, debe tener los siguientes requisitos previos:

Si la cuenta de AWS que usa para seguir esta publicación usa Formación del lago AWS para administrar permisos en AWS Glue Data Catalog, asegúrese de iniciar sesión como usuario con acceso para crear bases de datos y tablas. Para obtener más información, consulte Permisos implícitos de formación de lagos.

Inicie su pila de CloudFormation

Para crear sus recursos para este caso de uso, complete los siguientes pasos:

  1. Inicie su pila de CloudFormation en us-east-1:
  2. under parámetros, Para paramBucketName, ingrese un nombre para su depósito S3 (incluya su número de cuenta).
  3. Seleccione Reconozco que AWS CloudFormation podría crear recursos de IAM con nombres personalizados.
  4. Elige Crear pila.
  5. Espere hasta que se complete la creación de la pila, como se muestra en la consola de AWS CloudFormation.

Lanzar esta pila crea recursos de AWS. Necesita los siguientes recursos de la Salidas pestaña para los siguientes pasos:

  • CFNGlueRol – El rol de IAM para ejecutar trabajos de AWS Glue
  • S3 Cubo – El nombre del depósito S3 para almacenar archivos relacionados con la solución
  • Blog de la base de datos de CFND – La base de datos de AWS Glue para almacenar la tabla relacionada con esta publicación
  • Boletos de mesa CFNT – La tabla de AWS Glue para usar como parte del trabajo de muestra

Configurar el repositorio de GitHub

Usamos GitHub como sistema de control de fuente para esta publicación. Para usarlo, necesitas un cuenta de GitHub. Después de crear la cuenta, debe crear los siguientes componentes:

  • Repositorio GitHub – Crea un repositorio y nómbralo glue-ver-log. Para obtener instrucciones, consulte Crea un repositorio.
  • Rama – Cree una rama y asígnele el nombre de desarrollo. Para obtener instrucciones, consulte Administrar sucursales.
  • Token de acceso personal – Para obtener instrucciones, consulte Creación de un token de acceso personal. Asegúrese de tener a mano el token de acceso personal porque lo usará en pasos posteriores.

Crear un trabajo de AWS Glue Studio

Ahora que la infraestructura está configurada, creemos un trabajo de AWS Glue en nuestra cuenta. Complete los siguientes pasos:

  1. En la consola de AWS Glue, elija Empleo en el panel de navegación.
  2. Seleccione Trabajo visual con lienzo en blanco y elige Crear.
  3. Ingrese un nombre para el trabajo usando el editor de títulos. Por ejemplo, aws-glue-git-demo-job.
  4. En Visual pestaña, elegir Fuente y luego elige Catálogo de datos de AWS Glue

  5. Base de datos, escoger torontoparking y para Mesa, elige entradas.
  6. Elige Transformar y luego Filtrar.
  7. Agregar un filtro por infraction_description y establecer el valor para PARK ON PRIVATE PROPERTY.
  8. Elige Target y luego elige Amazon S3.
  9. Formato, escoger parquet.
  10. Ubicación de destino S3, introduzca s3://glue-version-blog-YOUR ACOUNT NUMBER/output/.
  11. Opciones de actualización del catálogo de datos, seleccione No actualizar el Catálogo de Datos.
  12. Visite la Guión pestaña para verificar que se ha generado un script.
  13. Visite la Detalles del trabajo pestaña para asegurarse de que el rol GlueBlogRole está seleccionado y deja todo lo demás con los valores predeterminados.

    Debido a que los nombres de las tablas de catálogo en el entorno de producción y desarrollo pueden ser diferentes, AWS Glue Studio ahora le permite parametrizar trabajos visuales. Para ello, realice los siguientes pasos:
  14. En Detalles del trabajo pestaña, desplácese hasta la Parámetros de trabajo sección bajo Propiedades avanzadas.
  15. Crea el --source.database.name parámetro y establezca el valor en torontoparking.
  16. Crea el --souce.table.name parámetro y establezca el valor en tickets.
  17. Visite la Visual pestaña y elija el Catálogo de datos de AWS Glue nodo. Observe que debajo de cada una de las opciones de selección de base de datos y tabla hay una nueva sección expandible llamada Usar parámetros de tiempo de ejecución.
  18. Los parámetros de tiempo de ejecución se completan automáticamente con los parámetros creados previamente. Al hacer clic en el Aplicá El botón aplicará los valores predeterminados para estos parámetros.
  19. Visite la Guión para revisar el script. La generación de código de AWS Glue Studio selecciona automáticamente los parámetros para resolver y luego hace las referencias apropiadas en el script para que los parámetros puedan usarse.
    Ahora el trabajo está listo para pasar a la rama de desarrollo de nuestro sistema de control de versiones.
  20. En Control de versiones pestaña, para Sistema de control de versiones, escoger Github.
  21. Token de acceso personal, ingrese su token de GitHub.
  22. Propietario del repositorio, ingrese el propietario de su cuenta de GitHub.
  23. En Configuración del repositorio sección, para Repositorio, escoger glue-ver-blog.
  24. Rama, escoger develop.
  25. carpeta, dejalo en blanco.
  26. Elige Guardar para salvar el trabajo.

Empujar al repositorio

Ahora el trabajo se puede enviar al repositorio remoto.

  1. En Acciones menú, seleccione Empujar al repositorio.
  2. Elige Confirmar Para confirmar la operación.

    Una vez que la operación tiene éxito, la página se vuelve a cargar para reflejar la información más reciente del sistema de control de versiones. Una notificación muestra la última confirmación disponible y lo vincula a la confirmación en GitHub.
  3. Elija el enlace de confirmación para ir al repositorio en GitHub.

¡Ha creado correctamente su primera confirmación en GitHub desde AWS Glue Studio!

Sacar del repositorio

Ahora que hemos confirmado el trabajo de AWS Glue en GitHub, es hora de ver cómo podemos generar cambios con AWS Glue Studio. Para esta demostración, realizamos una pequeña modificación en nuestro trabajo de ejemplo con la interfaz de usuario de GitHub y luego extraemos los cambios con AWS Glue Studio.

  1. En GitHub, elija el develop .
  2. Elija el aws-glue-git-demo-job carpeta.
  3. Elija el aws-glue-git-demo-job.json archivo.
  4. Elija el icono de edición.
  5. Seleccione las MaxRetries parámetro para 1.
  6. Elige Cometer cambios.
  7. Regrese a la consola de AWS Glue y en el Acciones menú, seleccione Extraer del repositorio.
  8. Elige Confirmar.

Observe que la ID de confirmación ha cambiado.

En Detalles del trabajo pestaña, puede ver que el valor para Número de reintentos es 1.

Limpiar

Para evitar incurrir en cargos futuros y limpiar las funciones y políticas no utilizadas, elimine los recursos que creó: los conjuntos de datos, la pila de CloudFormation, el depósito de S3, el trabajo de AWS Glue, la base de datos de AWS Glue y la tabla de AWS Glue.

Conclusión

Esta publicación mostró cómo integrar AWS Glue con GitHub, pero esto es solo el comienzo: ahora puede usar las funcionalidades más populares que ofrece Git.

Para obtener más información y comenzar a utilizar la integración Git de AWS Glue Studio, consulte Configuración de la integración de Git en AWS Glue.


Sobre los autores

leonardo gomez es arquitecto sénior de soluciones especialista en análisis en AWS. Con sede en Toronto, Canadá, tiene más de una década de experiencia en gestión de datos, ayudando a clientes de todo el mundo a abordar sus necesidades comerciales y técnicas.

daiyan alamgir es un ingeniero frontend principal en AWS Glue con sede en Nueva York. Dirige el equipo de interfaz de usuario de AWS Glue y se centra en la creación de aplicaciones interactivas basadas en la web para que los analistas e ingenieros de datos aborden sus casos de uso de integración de datos.

punto_img

Información más reciente

punto_img