Hola, soy Luis y hoy les traigo un tutorial.
Tenemos 4
tipos de informes programados en PasarPolis
. Cada uno usa una plataforma diferente. Sin embargo, la mayoría de los siguientes utilizan la misma fuente de datos, el conjunto de datos de informes en BigQuery
:
1. Informes programados de aplicaciones internas / cron
.
2. Metabase Pulse
, que son informes enviados por Slack
o por correo electrónico.
3. Tableau
envía informes programados y paneles como correos electrónicos con archivos adjuntos.
4. Los informes y paneles programados de Airflow
se envían como correos electrónicos con archivos adjuntos.
Cree y ejecute informes programados sobre el flujo de aire
Aquí, estamos elaborando los informes programados de Airflow
, categoría 4
en la lista anterior. Los informes que se encuentran actualmente en la categoría 1
, se están moviendo para pertenecer a la categoría 4
a medida que eliminamos las aplicaciones personalizadas.
Los consumidores de estos conocimientos obtienen los informes y paneles como archivos adjuntos de Excel
o CSV
.
Un requisito canónico de informes programados se ve así: envíe informes semanales a nuestros socios y proveedores que les ayuden a realizar un seguimiento del rendimiento de nuestros productos de seguros.
Contiene un informe detallado y un panel de resumen con visualizaciones de cambios de métricas, por ejemplo, estudiar el cambio en la tasa de pago a lo largo del tiempo.
BigQuery
, escriba el resultado en GCS
, envíe el correo electrónico con el enlace para descargar el resultado.
Las cosas que cambian según el requisito son: la consulta específica, a quién enviar la salida, la elección del formato, la programación, etc. Con este entendimiento, implementamos un enfoque de informes automatizados estandarizados.
El gráfico de cualquier implementación de informe nuevo se parece al diagrama siguiente.
Los informes pueden tener cualquier horario: diario, semanal o mensual. Creamos un DAG
único para cada nuevo requisito utilizando nuestro enfoque estandarizado. Eso nos facilita el seguimiento de sus carreras históricas.
Creamos un operador personalizado en Airflow
que nos permite usar nuestro Servicio de Notificación interno para enviar un correo electrónico (contenido parametrizado) con la URL
de referencia para descargar el archivo de salida una vez finalizado el trabajo de procesamiento de datos.
Cualquiera dentro del equipo técnico puede crear informes programados utilizando el módulo de Automatización de informes que construimos en Airflow. Esa persona no necesita estar familiarizada con Airflow en absoluto.
Proporciona una implementación genérica basada en la configuración para automatizar el proceso de creación de un DAG
, cada uno con un requisito específico único.
El solicitante / creador
del informe debe proporcionar una carga útil que contenga la información como el SQL
para obtener los datos, la lista de destinatarios de correo electrónico, etc.
Su estructura se ve así:
Esta carga útil luego se agrega al diccionario maestro. El diccionario maestro que contiene múltiples cargas útiles, a su vez, es consumido por el Código del controlador para generar todos los DAG
.
Driver Code aprovecha la función Airflow para recoger referencias DAG
del alcance global.
1. El código del controlador recorre el diccionario maestro y crea un DAG
en el ámbito global utilizando globals ()[dag_id] = dag_refrence
(preferiblemente una función que toma DAG_id
como entrada y devuelve un DAG
)
La función de referencia DAG
se ve así:
Para asignar una referencia global a un DAG
:
Tenga en cuenta aquí, general_payload
es el diccionario maestro que tiene todas las cargas útiles.
2. Los operadores están asociados a cada uno de los DAG
. Escalamos todo el flujo de trabajo para adaptarse a cualquier número de informes con una mínima inversión de tiempo de desarrollo.
3. Podemos personalizar los DAG
como queramos. Al aprovechar las variables de flujo de aire, podemos ejecutar un DAG
para cualquier fecha sin modificar el DAG
secundario o agregar otra clave. Por ejemplo: "pp_dag_1": "date_to_run"
.
Características y ventajas
1. Permita que el creador del informe elija el tipo de salida: CSV
o Excel
. La opción de escribir CSV
en GCS
desde BigQuery
está disponible de forma inmediata mediante BigQueryOperator
. Creamos una función en la nube que tomaría el CSV como entrada y lo convertiría en Excel
. Se activará si esa elección se realiza en la carga útil de entrada.
2. Divida un archivo de salida de detalles en unidades de menor tamaño en función del recuento de filas, ya que es difícil abrir un archivo con más de 500.000
filas.
3. Supere los límites de extracción de datos / tamaño
de archivo que imponen las herramientas de informes de autoservicio como Tableau
y Metabase
, que se convierten en obstáculos para los informes detallados. En teoría, Tableau
podría cargar filas ilimitadas, pero falla cuando se intenta ver más de un millón de filas en formato tabular. La metabase no puede crear un Excel / CSV
para descargar desde su GUI
si el recuento de filas es superior a 16.000
y la fuente de datos es BigQuery
.
4. Integrado con nuestro servicio de notificación interno que envía correos electrónicos y SMS
: los archivos más pequeños se envían como archivos adjuntos, los archivos más grandes tienen sus rutas de descarga GCS
vinculadas dentro del contenido del correo electrónico.
5. Permite al creador del informe ejecutar trabajos retroactivos simplemente dando esas fechas de inicio y finalización como entrada en el archivo JSON
.
6. El creador de informes no necesita aprender Airflow
.
7. Ahorre tiempo programando un informe nuevo.
8. Despliegue rápido.
9. La estandarización significa que hay una probabilidad extremadamente pequeña de que las cosas no funcionen como se esperaba para el creador, la depuración se volvió fácil.
10. Ventajas listas para usar de usar Airflow
: fácil mantenimiento y administración de todos los trabajos.
Espero que te haya sido de utilidad. Gracias por leer este tutorial.
Añadir comentario