Referencia YAML de flujo de trabajo
Referencia del formato YAML de exportación/importación de flujos de trabajo, incluidos campos de nodos, aristas y diferencias entre versiones.
Esta página documenta el formato YAML que Transformation Builder utiliza para exportar e importar flujos de trabajo. Use esta referencia cuando necesite compartir flujos de trabajo entre entornos, almacenarlos en control de versiones o integrarlos con sistemas de ejecución externos.
El formato tiene dos versiones. Versión 2 es el formato actual que Transformation Builder genera al exportar. Organiza los nodos como una matriz plana en orden topológico (cte_nodes) con una edges matriz separada para las conexiones. Versión 1 es un formato anterior que utiliza una nodes clave con depends_on referencias en línea para las conexiones. Transformation Builder puede importar ambas versiones, pero siempre exporta la versión 2.
Exportar
Genera un archivo YAML en el formato de la versión 2. Puede iniciar una exportación desde el Exportar botón en la barra de herramientas de Transformation Builder, o a través de la API. El archivo exportado puede almacenarse en un repositorio, compartirse con colegas o pasarse a un tiempo de ejecución externo para su ejecución.
Cómo se forma la exportación
El generador de exportación construye el archivo YAML a través de cuatro pasos:
Orden topológico de los nodos. El grafo de nodos y aristas se ordena de modo que los nodos fuente vengan primero, seguidos por los nodos de transformación en orden de dependencia, y finalmente el nodo Output. Si el grafo contiene un ciclo, se usa un orden alternativo (por posición en la lista de nodos).
Lista de fuentes por nodo. Para cada nodo, el generador recopila una lista ordenada de IDs de nodos predecesores a partir de las aristas donde
targetiguala el ID del nodo actual. Por ejemplo, un nodo SQL Transform con dos entradas tendrá unasourceslista que contiene exactamente dos IDs en el orden correcto.matriz cte_nodes. Cada nodo se escribe como un registro en la
cte_nodesmatriz, en orden topológico. Vea estructura cte_nodes a continuación para los detalles de los campos.Ensamblado YAML de nivel superior. El generador combina la
cte_nodesmatriz con la lista de edges, los metadatos del flujo de trabajo y campos opcionales (viewport, schedule) en el documento final.
Claves de nivel superior
La raíz de un archivo YAML de la versión 2 contiene las siguientes claves:
version
Siempre
Número de versión del formato. Siempre 2 para las exportaciones actuales.
name
Siempre
Nombre del flujo de trabajo.
description
Siempre
Descripción del flujo de trabajo. Puede ser una cadena vacía.
output_node_id
Cuando existe un nodo Output
El ID del nodo Output en el flujo de trabajo.
viewport
Cuando está establecido en el flujo de trabajo
Posición del lienzo y nivel de zoom: { x, y, zoom }. Usado para restaurar la disposición visual al importar.
schedule
Cuando el schedule está habilitado
Horario de ejecución: { cron, timezone }. El cron predeterminado es 0 0 * * *, la zona horaria predeterminada es UTC.
estructura cte_nodes
Cada entrada en la cte_nodes matriz representa un nodo en el grafo del flujo de trabajo.
id
Identificador único del nodo (cadena).
type
Tipo de nodo. Uno de: telematics, business, filter, resample, sql, arithmetic, custom, output.
label
Nombre para mostrar que se muestra en el lienzo. Si no está establecido, se usa el ID del nodo.
description
Descripción del nodo. Puede ser una cadena vacía.
position
Coordenadas del lienzo como { x, y }.
sources
Lista ordenada de IDs de nodos predecesores, derivada de las aristas del grafo. Vacía para nodos fuente.
params
Parámetros de configuración del nodo. Los campos específicos dependen del tipo de nodo. Vea la Transformation Builder documentación para detalles de parámetros por tipo de nodo.
width, height
Opcional. Dimensiones en el lienzo del nodo, incluidas solo cuando se establecen explícitamente.
Limpieza de Params. El available_tables y available_columns campos se eliminan de params durante la exportación. Estos campos se completan en tiempo de ejecución cuando el Builder se conecta a la base de datos y no deben almacenarse en YAML.
Tipo SQL con múltiples fuentes. Cuando un nodo de tipo sql tiene dos o más fuentes, la exportación añade un join_spec campo al registro. Esto es una matriz con un elemento que contiene la configuración del join:
El type el valor se toma del parámetro join_type (convertido a minúsculas), y on_condition se toma de join_condition. Para nodos SQL con dos fuentes, la información de join aparece en ambas params y join_spec.
estructura edges
El edges la matriz define las conexiones entre nodos en el grafo del flujo de trabajo.
Cada edge es un objeto con dos campos:
source
El ID del nodo donde se origina la arista.
target
El ID del nodo donde termina la arista.
Los IDs de las aristas desde la interfaz del Builder no se conservan en la exportación. En la importación, se generan automáticamente nuevos IDs para las aristas.
Importar
Detección de versión
El Builder determina la versión del formato YAML usando la siguiente lógica:
Si la raíz contiene
version: 2o la clavecte_nodes, el archivo se procesa como versión 2.De lo contrario, versión 1 se espera.
Importación versión 2
El Builder itera la cte_nodes matriz en orden. Para cada registro:
El
idytypese leen. El tipo se convierte a minúsculas. Los nodos con tipopythonse omiten sin generar un error.Los parámetros se leen desde la
paramsclave (oconfigcomo respaldo). Para nodos de tiposql-type, si un campojoin_specestá presente en el registro, se asigna a la configuración de join del nodo.El
edgesla matriz se analiza en pares fuente-destino, y se generan nuevos IDs para las aristas.El
viewportyschedulelos campos se preservan si están presentes en el YAML.
Importación versión 1 (compatibilidad hacia atrás)
Los archivos de la versión 1 usan una nodes clave (matriz o diccionario) y opcionalmente un edges matriz o depends_on campos dentro de cada nodo.
El Builder procesa los archivos de la versión 1 de la siguiente manera:
Los tipos de nodo compatibles son los mismos que en la versión 2:
telematics,business,filter,resample,sql,arithmetic,custom,output.Las conexiones entre nodos pueden definirse de dos maneras: un
edgesmatriz de nivel superior, o unadepends_onlista dentro de cada nodo.El
inputsyoutputslos campos en cada nodo se normalizan a objetos con{ name, type }estructura.Si las aristas incluyen identificadores de puerto
sourceHandleotargetHandle, la importación ajusta los puertos de los nodos en consecuencia para su correcta visualización en la interfaz del Builder.
Plantilla de estructura YAML
La siguiente plantilla muestra la estructura completa de un archivo YAML de la versión 2 con anotaciones:
Ejemplo
El siguiente ejemplo muestra un flujo de trabajo completo de la versión 2 que lee datos de sensores telemáticos, los une con descripciones de sensores del esquema business, aplica una transformación aritmética para convertir el tipo de una columna y escribe los resultados en una tabla de salida.
Este flujo de trabajo realiza los siguientes pasos:
node-telematics-1 lee
device_id,device_timeyvaluecolumnas desde lainputstabla en elraw_telematics_dataesquema.node-business-1 lee
sensor_id,device_idysensor_labeldesde elsensor_descriptiontabla en elraw_business_dataesquema.node-sql-1 une las dos fuentes en
device_idusando unLEFT JOIN, seleccionando todas las columnas telemáticas más elsensor_labeldesde la fuente business.node-arithmetic-1 agrega una columna calculada
value_numal convertir el textovaluede la columna a un tipo numérico.node-output-1 configura que el resultado se escriba en la
enriched_vehicle_metricstabla conappendmodo, usandodevice_idydevice_timecomo clave primaria.
La exportación no incluye available_tables o available_columns en params. Estos campos se completan dinámicamente cuando el Builder se conecta a la base de datos. Para nodos SQL con dos fuentes, la información de join aparece en ambas params y join_spec.
Próximos pasos
Transformation Builder: Aprenda cómo diseñar flujos de trabajo usando la interfaz visual.
Capa de transformación: Entienda cómo se organiza los datos procesados en esquemas y cómo consultarlos.
Última actualización
¿Te fue útil?