Referência YAML de workflow
Referência para o formato YAML de exportação/importação de workflow, incluindo campos de nós, arestas e diferenças de versão.
Esta página documenta o formato YAML que Transformation Builder usa para exportar e importar workflows. Use esta referência quando precisar compartilhar workflows entre ambientes, armazená-los em controle de versão ou integrar com sistemas de execução externos.
O formato possui duas versões. Versão 2 é o formato atual que o Transformation Builder produz na exportação. Ele organiza os nós como um array plano em ordem topológica (cte_nodes) com um edges array separado para conexões. Versão 1 é um formato mais antigo que usa uma chave nodes com depends_on referências embutidas para conexões. O Transformation Builder pode importar ambas as versões, mas sempre exporta a versão 2.
Exportar
Gera um arquivo YAML no formato versão 2. Você pode acionar uma exportação a partir do Exportar botão na barra de ferramentas do Transformation Builder, ou através da API. O arquivo exportado pode ser armazenado em um repositório, compartilhado com colegas ou passado para um runtime externo para execução.
Como a exportação é formada
O gerador de exportação constrói o arquivo YAML em quatro etapas:
Ordenação topológica dos nós. O grafo de nós e arestas é ordenado de modo que os nós de origem venham primeiro, seguidos pelos nós de transformação na ordem de dependência, e finalmente o nó Output. Se o grafo contiver um ciclo, uma ordem alternativa (pela posição na lista de nós) é usada.
Lista de fontes por nó. Para cada nó, o gerador coleta uma lista ordenada de IDs de nós predecessores a partir das arestas onde
targetiguala-se ao ID do nó atual. Por exemplo, um nó SQL Transform com duas entradas terá umasourceslista contendo exatamente dois IDs na ordem correta.array cte_nodes. Cada nó é gravado como um registro no
cte_nodesarray, em ordem topológica. Consulte estrutura cte_nodes abaixo para detalhes dos campos.Montagem YAML no nível superior. O gerador combina o
cte_nodesarray com a lista de edges, metadados do workflow e campos opcionais (viewport, schedule) no documento final.
Chaves de nível superior
A raiz de um arquivo YAML versão 2 contém as seguintes chaves:
version
Sempre
Número da versão do formato. Sempre 2 para as exportações atuais.
name
Sempre
Nome do workflow.
description
Sempre
Descrição do workflow. Pode ser uma string vazia.
output_node_id
Quando um nó Output existe
O ID do nó Output no workflow.
viewport
Quando definido no workflow
Posição do Canvas e nível de zoom: { x, y, zoom }. Usado para restaurar o layout visual na importação.
schedule
Quando o agendamento está habilitado
Agenda de execução: { cron, timezone }. O cron padrão é 0 0 * * *, o fuso horário padrão é UTC.
estrutura cte_nodes
Cada entrada no cte_nodes array representa um nó no grafo do workflow.
id
Identificador único do nó (string).
type
Tipo do nó. Um dos: telematics, business, filter, resample, sql, arithmetic, custom, output.
label
Nome exibido mostrado no canvas. Usa o ID do nó como substituto se não for definido.
description
Descrição do nó. Pode ser uma string vazia.
position
Coordenadas do Canvas como { x, y }.
sources
Lista ordenada de IDs de nós predecessores, derivada das arestas do grafo. Vazia para nós de origem.
params
Parâmetros de configuração do nó. Os campos específicos dependem do tipo de nó. Consulte a Transformation Builder documentação para detalhes de parâmetros por tipo de nó.
width, height
Opcional. Dimensões no Canvas para o nó, incluídas somente quando definidas explicitamente.
Limpeza de Params. O available_tables e available_columns campos são removidos de params durante a exportação. Esses campos são populados em tempo de execução quando o Builder se conecta ao banco de dados e não devem ser armazenados no YAML.
Tipo SQL com múltiplas fontes. Quando um nó do tipo sql possui duas ou mais fontes, a exportação adiciona um join_spec campo ao registro. Este é um array com um elemento contendo a configuração do join:
O type o valor é retirado do parâmetro join_type do nó (convertido para minúsculas), e on_condition é retirado de join_condition. Para nós SQL com duas fontes, a informação do join aparece em ambos params e join_spec.
estrutura edges
O edges array define conexões entre nós no grafo do workflow.
Cada aresta é um objeto com dois campos:
source
O ID do nó onde a aresta se origina.
target
O ID do nó onde a aresta termina.
Os IDs das arestas na interface do Builder não são preservados na exportação. Na importação, novos IDs de arestas são gerados automaticamente.
Importar
Detecção de versão
O Builder determina a versão do formato YAML usando a seguinte lógica:
Se a raiz contiver
version: 2ou a chavecte_nodes, o arquivo é processado como versão 2.Caso contrário, versão 1 é esperada.
Importação da versão 2
O Builder itera o cte_nodes array em ordem. Para cada registro:
O
idetypesão lidos. O tipo é convertido para minúsculas. Nós com tipopythonsão ignorados sem gerar erro.Os parâmetros são lidos a partir da chave
params(ouconfigcomo alternativa). Para nós do tiposql-, se um campojoin_specestiver presente no registro, ele é atribuído à configuração de join do nó.O
edgeso array é analisado em pares fonte-destino, e novos IDs de arestas são gerados.O
viewporteschedulecampos são preservados se presentes no YAML.
Importação da versão 1 (compatibilidade retroativa)
Arquivos da versão 1 usam uma chave nodes (array ou dicionário) e opcionalmente um edges array ou depends_on campos dentro de cada nó.
O Builder processa arquivos da versão 1 da seguinte forma:
Os tipos de nós suportados são os mesmos da versão 2:
telematics,business,filter,resample,sql,arithmetic,custom,output.As conexões entre nós podem ser definidas de duas maneiras: um
edgesarray de nível superior, ou umadepends_onlista dentro de cada nó.O
inputseoutputscampos em cada nó são normalizados para objetos com{ name, type }estrutura.Se as arestas incluírem
sourceHandleoutargetHandleidentificadores de porta, a importação ajusta as portas dos nós em conformidade para exibição correta na interface do Builder.
Template da estrutura YAML
O seguinte template mostra a estrutura completa de um arquivo YAML versão 2 com anotações:
Exemplo
O exemplo a seguir mostra um workflow completo versão 2 que lê dados de sensores telemáticos, faz join com descrições de sensores do esquema business, aplica uma transformação aritmética para converter o tipo de uma coluna e grava os resultados em uma tabela de saída.
Este workflow realiza as seguintes etapas:
node-telematics-1 lê
device_id,device_time, evaluecolunas dainputstabela noraw_telematics_dataschema.node-business-1 lê
sensor_id,device_id, esensor_labeldosensor_descriptiontabela noraw_business_dataschema.node-sql-1 faz o join das duas fontes em
device_idusando umLEFT JOIN, selecionando todas as colunas telemáticas mais osensor_labeldo recurso business.node-arithmetic-1 adiciona uma coluna calculada
value_numconvertendo o textovaluecoluna para um tipo numérico.node-output-1 configura o resultado para ser gravado na
enriched_vehicle_metricstabela comappendmodo, usandodevice_idedevice_timecomo chave primária.
A exportação não inclui available_tables ou available_columns em params. Esses campos são populados dinamicamente quando o Builder se conecta ao banco de dados. Para nós SQL com duas fontes, as informações de join aparecem em ambos params e join_spec.
Próximos passos
Transformation Builder: Saiba como projetar workflows usando a interface visual.
Camada Transformation: Entenda como os dados processados são organizados em schemas e como consultá-los.
Atualizado
Isto foi útil?