Logotipo de Zephyrnet

Cree rastreos incrementales de lagos de datos con tablas de catálogo de Glue existentes

Fecha:

Pegamento AWS incluye crawlers, una capacidad que simplifica el descubrimiento de conjuntos de datos al escanear datos en Servicio de almacenamiento simple de Amazon (Amazon S3) y bases de datos relacionales, extrayendo su esquema y completando automáticamente el Catálogo de datos de AWS Glue, que mantiene los metadatos actualizados. Esto reduce el tiempo para obtener información al hacer que los datos recién ingeridos estén rápidamente disponibles para su análisis con sus herramientas de análisis y aprendizaje automático (ML) preferidas.

Anteriormente, podía reducir el costo del rastreador usando Notificaciones de eventos de Amazon S3 para rastrear de forma incremental los cambios en las tablas del catálogo de datos creadas por el rastreador. Hoy, estamos ampliando este soporte para rastrear y actualizar tablas de catálogo de datos que se crean mediante métodos que no son rastreadores, como el uso de canalizaciones de datos. Esta función de rastreador puede ser útil para varios casos de uso, como los siguientes:

  • Actualmente tiene una canalización de datos para crear tablas de AWS Glue Data Catalog y desea descargar la detección de información de partición de la canalización de datos a un rastreador programado.
  • Tiene un depósito S3 con notificaciones de eventos habilitadas y desea catalogar continuamente nuevos cambios y evitar la creación de nuevas tablas en caso de archivos mal formateados que interrumpen la detección de particiones.
  • Ha creado manualmente tablas de Data Catalog y desea ejecutar rastreos incrementales en las adiciones de nuevos archivos en lugar de ejecutar rastreos completos debido a los largos tiempos de rastreo.

Para realizar un rastreo incremental, puede configurar las notificaciones de eventos de Amazon S3 para que se envíen a un Servicio de cola simple de Amazon (Amazon SQS) cola. A continuación, puede utilizar la cola de SQS como fuente para identificar cambios y puede programar o ejecutar un rastreador de AWS Glue con tablas de Data Catalog como destino. Con cada ejecución del rastreador, se inspecciona la cola de SQS en busca de nuevos eventos. Si no se encuentran nuevos eventos, el rastreador se detiene. Si se encuentran eventos en la cola, el rastreador inspecciona sus carpetas respectivas, los procesa a través de clasificadores integrados (para CSV, JSON, AVRO, XML, etc.) y determina los cambios. Luego, el rastreador actualiza el catálogo de datos con nueva información, como particiones o columnas recién agregadas o eliminadas. Esta característica reduce el costo y el tiempo para rastrear datos de Amazon S3 grandes y que cambian con frecuencia.

Esta publicación muestra cómo crear un rastreador de AWS Glue que admita la notificación de eventos de Amazon S3 en las tablas de Data Catalog existentes utilizando la nueva interfaz de usuario del rastreador y un Formación en la nube de AWS plantilla.

Resumen de la solución

Para demostrar cómo el nuevo rastreador de AWS Glue realiza actualizaciones incrementales, utilizamos el Conjunto de datos de multas de estacionamiento de Toronto—específicamente datos sobre multas de estacionamiento emitidas en la ciudad de Toronto entre 2019 y 2020. El objetivo es crear un conjunto de datos manual, así como sus tablas de metadatos asociadas en AWS Glue, seguido de un rastreador basado en eventos que detecta e implementa cambios en los catálogos y conjuntos de datos creados manualmente.

Como se mencionó anteriormente, en lugar de rastrear todas las subcarpetas en Amazon S3, utilizamos un enfoque basado en eventos de Amazon S3. Esto ayuda a mejorar el tiempo de rastreo mediante el uso de eventos de Amazon S3 para identificar los cambios entre dos rastreos al enumerar todos los archivos de la subcarpeta que activó el evento en lugar de enumerar el destino completo de Amazon S3. Para lograr esto, creamos un depósito S3, un rastreador basado en eventos, un Servicio de almacenamiento simple de Amazon (Amazon SNS) y una cola de SQS. El siguiente diagrama ilustra la arquitectura de nuestra solución.

Requisitos previos

Para este tutorial, debe tener los siguientes requisitos previos:

Si la cuenta de AWS que usa para seguir esta publicación usa Lake Formation 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. nombre de la pila, ingrese un nombre para su pila.
  3. paramBucketName, ingrese un nombre para su depósito S3 (con su número de cuenta).
  4. Elige Siguiente.
  5. Seleccione Reconozco que AWS CloudFormation podría crear recursos de IAM con nombres personalizados.
  6. Elige Crear pila.

Espere a que la formación de la pila termine de aprovisionar los recursos necesarios. cuando ves el CREATE_COMPLETE estado, puede continuar con los siguientes pasos.

Además, anote el ARN de la cola de SQS para utilizarlo más adelante.

Consulta tu catálogo de datos

A continuación, usamos Atenea amazónica para confirmar que las tablas manuales se han creado en el catálogo de datos, como parte de la plantilla de CloudFormation.

  1. En la consola de Athena, elija Iniciar editor de consultas.
  2. Fuente de datos, escoger AwsDataCatalog.
  3. Base de datos, escoger torontoparking.

    El proyecto tickets La tabla debe aparecer en la Mesas .

    Ahora puede consultar la tabla para ver su contenido.
  4. Puede escribir su propia consulta o elegir Tabla de vista previa en el menú de opciones.

    Esto escribe una consulta SQL simple para mostrarnos las primeras 10 filas.
  5. Elige Ejecutar para ejecutar la consulta.

Como podemos ver en los resultados de la consulta, la base de datos y la tabla para los datos de las multas de estacionamiento de 2019 se han creado y particionado.

Crear el rastreador de eventos de Amazon S3

El siguiente paso es crear el rastreador que detecta y rastrea solo en tablas actualizadas de forma incremental.

  1. En la consola de AWS Glue, elija Rastreadores en el panel de navegación.
  2. Elige Crear rastreador.
  3. Nombre, ingresa un nombre.
  4. Elige Siguiente.

    Ahora debemos seleccionar la fuente de datos para el rastreador.
  5. Seleccione para indicar que nuestros datos ya están asignados a nuestro catálogo de datos de AWS Glue.
  6. Elige Agregar tablas.
  7. Base de datos, escoger torontoparking y para Mesas, elige entradas.
  8. Seleccione Rastreo basado en eventos.
  9. Incluir ARN de SQS, ingrese el ARN que guardó de los resultados de la pila de CloudFormation.
  10. Elige Confirmar.

    Ahora debería ver la tabla poblada bajo Pegar mesas, con el parámetro establecido como Volver a rastrear por evento.
  11. Elige Siguiente.
  12. Rol de IAM existente, elija el rol de IAM creado por la plantilla de CloudFormation (GlueCrawlerTableRole).
  13. Elige Siguiente.
  14. Frecuencia, escoger BAJO DEMANDA .

    También tiene la opción de elegir un horario en el que el rastreador se ejecutará regularmente.
  15. Elige Siguiente.
  16. Revise las configuraciones y elija Crear rastreador.

    Ahora que se ha creado el rastreador, agregamos los datos de emisión de boletos de 2020 a nuestro depósito S3 para que podamos probar nuestro nuevo rastreador. Para este paso, usamos el Interfaz de línea de comandos de AWS (CLI de AWS)
  17. Para agregar estos datos, use el siguiente comando:
    aws s3 cp s3://aws-bigdata-blog/artifacts/gluenewcrawlerui2/source/year=2020/Parking_Tags_Data_2020.000.csv s3://glue-table-crawler-blog-/year=2020/Parking_Tags_Data_2020.000.csv

Después de completar con éxito este comando, su depósito S3 debe contener los datos de emisión de boletos de 2020 y su rastreador está listo para ejecutarse. El terminal debe devolver lo siguiente:

copy: s3://aws-bigdata-blog/artifacts/gluenewcrawlerui2/source/year=2020/Parking_Tags_Data_2020.000.csv to s3://glue-table-crawler-blog-/year=2020/Parking_Tags_Data_2020.000.csvEjecute el rastreador y verifique las actualizaciones

Ejecute el rastreador y verifique las actualizaciones

Ahora que se ha creado la nueva carpeta, ejecutamos el rastreador para detectar los cambios en la tabla y las particiones.

  1. Navegue a su rastreador en la consola de AWS Glue y elija Ejecutar rastreador.

    Después de ejecutar el rastreador, debería ver que agregó los datos de 2020 a la tabla de tickets.
  2. En la consola de Athena, podemos asegurarnos de que el Catálogo de datos se ha actualizado agregando un lugar year = 2020 filtrar a la consulta.

Opción de CLI de AWS

También puede crear el rastreador mediante la AWS CLI. Para obtener más información, consulte crear rastreador.

Limpiar

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

Conclusión

Puede utilizar rastreadores de AWS Glue para descubrir conjuntos de datos, extraer información de esquemas y completar el catálogo de datos de AWS Glue. En esta publicación, proporcionamos una plantilla de CloudFormation para configurar los rastreadores de AWS Glue para usar las notificaciones de eventos de Amazon S3 en las tablas de Data Catalog existentes, lo que reduce el tiempo y el costo necesarios para procesar gradualmente las actualizaciones de datos de tablas en Data Catalog.

Con esta función, ahora se puede descargar el rastreo incremental de las canalizaciones de datos al rastreador programado de AWS Glue, lo que reduce los costos. Esto alivia la necesidad de realizar rastreos completos, lo que reduce los tiempos de rastreo y las unidades de procesamiento de datos (DPU) necesarias para ejecutar el rastreador. Esto es especialmente útil para los clientes que tienen depósitos S3 con notificaciones de eventos habilitadas y desean catalogar continuamente nuevos cambios.

Para obtener más información sobre esta función, consulte Aceleración de rastreos mediante notificaciones de eventos de Amazon S3.

Un agradecimiento especial a todos los que contribuyeron con el lanzamiento de esta característica del rastreador: Theo Xu, Jessica Cheng, Arvin Mohanty y Joseph Barlan.


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.

Aayzed Tanweer es un Arquitecto de Soluciones que trabaja con clientes emergentes en el espacio de FinTech, con un enfoque especial en los servicios de análisis. Originario de Toronto, se mudó recientemente a la ciudad de Nueva York, donde disfruta comiendo por la ciudad y explorando sus muchos rincones y recovecos peculiares.

Sandeep Adwankar es gerente sénior de productos técnicos en AWS. Con sede en el Área de la Bahía de California, trabaja con clientes de todo el mundo para traducir los requisitos comerciales y técnicos en productos que permitan a los clientes mejorar la forma en que administran, protegen y acceden a los datos.

punto_img

Información más reciente

punto_img