Pular para o conteúdo principal

Transformadores determinísticos

Visão geral​

O Conversor DDF usa transformadores determinísticos para converter jobs DataStage e fluxos de trabalho Tableau Prep em SQL Snowflake sem exigir LLMs para a lógica central de transformação.

Resumo​

  • 18 classes de transformadores - Convertem metadados de origem em SQL Snowflake
  • 11 transformadores DataStage - Tratam tipos de estágio do IBM DataStage
  • 7 transformadores Tableau/DSX - Tratam tipos de nó do Tableau Prep
  • 3 transformadores híbridos - Predominantemente determinísticos, com auxílio seletivo de LLM para expressões complexas

Categorias de transformadores​

Totalmente determinísticos (15 transformadores)​

Estes transformadores convertem metadados de origem em SQL usando apenas lógica baseada em modelos, sem chamadas a LLM:

DataStage:

  • LookupStageTransformer
  • ModifyStageTransformer
  • JoinStageTransformer
  • AggregatorStageTransformer
  • RemoveDuplicatesTransformer
  • CopyStageTransformer
  • FunnelStageTransformer
  • InputStageTransformer
  • ImportStageTransformer
  • OutputOracleTransformer

Tableau:

  • AggregateTransformer (SuperAggregate)
  • JoinTransformer (SuperJoin)
  • UnionTransformer (SuperUnion)
  • OutputTransformer
  • LoadExcelTransformer
  • LoadSqlProxyTransformer

Transformadores híbridos (3 transformadores)​

Estes transformadores são predominantemente determinísticos, mas usam LLMs seletivamente para expressões complexas:

  • TransformerStageTransformer (DataStage) - Determinístico para repasses simples de colunas e restrições; usa LLM para código de transformação C complexo
  • ContainerTransformer (Tableau) - Determinístico para renomeação, remoção, alteração de tipos e mesclagem de colunas; usa LLM para expressões de filtro e colunas derivadas

Como os transformadores funcionam​

Todos os transformadores herdam da classe base DeterministicTransformer e implementam dois métodos principais:

  1. can_transform() - Retorna True se o transformador puder tratar o estágio/nó informado
  2. transform() - Converte o estágio/nó em SQL e retorna um objeto TransformResult

Resultado da transformação​

Cada transformação retorna um TransformResult contendo:

  • success - Indica se a transformação foi bem-sucedida
  • sql - Consulta SQL gerada
  • schema - Esquema de saída (nomes e tipos das colunas)
  • error - Mensagem de erro se a transformação falhou
  • field_info - Descrição da transformação legível por pessoas

Consulte os transformadores​

Transformadores DataStage​

Documentação de todos os transformadores de estágios DataStage com exemplos reais de entrada/saída.

Transformadores Tableau​

Documentação de todos os transformadores de nós Tableau Prep com exemplos reais de entrada/saída.

Arquitetura​

DeterministicTransformer (Base Class)
├── DataStage Transformers
│ ├── LookupStageTransformer - Multi-table JOINs
│ ├── ModifyStageTransformer - Column renames/filters
│ ├── JoinStageTransformer - SQL JOINs
│ ├── AggregatorStageTransformer - GROUP BY
│ ├── RemoveDuplicatesTransformer - DISTINCT/ROW_NUMBER()
│ ├── CopyStageTransformer - SELECT from datasets/stages
│ ├── FunnelStageTransformer - UNION ALL
│ ├── InputStageTransformer - Oracle SQL conversion
│ ├── ImportStageTransformer - File reads to tables
│ ├── OutputOracleTransformer - SELECT passthrough
│ └── TransformerStageTransformer - Column derivations (hybrid)
└── Tableau Transformers
├── AggregateTransformer - GROUP BY
├── JoinTransformer - SQL JOINs (including anti-joins)
├── UnionTransformer - UNION ALL
├── OutputTransformer - SELECT passthrough
├── LoadExcelTransformer - Excel to table mapping
├── LoadSqlProxyTransformer - Database table reads
└── ContainerTransformer - Column operations (hybrid)

Próximos passos​