Integrar Datahub en JIRA: una guía práctica que utiliza acciones de Datahub

Repasaremos cómo integrar los eventos de Datahub en los flujos de trabajo JIRA utilizando el marco de acciones de Datahub. Antes de sumergirse, daremos un poco de antecedentes sobre lo que es Datahub y cómo usar su marco de acciones para una gestión de datos efectiva. Finalmente, pasaremos por un ejemplo específico de escribir una acción personalizada para crear un boleto JIRA al crear un producto de datos en Datahub.

Con suerte, este artículo puede servir como una plantilla general sobre cómo integrar los eventos de interés de Datahub en sus procesos JIRA específicos.

Contenido

¿Qué es Datahub?

Datahub es un catálogo de datos que admite el descubrimiento de datos, el gobierno y la gestión de metadatos. Proporciona características que permiten a las organizaciones implementar su propia malla de datos, un método descentralizado de gestión de datos que capacita a los dominios comerciales individuales para tomar la iniciativa sobre su propia calidad/requisitos de datos.

Una plataforma de metadatos como Datahub es increíblemente valiosa por varias razones:

Descubrimiento y análisis de datos entre dominios: los consumidores de datos (ex: analistas de datos/científicos) pueden usar Datahub para explorar conjuntos de datos relevantes que pueden usar para sus análisis. Para ayudar a los datos a los consumidores a dar sentido a los datos en varios dominios, cada dominio necesita enriquecer sus activos de datos con suficiente contexto comercial. – Datahub permite a las organizaciones establecer una sola fuente de verdad para sus datos, implementar una fuerte seguridad al hacer cumplir las políticas de acceso en los activos de datos y garantizar el cumplimiento regulatorio al respaldar la clasificación de datos.

¿Cuáles son las acciones de Datahub?

En una organización madura de datos, los metadatos siempre están evolucionando. Por lo tanto, es importante que las organizaciones reaccionen a los cambios de metadatos en tiempo real.

Datahub proporciona el marco de acciones para ayudar a integrar los cambios de metadatos que ocurren en Datahub en una arquitectura basada en eventos más grande. El marco le permite especificar la configuración para activar ciertas acciones dependiendo de los eventos que ocurran en Datahub. Los casos de uso común pueden incluir notificar a las partes relevantes sobre los cambios en un conjunto de datos, integrando los cambios de metadatos en flujos de trabajo organizacionales, etc.

Uno de los casos de uso comunes del marco de acciones de Datahub es integrar los cambios de metadatos en las notificaciones específicas de la organización. Datahub proporciona soporte nativo para esto en ciertas plataformas de terceros, como Slack y equipos.

En este artículo, veremos cómo usar el marco de acciones para integrar los cambios de metadatos de Datahub en los flujos de trabajo JIRA. Específicamente, implementaremos una acción personalizada que crea un boleto JIRA al crear un nuevo producto de datos. Sin embargo, la configuración y el código aquí pueden modificarse fácilmente para activar los flujos de trabajo JIRA para otros eventos de Datahub.

Desarrollar una acción JIRA personalizada

Cada acción de Datahub se ejecuta en una tubería separada, que es un proceso de ejecución continuo que repite los siguientes pasos: datos de eventos de votación de fuentes relevantes, aplica la transformación/filtrado a esos eventos y ejecuta la acción deseada.

Podemos definir la configuración de nuestra tubería de acción a través de YAML. Podemos definir la lógica para ejecutar para nuestra acción personalizada extendiendo la clase de acción base de Datahub.

Caminemos por ambos pasos.

Configuración YAML

Nuestra configuración YAML requiere especificar 4 aspectos clave:

Nombre de la tubería de acción (debe ser único y estático) Configuraciones de fuente de eventos Transformación + Configuración de filtro Configuración de acción

Hay dos posibles fuentes de eventos para acciones de Datahub:

Kafka es la fuente de evento predeterminada del marco. A menos que esté en una instancia de Datahub Cloud anterior V0.3.7, procesará datos de eventos de Kakfa.

La fuente del evento Kafka emite dos tipos de eventos:

Dado que estamos escuchando la creación de productos de datos, y la estructura de datos del evento de cambio de entidad es más simple para trabajar, filtraremos los eventos de cambio de entidad.

Así es como se verá nuestro archivo YAML (jira_action.yaml).

# jira_action.yaml # 1. Nombre de la tubería de acción # Esto puede ser lo que desee siempre que sea único. Nombre: “Jira_Action” # 2. Fuente del evento: dónde obtener datos del evento. # Kafka es la fuente de evento predeterminada (https://docs.datahub.com/docs/acciones/sources/kafka-event-source). Fuente: Tipo: “Kafka” Connection: Connection: Bootstrap: $ {kafka_bootstrap_server: -localhost: 9092} schema_registry_url: $ {schema_registry_url: -http: // localhost: 8081} # 3. Filtar-Filtrar eventos que alcanzan la acción # We Will escuche para el producto de datos Crear eventos. # Para obtener más información sobre otros eventos: https://docs.datahub.com/docs/accions/events/entity-change-event#entity-create-event filtro: event_type: “entitychangeevent_v1” Evento: entityType: “dataProduct” Categoría: “Lifecycle” Operation: “Crear”. # Aquí, haremos referencia a nuestro archivo de acción personalizado (jira_action.py). Acción: Tipo: “Jira_Action: Jiraaction” Configuración: # Configuras específicas de acción (MAP)

Definición de nuestra clase de acción personalizada

A continuación, necesitamos implementar nuestra lógica para crear un boleto JIRA en una clase de acción personalizada, que definiremos en un archivo jira_action.py separado.

Nuestra clase de acción extenderá la clase de acción base de Datahub, que consiste en anular los siguientes métodos:

create () – Invocado al instancias de la acción. Si especificó alguna configuración específica de acción en su archivo YAML, este método pasará esa configuración como un diccionario a todas las instancias de esta acción. Act () – Invocado cuando se recibe un evento. Este método contendrá la lógica central de nuestra acción, es decir, creando el boleto JIRA. Close () – Invocado cuando nuestra tubería de acción se apague.

Dado que no especificamos ninguna configuración específica de acción, y no tenemos que preocuparnos por ninguna limpieza especial una vez que nuestra acción finalice, nuestro trabajo consistirá principalmente en acto primordial ().

Usaremos Python Jira, un envoltorio de Python alrededor de la API JIRA REST, para interactuar programáticamente con nuestra instancia de JIRA. Para obtener más información/ejemplos sobre cómo interactuar programáticamente con JIRA, consulte los documentos.

Así es como se verá nuestro código.

# jira_action.py de datahub_actions.action.action Import Action de datahub_acciones.event.event_envelope Import EventEnvelope de datahub_acciones.event.event Import Evento de datahub_acciones.pipeline.pipeline_context Import PipeLInecontext de Jira import CTX: PipelineContext) -> “Acción”: “” “Comparte cualquier configuración específica de la acción en todas las instancias de la acción.” “” Return CLS (ctx, config_dict) def __init __ (self, ctx: pipeLineContex “” “Cree un boleto JIRA cuando se cree un producto de datos en Datahub con su enlace Datahub. Usaremos la API de Python JIRA para interactuar programáticamente con jira (https://jira.readthedocs.io/index.html).” “” “Event_Object = Event.event entity_urn_object.entityurn # Extract # Extract Datahub Linkub para Datahub para datos Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para datos Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub para Datahub. “http: // localhost: 9002/” # Reemplazar con el enlace a su instancia de Datahub data_product_link = f “{dataHub_domain} {entity_urn}” # autenticate en su instancia JIRA (https://jira.readtheDocs.io/Esampples.html#Authentication). jira = jira (token_auth = “api token”, # jira autohostada (eg servidor): el token de pat [Not recommended]
# auth = (“admin”, “admin”), # una tupla de nombre de usuario/contraseña para autores de cookie [Not recommended]
) # Crear problema JIRA (https://jira.readthedocs.io/examples.html#issues). # Para obtener más información sobre los atributos que puede especificar en un problema de JIRA, # Consulte la clase de emisión (https://github.com/pycontribs/jira/blob/main/jira/resources.py) emits_dict = {‘Proyecto’: {}, # Jira Proyecto para crear un problema en Forma dictada (Ej: {‘Id’: 123}: ‘Summary’: ‘Summary’: ‘Summary’: ‘Summary. Producto ‘,’ Descripción ‘: F’Data Enlace del producto: {data_product_link}’, ‘issuetype’: {}, # define el tipo de problema en el formulario dict (ex: {‘name’: ‘bug’}) ‘Reporter’: ”, ‘asignado’: ”} jira.create_sise (campos = ninter_dict) def Close (Self) – – -“:”: “” Jira. Dentro de la acción.

Aunque la configuración y el código aquí es específico para los eventos de creación de productos de datos, estos pueden modificarse para integrar otros eventos de Datahub en flujos de trabajo JIRA, como agregar/eliminar etiquetas, términos, dominios, propietarios, etc.

Puede encontrar la lista de diferentes eventos de cambio de entidad aquí. Escuchar estos eventos implicaría cambiar la configuración del filtro en nuestro YAML a los valores de campo del evento de cambio de entidad específico.

Por ejemplo, para crear un boleto JIRA para un evento de etiqueta Agregar en un conjunto de datos, actualizaríamos nuestra configuración de filtro en nuestro YAML de la siguiente manera:

Filtro: Event_Type: “EntityChangeEvent_V1” Evento: EntityType: Categoría “DataSet”: “Etiqueta” Operación: “Agregar”

Ejecutando nuestra acción

Ahora que hemos creado nuestra configuración e implementación de acción, podemos ejecutar esta acción colocando estos dos archivos (jira_action.yaml y jira_action.py) en el mismo entorno de tiempo de ejecución de Python que nuestra instancia de Datahub.

Luego, podemos ejecutar nuestra acción a través de CLI usando el siguiente comando:

Acciones Datahub -C Jira_Action.yaml

Para obtener más información sobre el desarrollo/ejecución de una acción personalizada, consulte los documentos.

Conclusión

¡Gracias por leer! Para recapitular brevemente sobre lo que hablamos:

Datahub es un catálogo de datos que facilita el descubrimiento de datos eficiente, la gestión y la gobernanza. Datahub proporciona su propio marco de acciones para integrar los cambios de metadatos en los flujos de trabajo organizacionales en tiempo real. Usando el marco, podemos escribir nuestra propia acción para integrar los eventos de Datahub en los flujos de trabajo JIRA simplemente definiendo la tubería de acción en YAML y la lógica de implementación en una clase de Python personalizada.

Si tiene otras ideas/experiencias con el uso de acciones de Datahub para implementar la gobernanza de datos en tiempo real, ¡me encantaría escucharla en los comentarios!

Fuentes

Acciones de Datahub:

Python Jira: