informatica-to-pyspark-migration

Convert Informatica PowerCenter and IDMC mappings into PySpark on Databricks.

1|2|Updated Aug 10, 2026
One-click install
npx skills add https://github.com/TRRaveendra/AI-Agents-Databricks --skill informatica-to-pyspark-migration-trraveendra
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: informatica-to-pyspark-migration
Source: https://github.com/TRRaveendra/AI-Agents-Databricks/tree/main/ai-agent-skills/informatica-pyspark-migration
Command: npx skills add https://github.com/TRRaveendra/AI-Agents-Databricks --skill informatica-to-pyspark-migration-trraveendra

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Migrating off Informatica PowerCenter or IDMC to Databricks is risky because naive translations silently change null handling, join direction, decimal precision, and surrogate key semantics, producing reconciliation failures months after cutover. This Skill converts mappings, mapplets, sessions, and workflows into semantically faithful PySpark with explicit risk flags and a validation plan. ## Core Features & Use Cases - Transformation-level conversion: Maps every Informatica component (Source Qualifier, Expression, Lookup, Aggregator, Router, Rank, Normalizer, Sequence Generator, Update Strategy, Mapplet) to its correct PySpark or Delta Lake equivalent, preserving edge-case semantics like DECODE null matching and master/detail join direction. - Orchestration migration: Converts Sessions, Workflows, and Worklets into Lakeflow Jobs or Declarative Pipelines, including link conditions, parameter files, task values, and scheduling. - Validation and cutover harness: Produces a four-gate reconciliation procedure (static review, synthetic equivalence, differential run, parallel run) with a row-level comparison harness. - Use Case: Upload a PowerCenter mapping XML export and receive a component inventory, a run_<mapping>(spark, params, table_map, dry_run) PySpark function with # RISK: annotations, plus the Lakeflow Job definition and reconciliation plan. ## Quick Start Upload your PowerCenter XML export or IDMC asset JSON and ask to convert the mapping to PySpark on Databricks with a reconciliation plan.

Frequently Asked Questions about informatica-to-pyspark-migration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I convert an Informatica PowerCenter mapping to PySpark?

Provide the PowerCenter XML export and the Skill parses it into a component inventory, resolves the dataflow, and emits one pure Python function per mapping with the signature run_<mapping>(spark, params, table_map, dry_run). Each transformation is annotated with its original Informatica instance name for review.

How to migrate Informatica workflows and sessions to Databricks?

Sessions become Lakeflow Job tasks and workflows become multi-task jobs with depends_on edges, or Declarative Pipelines for straight table-build chains. Link conditions map to run_if or condition_task, parameter files split into job parameters and a table_map, and file-watch events become file arrival triggers.

Does the conversion handle Informatica unconnected lookups and Sequence Generators?

Yes, but both are flagged as high risk rather than silently approximated. Unconnected lookups become joins after verifying key uniqueness, and Sequence Generators map to Delta IDENTITY columns, window offsets, or a control-table allocator depending on whether contiguous values are required.

What Informatica components cannot be converted automatically?

Stored Procedure, SQL, Java, Custom, and External Procedure transformations execute code outside the mapping export, so their source must be obtained and ported by hand. VSAM/COBOL Normalizers and dynamic lookup caches also require deliberate design decisions rather than direct translation.

How do I validate that converted PySpark matches the original Informatica output?

The Skill produces a four-gate procedure: static review, synthetic-data equivalence tests, a differential run on production snapshots, and a parallel run across a business cycle. It includes a reconciliation harness using null-safe joins, numeric tolerance, and duplicate-key checks.

Why does my converted Spark code produce different values than PowerCenter?

Common causes are DECODE matching NULL to NULL, the || operator treating NULL as empty string, DATE_DIFF returning fractional values, and the session's Enable High Precision flag controlling Decimal versus Double behavior. The expression function map documents each of these differences with the correct Spark equivalent.