Deterministic Transformers
Overview
The Conversor DDF uses deterministic transformers to convert DataStage jobs and Tableau Prep workflows to Snowflake SQL without requiring LLMs for core transformation logic.
Summary
- 18 Transformer Classes - Convert source metadata to Snowflake SQL
- 11 DataStage Transformers - Handle IBM DataStage stage types
- 7 Tableau/DSX Transformers - Handle Tableau Prep node types
- 3 Hybrid Transformers - Mostly deterministic with selective LLM assistance for complex expressions
Transformer Categories
Fully Deterministic (15 transformers)
These transformers convert source metadata to SQL using only template-based logic, without any LLM calls:
DataStage:
- LookupStageTransformer
- ModifyStageTransformer
- JoinStageTransformer
- AggregatorStageTransformer
- RemoveDuplicatesTransformer
- CopyStageTransformer
- FunnelStageTransformer
- InputStageTransformer
- ImportStageTransformer
- OutputOracleTransformer
Tableau:
- AggregateTransformer (SuperAggregate)
- JoinTransformer (SuperJoin)
- UnionTransformer (SuperUnion)
- OutputTransformer
- LoadExcelTransformer
- LoadSqlProxyTransformer
Hybrid Transformers (3 transformers)
These transformers are mostly deterministic but use LLMs selectively for complex expressions:
- TransformerStageTransformer (DataStage) - Deterministic for simple column passthroughs and constraints; uses LLM for complex C transformation code
- ContainerTransformer (Tableau) - Deterministic for column renames, removals, type changes, and merges; uses LLM for filter expressions and derived columns
How Transformers Work
All transformers inherit from DeterministicTransformer base class and implement two key methods:
can_transform()- ReturnsTrueif the transformer can handle the given stage/nodetransform()- Converts the stage/node to SQL and returns aTransformResultobject
Transform Result
Each transformation returns a TransformResult containing:
success- Whether transformation succeededsql- Generated SQL queryschema- Output schema (column names and types)error- Error message if transformation failedfield_info- Human-readable description of transformation
Browse Transformers
DataStage Transformers
Documentation for all DataStage stage transformers with real input/output examples.
Tableau Transformers
Documentation for all Tableau Prep node transformers with real input/output examples.
Architecture
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)
Next Steps
- Explore DataStage Transformers for detailed documentation
- Explore Tableau Transformers for detailed documentation
- See How It Works for overall conversion architecture