SnowConvert AI - Informatica PowerCenter - Snowflake Scripting mappings and transformations¶
This page describes how SnowConvert AI converts an Informatica PowerCenter Mapping to a Snowflake stored procedure in the Snowflake Scripting output format. For the dbt output format, see dbt mappings and transformations. For the concept map and the supported-component matrix, see the Informatica PowerCenter overview.
Warning
The Snowflake Scripting output format is in active development. Only the Source, Source Qualifier, Expression, and Target transformations are converted in this format today. Other transformations produce a placeholder marked with an EWI code, as shown in Unsupported transformations. For production migrations, use the generally available dbt output format.
The mapping procedure¶
Each Mapping becomes one stored procedure named public.m_<Mapping>. The procedure takes a single scope parameter, returns VARCHAR, and runs as the caller. The data flow becomes the body, wrapped in a BEGIN ... END block:
SnowConvert AI builds the body in data-flow order:
- If the Mapping references runtime variables, a
LETdeclaration for each one reads its value withGetControlVariableUDFand thescopeparameter. See Variables and parameters. - Each Source Qualifier becomes a
CREATE OR REPLACE TEMPORARY TABLEstatement. - Each Expression becomes a common table expression (CTE), or a temporary table when its result feeds more than one downstream transformation.
- The Target becomes the final
INSERTstatement, which carries the upstream CTEs inside its source query.
The scope parameter is forwarded from the calling Task so the procedure resolves the same variable values the Workflow set at runtime. See Workflows and orchestration.
Source and Source Qualifier¶
A Source Definition emits no SQL of its own: it supplies the table metadata (database, schema, and table name) that the Source Qualifier reads. The Source Qualifier becomes a temporary table that selects the connected columns from the source table:
Informatica (m_SimpleMapping):
Snowflake:
The temporary table is named tmp_sq_<name> after the Source Qualifier. When SnowConvert AI cannot resolve the source connection, it writes the YOUR_DB and YOUR_SCHEMA placeholders into the qualified table name.
Important
Replace the YOUR_DB and YOUR_SCHEMA placeholders with your actual Snowflake database and schema before you run the procedure. Informatica does not export connection definitions, so SnowConvert AI cannot fill them automatically.
Expression¶
An Expression transformation becomes a CTE whose SELECT list carries each output port. A passthrough port appears as col AS col, and a computed port carries its translated formula. Informatica functions and operators convert to their Snowflake equivalents; for the full list, see Expression functions.
Informatica (m_SimpleMapping):
Snowflake:
When an Expression feeds more than one downstream transformation, SnowConvert AI materializes it as a CREATE OR REPLACE TEMPORARY TABLE tmp_cte_<name> instead of a CTE, so the result is computed once and reused.
Target¶
The Target becomes the procedure’s final statement: an INSERT into the target table whose source query carries the upstream CTEs. The upstream data flow is aliased as sd:
Informatica (m_SimpleMapping):
Snowflake:
The CTEs are nested inside the INSERT rather than placed before it, because Snowflake Scripting does not accept a leading WITH clause as a statement inside a BEGIN ... END block.
A complete example¶
The following Mapping reads a source table, passes the columns through an Expression, and writes them to a target.
Informatica (m_SimpleMapping):
Snowflake:
The Workflow’s Task calls this procedure and forwards the scope:
Unsupported transformations¶
When a Mapping uses a transformation that the Snowflake Scripting format does not yet convert, SnowConvert AI keeps the data flow connected by emitting a placeholder CTE. The placeholder selects NULL for each output port, includes the original transformation definition as comments, and is marked with SSC-EWI-INF0001:
Informatica (m_FilterMapping):
Snowflake:
Downstream transformations still reference this CTE by name, so the rest of the procedure is generated normally. Convert the flagged transformation manually, or generate the Mapping in the dbt output format, which supports it today.