Supervise su canalización de Dataprep de BigQuery Data Warehouse con Data Studio

Tal vez si administra su canal de análisis de datos en una pila de datos moderna como Google Cloud para su almacén de datos o lago de datos de BigQuery, le gustaría monitorearlo y obtener una vista completa del proceso de análisis de un extremo a otro para reaccionar rápidamente cuando algo se rompe, o simplemente disfruta de la tranquilidad cuando todo funciona correctamente.

En un artículo anterior, demostré cómo monitorear sus trabajos de Dataprep con una simple hoja de Google , pero ¿por qué no impulsarlo al siguiente nivel con un tablero hermoso y procesable en Data Studio?

En este artículo, se explica cómo capturar los estados y los detalles de los trabajos de Cloud Dataprep a través de las API que aprovechan las funciones de Cloud. Luego, ingresamos esta información en una tabla de Google BigQuery para monitorear los trabajos de un informe de Data Studio conectado a esta tabla.

Para ilustrar este concepto, asumiremos que desea monitorear un trabajo de Dataprep programado diariamente y con un vistazo rápido a un panel de Data Studio obtendrá una descripción general de la falla potencial. Podrás verificar el nombre del conjunto de datos de salida, la duración del tiempo del trabajo, el nombre de usuario, el ID del trabajo de Dataflow y profundizar en los detalles del trabajo de Dataprep y los resultados del perfil directamente en la consola de Cloud Dataprep.

Este artículo es una guía paso a paso que recorre este proceso de activación de Cloud Functions cuando finaliza un trabajo de Cloud Dataprep y publica los resultados del trabajo, el estado y los enlaces directos en una tabla de Google BigQuery para generar informes en Google Data Studio .

A continuación, se muestra un ejemplo de un informe de Google Data Studio con la supervisión de los resultados del trabajo de Cloud Dataprep.

Fig.1 - Informe de Google Data Studio con resultados del trabajo de Dataprep

A continuación, se muestra una descripción general de toda la solución para capturar los resultados del trabajo de Dataprep y cargarlos en BigQuery gracias a Cloud Functions y API para la automatización y Data Studio para los informes.

Fig.2: proceso de alto nivel para activar una función de nube basada en la ejecución de un trabajo de Cloud Dataprep.

1. Primeros pasos

Para que esta guía sea práctica, estamos compartiendo aquí en Github el código Python para la función de nube y aquí el panel de Data Studio .

Necesita una cuenta de Google válida y acceso a Cloud Dataprep, Cloud Functions y Google BigQuery para probarlo. Puede comenzar desde la Consola de Google https://console.cloud.google.com/ para activar los distintos servicios.

OBSERVACIÓN : Para llamar a las API, se necesita un token de acceso y puede generarlo desde su página de preferencias.

Fig.3 - Obtenga el token de acceso desde el menú Configuración

2. Crea la tabla de BigQuery para almacenar el estado y los detalles del trabajo.

En un conjunto de datos de BigQuery, crea el siguiente esquema de tabla para almacenar toda la información del trabajo:

CREAR TABLA `default.dataprep_jobs`
(
job_run_date DATETIME,
job_id INT64,
nombre_salida STRING,
job_status STRING,
job_url STRING,
usuario STRING,
dataflow_job_id STRING,
duración STRING
)

Fig.4 El esquema de tabla de BigQuery para sus trabajos de Dataprep

3. Cree la función de nube HTTP para publicar en la tabla de Google BigQuery.

Primero, necesitamos crear la función de nube HTTP que se activará como un Webhook cuando finalice un trabajo de Dataprep.

Cree una función en la nube desde la consola de Google Cloud aquí .

El tipo de activador debe ser " HTTP ".

Asígnele un nombre y obtenga una URL similar a https://us-central1-dataprep-premium-demo.cloudfunctions.net/Job-Result-Google-BigQuery .

Más adelante, necesitaremos esta URL al crear el Webhook en Dataprep.

Y en nuestro ejemplo, usaremos el código Python , proporcionado anteriormente, como el tiempo de ejecución en la sección Código fuente.

Fig.5 Cree la función de nube que se llamará desde Dataprep

Si necesita explorar más sobre Cloud Functions, le recomiendo que lea este tutorial .

El código de la función de nube sigue esta lógica:

  1. Recupere la identificación del trabajo y el estado (fallido o completo) proporcionado por Dataprep.
  2. Aprovecha el token de acceso del usuario de Dataprep en la llamada a la API para que Cloud Dataprep lo autentique.
  3. Obtenga más información (nombre del conjunto de datos de salida, nombre de usuario, duración, ID del trabajo de Dataflow) sobre el trabajo con getJobGroup Llamada a la API de Dataprep. La documentación sobre este punto final de la API de Dataprep se puede encontrar aquí https://clouddataprep.com/documentation/api/#operation/getJobGroup
  4. Inserte los detalles del trabajo en la tabla de Google BigQuery (la URL de la página de resultados del trabajo es https://clouddataprep.com/jobs/ .
Fig.6 - Código Python para obtener detalles del trabajo e insertar el estado del resultado del trabajo en una tabla de Google BigQuery

El código completo de Python está en Github .

Debe editar y reemplazar los valores resaltados en negrita con los correctos que recuperó de su proyecto de Cloud Dataprep.

  • Token de acceso para llamar a la API de Dataprep:

dataprep_auth_token = " eyJhdjkghd …… ezhjkdfsghk "

  • Nombre de tabla y conjunto de datos de Google BigQuery:

# Prepara una referencia al conjunto de datos
dataset_ref = bigquery_client.dataset (' predeterminado ')
table_ref = dataset_ref.table (' dataprep_jobs ')

También debe agregar las siguientes dependencias a su función de nube de Python (consulte la pestaña requirements.txt como en la captura de pantalla a continuación):

solicitudes == 2.24.0
google-cloud-bigquery
fecha y hora

Fig.7 - Paquetes de dependencias de Python

Luego, debes implementar la función de nube. Una vez implementada, la función de la nube está en funcionamiento y espera ser llamada desde Cloud Dataprep cuando se ejecuta un trabajo. Puede obtener más información aquí sobre cómo implementar y ejecutar Cloud Functions.

4. Cree un flujo de Cloud Dataprep y configure un webhook

A continuación, debe crear el flujo de Cloud Dataprep que llamará a la función de nube HTTP para publicar el resultado del trabajo y los detalles en su tabla de Google BigQuery.

Y debe crear y configurar una tarea de Webhook en su flujo que llamará a su Función de nube HTTP.

Fig.8: Creación de un flujo de Cloud Dataprep y configuración de una tarea de Webhook en un flujo

La tarea de Webhook debe configurarse con esta información:

  • URL : es la URL de su función de nube HTTP que creó anteriormente. Por ejemplo https://us-central1-dataprep-premium-demo.cloudfunctions.net/Dataprep-Webhook-Function
  • Encabezados como se muestra en la captura de pantalla a continuación con tipo de contenido y aplicación / json
  • Cuerpo con el valor {"jobid": "$ jobId", "jobstatus": "$ jobStatus"} como se muestra en la siguiente captura de pantalla
  • Activar evento , puede decidir activar el Webhook para cualquier estado o solo para trabajos fallidos o completados.
  • Activar objeto , puede decidir activar el Webhook solo para salidas específicas en el flujo, o para cualquier trabajo ejecutado en el flujo.

Cuando haya ingresado esta información, puede probar su tarea de Webhook.

Fig.9 - Parámetros de tareas de webhook para llamar a la función de nube

Después de guardar la tarea de Webhook, estará lista para ser llamada cuando se ejecute el trabajo.

Fig.10 - Tarea de webhook creada

5. Prueba del proceso de principio a fin

Ahora está listo para probar el proceso de un extremo a otro al ejecutar un trabajo desde su trabajo de Dataprep y ver el estado del trabajo y los detalles agregados a su tabla de BigQuery.

Fig.11 - Ejecute un trabajo de Dataprep
Fig.12 - Resultado del trabajo de Dataprep y tarea de Webhook completada
Fig.13 - Estado del resultado del trabajo y detalles publicados en la tabla de Google BigQuery
Fig.13 - Estado del resultado del trabajo y detalles que se muestran en el panel de Google Data Studio

Por último, también puede verificar los detalles de ejecución adecuados (llamada a la API con el parámetro y estado del trabajo de Cloud Dataprep) revisando los registros de Google Cloud Functions que se encuentran aquí .

Fig.14 - Registros de Cloud Functions

Conclusión

Al lograr esta guía paso a paso, se cumplen los principios fundamentales para publicar automáticamente los resultados del trabajo de Dataprep en una tabla de Google BigQuery para que pueda monitorear y compartir información resumida fácilmente con un equipo más amplio a través de un atractivo panel de Data Studio.

Has aprendido sobre:

También puede ampliar esta solución para monitorear servicios adicionales de Google Cloud para un monitoreo de canalización de datos de un extremo a otro.

Ahora está listo para automatizar la supervisión del estado de su trabajo.

También puedes automatizar Cloud Dataprep aprovechando otra función de Cloud o un programador externo. Echa un vistazo a estos artículos que explican cómo organizar trabajos de Cloud Dataprep con Cloud Composer y cómo automatizar una canalización de Cloud Dataprep cuando llega un archivo a Cloud Storage .


Monitoree su canalización de Dataprep de BigQuery Data Warehouse con Data Studio se publicó originalmente en Google Cloud - Community on Medium, donde las personas continúan la conversación destacando y respondiendo a esta historia.