Informatica PowerCenter - dbt output

This page describes the dbt output format for Informatica PowerCenter: how Mappings are converted into dbt projects and Workflows into Snowflake Task graphs that run them. For the concept overview and supported-component matrix, see the Informatica PowerCenter overview. For the alternative output, see Informatica to Snowflake Scripting.

How a Mapping becomes a dbt project

Each Mapping is converted into a standalone dbt project with a three-tier model architecture.

LayerMaterializationPurpose
models/staging/ViewClean, type-safe access to source data referenced in sources.yml. Generated from Source Qualifier, Source Definition, and Flat File Source transformations.
models/intermediate/Ephemeral by defaultTransformation logic from the original Mapping. Generated from Expression, Joiner, Filter, Lookup, and other transformations. Ephemeral models aren’t persisted to the database, but some transformations override that default: a Sorter is materialized as a table so that its own ORDER BY is preserved, and an Update Strategy path can also change the materialization of the models it feeds.
models/marts/Incremental or TableBusiness-ready data models that correspond to Target Definitions. An Update Strategy transformation produces either an incremental model with a merge strategy or a table model, depending on the strategy it expresses.

Each Mapping produces this project structure:

{MappingName}/
├── dbt_project.yml                   # Materialization config and hooks
├── profiles.yml                      # Snowflake connection profile
├── models/
│   ├── sources.yml                   # Source table definitions
│   ├── staging/
│   │   ├── stg_customers.sql
│   │   └── stg_regions.sql
│   ├── intermediate/
│   │   ├── int_expression.sql
│   │   └── int_joiner.sql
│   └── marts/
│       └── customer_dim.sql
└── macros/
    └── *.sql                         # Mapplet, reusable transformation, and unconnected Lookup macros

Important

Before deploying, replace the YOUR_SCHEMA and YOUR_DB placeholders in sources.yml and profiles.yml with your actual Snowflake schema and database names.

Conversion paths

Most Mappings follow the default path: the Mapping becomes a dbt project, and the Session that runs it becomes a Task that calls EXECUTE DBT PROJECT.

One case skips the dbt project. When a Session reads a static flat file and writes it straight to a relational target, with no transformation logic in between, the conversion emits a Direct COPY instead: the Session becomes a Task that runs a COPY INTO statement against the staged file, and no dbt project is generated for that Mapping. Eligibility depends on the shape of the Session and its Mapping, so check the generated output to see which path each Session took. For the generated statements, see Mappings and transformations and Workflows and orchestration.

Data flow components

Each Mapping transformation is converted into a dbt model, a macro, or a project hook. The following components are supported. For a before/after example of each, see Mappings and transformations.

Informatica transformationCategorydbt outputNaming pattern
Source QualifierSourceStaging modelstg_raw__{source_name}
Source DefinitionSourceStaging modelstg_raw__{source_name}
Flat File SourceSourceStaging model with a FILE_FORMAT and stage bindingstg_raw__{source_name}, or no model when the Direct COPY path applies. See Conversion paths.
ExpressionTransformationIntermediate modelint_{transformation_name}
FilterTransformationIntermediate modelint_{transformation_name}
JoinerTransformationIntermediate modelint_{transformation_name}
Lookup (connected)TransformationIntermediate modelint_{transformation_name}
Lookup (unconnected)Transformationdbt macromacros/ulkp_*.sql, not an int_ model
AggregatorTransformationIntermediate modelint_{transformation_name}
RouterTransformationIntermediate model, one per output groupint_{transformation_name}__{group_name}
SorterTransformationTable-materialized intermediate model that carries its own ORDER BYint_{transformation_name}
UnionTransformationIntermediate modelint_{transformation_name}
NormalizerTransformationIntermediate modelint_{transformation_name}
RankTransformationIntermediate modelint_{transformation_name}
Sequence GeneratorTransformationIntermediate modelint_{transformation_name}
Update StrategyTransformationIntermediate model plus an incremental or table martint_{transformation_name}
Java TransformationExternal logicPass-through intermediate model with an EWI or FDM messageint_{transformation_name}. The Java source isn’t applied.
Stored Procedure (connected)External logicIntermediate model that calls a per-row UDF, with an INF0040 messageint_{transformation_name}
Stored Procedure (disconnected)External logicdbt hook in dbt_project.ymlpre-hook or post-hook, not an int_ model
MappletReusedbt macromacros/{mapplet_name}.sql
Reusable Expression transformationReusedbt macromacros/shared_models__*.sql. A reusable Lookup follows its own connected or unconnected path instead.
Target DefinitionDestinationMart model{target_name}
Flat File TargetDestinationMart model with a copy_into_stage post_hook, or a Direct COPY Session{target_name}

Note

Unlisted Mapping transformations generate an EWI code that flags the transformation for manual conversion. For a before/after example of each supported transformation, see Mappings and transformations.

Control flow components

Informatica Workflows define orchestration: which Sessions run, in what order, and with what variable context. A Workflow is converted into a graph of Snowflake Tasks linked by AFTER dependencies, and each Worklet is converted into a stored procedure that the graph calls.

ElementConversion targetNotes
WorkflowTask graphA root Task plus one Task per element, chained with AFTER.
StartRoot Task (SELECT 1)Entry point of the graph, with no AFTER clause.
SessionTask running EXECUTE DBT PROJECT or COPY INTORuns the Session’s Mapping as a dbt project with EXECUTE DBT PROJECT, or runs COPY INTO when the Direct COPY path applies. See Conversion paths.
Session overridesApplied in the dbt projectPre-SQL and post-SQL become model hooks, and a SQL Override replaces the source query.
WorkletStored procedure called with CALLA reusable sub-workflow.
Decision, Assignment, and Email tasksInline scripting in the TaskConditions, variable assignments, and notifications.
Parameter filesLoaded into control_variables at runtime.txt and .xml formats are supported.

For the generated SQL and an example of each element, see Workflows and orchestration.

Session location overrides

A Session can also override where its Mapping reads data: the owner name, the source table name, or just the connection. Those overrides become per-instance dbt variables, and the affected sources are emitted as variable-driven source groups, so each Session instance resolves its own owner and table without changing the shared models. Schema routing is handled by a macro in the generated project. When a Session overrides only the connection, the source keeps the schema and table names of the original definition.

Note

Unlisted Workflow elements (for example, Timer and Command tasks) are kept as a commented stub and marked with an EWI for manual conversion.

Variable management

Informatica variables and parameters are managed through a table-driven system generated in the etl_configuration/ folder. User-defined variables become dbt project variables ({{ var('name') }}) in the models, and a shared control_variables table tracks their values at runtime so orchestration can read and update them.

For the control_variables table, the supporting UDFs and procedures, parameter files, and variable scope, see Variables and parameters.