Tutorial: Cree su primera carga de trabajo de transmisión con los cuadernos de AWS Glue Studio - AWS Glue

Tutorial: Cree su primera carga de trabajo de transmisión con los cuadernos de AWS Glue Studio

En este tutorial, explorará cómo aprovechar los cuadernos de AWS Glue Studio a fin de crear y refinar de forma interactiva sus trabajos de ETL para el procesamiento de datos casi en tiempo real. Si acaba de empezar a usar AWS Glue o si desea mejorar sus habilidades, esta guía le mostrará el proceso y le permitirá aprovechar todo el potencial de los cuadernos de las sesiones interactivas de AWS Glue.

Con la transmisión de AWS Glue, puede crear trabajos de extracción, transformación y carga (ETL) de transmisión que se ejecuten de forma continua y consuman datos de los orígenes de transmisión como Amazon Kinesis Data Streams, Apache Kafka y Amazon Managed Streaming para Apache Kafka (Amazon MSK).

Requisitos previos

Para seguir este tutorial, necesitará un usuario con permisos de consola de AWS para usar AWS Glue, Amazon Kinesis, Amazon S3, Amazon Athena, AWS CloudFormation, AWS Lambda y Amazon Cognito.

Consumir datos de transmisión desde Amazon Kinesis

Generación de datos simulados con Kinesis Data Generator

nota

Si ya ha completado la sección anterior Tutorial: Cree su primera carga de trabajo de transmisión con AWS Glue Studio, ya tiene Kinesis Data Generator instalado en su cuenta, por lo que puede omitir los pasos 1 a 8 que aparecen a continuación y pasar a la sección Creación de un trabajo de transmisión de AWS Glue con AWS Glue Studio.

Puede generar sintéticamente datos de muestra en formato JSON mediante Kinesis Data Generator (KDG). Encontrará instrucciones y detalles completos en la documentación de la herramienta.

  1. Para empezar, haga clic en Orange button labeled "Launch Stack" with an arrow icon. para ejecutar una plantilla de AWS CloudFormation en su entorno de AWS.

    nota

    Es posible que se produzca un error en la plantilla de CloudFormation porque algunos recursos, como el usuario de Amazon Cognito para Kinesis Data Generator, ya existen en su cuenta de AWS. Esto puede deberse a que ya la configuró en otro tutorial o blog. Para solucionar este problema, puede probar la plantilla en una cuenta de AWS nueva para empezar de cero o explorar una región de AWS diferente. Estas opciones le permiten ejecutar el tutorial sin que entre en conflicto con los recursos existentes.

    La plantilla aprovisiona un flujo de datos de Kinesis y una cuenta de Kinesis Data Generator.

  2. Introduzca un nombre de usuario y una contraseña que KDG usará para autenticarse. Tome nota del nombre de usuario y la contraseña para su uso posterior.

  3. Seleccione Siguiente hasta el último paso. Acepte la creación de recursos de IAM. Compruebe si hay algún error en la parte superior de la pantalla, como que la contraseña no cumple los requisitos mínimos, e implemente la plantilla.

  4. Navegue hasta la pestaña Salidas de la pila. Una vez implementada la plantilla, mostrará la propiedad generada KinesisDataGeneratorUrl. Haga clic en esa URL.

  5. Ingrese el nombre de usuario y la contraseña que anotó.

  6. Seleccione la región que está usando y elija Kinesis Stream GlueStreamTest-{AWS::AccountId}.

  7. Escriba la siguiente plantilla:

    { "ventilatorid": {{random.number(100)}}, "eventtime": "{{date.now("YYYY-MM-DD HH:mm:ss")}}", "serialnumber": "{{random.uuid}}", "pressurecontrol": {{random.number( { "min":5, "max":30 } )}}, "o2stats": {{random.number( { "min":92, "max":98 } )}}, "minutevolume": {{random.number( { "min":5, "max":8 } )}}, "manufacturer": "{{random.arrayElement( ["3M", "GE","Vyaire", "Getinge"] )}}" }

    Ahora puede ver los datos simulados con la plantilla de prueba e incorporarlos a Kinesis con Enviar datos.

  8. Haga clic en Enviar datos y genere entre 5 y 10 000 registros en Kinesis.

Creación de un trabajo de transmisión de AWS Glue con AWS Glue Studio

AWS Glue Studio es una interfaz visual que simplifica el proceso de diseño, organización y supervisión de las canalizaciones de integración de datos. Permite a los usuarios crear canalizaciones de transformación de datos sin necesidad de escribir un código extenso. Además de la experiencia visual de creación de trabajos, AWS Glue Studio también incluye un cuaderno de Jupyter respaldado por sesiones interactivas de AWS Glue, que usará en el resto de este tutorial.

Configure el trabajo de sesiones interactivas de la transmisión de AWS Glue

  1. Descargue el archivo del cuaderno proporcionado y guárdelo en un directorio local.

  2. Abra la consola de AWS Glue y, en el panel izquierdo, haga clic en Cuadernos > Cuaderno de Jupyter > Cargar y editar un cuaderno existente. Cargue el cuaderno del paso anterior y haga clic en Crear.

    En la captura de pantalla se muestra la creación de un trabajo del cuaderno de Jupyter.
  3. Proporcione un nombre y un rol al trabajo y seleccione el kernel de Spark predeterminado. A continuación, haga clic en Iniciar cuaderno. Para el rol de IAM, seleccione el rol aprovisionado en la plantilla de CloudFormation. Puede verlo en la pestaña Salidas de CloudFormation.

    En la captura de pantalla se muestra el cuadro de diálogo de configuración del cuaderno.

El cuaderno tiene todas las instrucciones necesarias para continuar con el tutorial. Puede ejecutar las instrucciones en el cuaderno o seguir este tutorial para continuar con el desarrollo del trabajo.

Ejecute las celdas del cuaderno

  1. (Opcional) La primera celda de código %help muestra todos los comandos mágicos disponibles del cuaderno. Puede saltarse esta celda por ahora, pero no dude en explorarla.

  2. Empiece con el siguiente bloque de código %streaming. Este comando mágico define el tipo de trabajo como transmisión, lo que le permite desarrollar, depurar e implementar un trabajo de ETL de transmisión de AWS Glue.

  3. Ejecute la siguiente celda para crear una sesión interactiva de AWS Glue. La celda de salida tiene un mensaje que confirma la creación de la sesión.

    En la captura de pantalla se muestra el inicio de una sesión interactiva.
  4. La siguiente celda define las variables. Sustituya los valores por otros adecuados para su trabajo y ejecute la celda. Por ejemplo:

    En la captura de pantalla se muestra la definición de variables en una sesión interactiva.
  5. Como los datos ya se están transmitiendo a Kinesis Data Streams, la siguiente celda consumirá los resultados del flujo. Ejecute la siguiente celda. Como no hay instrucciones de impresión, no se espera ningún resultado de esta celda.

  6. En la siguiente celda, se explora el flujo entrante tomando un conjunto de muestra e imprimiendo su esquema y los datos reales. Por ejemplo:

    En la captura de pantalla se ilustra el muestreo y la impresión de los registros entrantes en una sesión interactiva.
  7. A continuación, defina la lógica de transformación de datos real. La celda consiste en el método processBatch que se activa durante cada microlote. Ejecute la celda. En un nivel superior, haga lo siguiente con el flujo entrante:

    1. Seleccione un subconjunto de las columnas de entrada.

    2. Cambie el nombre de una columna (o2stats a oxygen_stats).

    3. Derive columnas nuevas (serial_identifier, ingest_year, ingest_month e ingest_day).

    4. Almacene los resultados en un bucket de Amazon S3 y también cree una tabla de catálogo de AWS Glue particionada.

  8. En la última celda, active el proceso por lotes cada 10 segundos. Ejecute la celda y espere unos 30 segundos para que llene el bucket de Amazon S3 y la tabla del catálogo de AWS Glue.

  9. Por último, explore los datos almacenados con el editor de consultas de Amazon Athena. Puede ver la columna a la que se le ha cambiado el nombre y también las nuevas particiones.

    En la captura de pantalla se muestra cómo navegar por los datos almacenados en el editor de consultas de Amazon Athena.

El cuaderno tiene todas las instrucciones necesarias para continuar con el tutorial. Puede ejecutar las instrucciones en el cuaderno o seguir este tutorial para continuar con el desarrollo del trabajo.

Guarde y ejecute el trabajo de AWS Glue

Una vez que haya completado el desarrollo y las pruebas de su aplicación con el cuaderno de sesiones interactivas, haga clic en Guardar en la parte superior de la interfaz del cuaderno. Una vez guardado, también puede ejecutar la aplicación como un trabajo.

En la captura de pantalla se muestra cómo guardar el cuaderno como un trabajo de AWS Glue.

Limpieza

Para evitar incurrir en cargos adicionales en su cuenta, detenga el trabajo de transmisión que inició siguiendo las instrucciones. Puede hacerlo cerrando el cuaderno, lo que finalizará la sesión. Vacíe el bucket de Amazon S3 y elimine la pila de AWS CloudFormation que aprovisionó anteriormente.

Conclusión

En este tutorial, mostramos cómo usar el cuaderno de AWS Glue Studio para hacer lo siguiente:

  • Crear un trabajo de ETL de transmisión con cuadernos

  • Previsualizar los flujos de datos entrantes

  • Codificar y solucionar problemas sin tener que publicar los trabajos de AWS Glue

  • Revisar el código de trabajo de principio a fin, eliminar cualquier error e imprimir las instrucciones o celdas del cuaderno

  • Publicar el código como un trabajo de AWS Glue

El objetivo de este tutorial es proporcionarle experiencia práctica al trabajar con la transmisión de AWS Glue y las sesiones interactivas. Le recomendamos que lo use como referencia para sus casos de uso individuales de transmisión de AWS Glue. Para obtener más información, consulte Introducción a las sesiones interactivas de AWS Glue.