<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Migration |</title><link>https://ellipsys-bi.com/en/tags/migration/</link><atom:link href="https://ellipsys-bi.com/en/tags/migration/index.xml" rel="self" type="application/rss+xml"/><description>Migration</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-US</language><lastBuildDate>Thu, 02 Jul 2026 00:00:00 +0000</lastBuildDate><image><url>https://ellipsys-bi.com/media/logo.svg</url><title>Migration</title><link>https://ellipsys-bi.com/en/tags/migration/</link></image><item><title>DataViz Migration - migrating from Cognos to Power BI</title><link>https://ellipsys-bi.com/en/ressources/migration-dataviz/migration-cognos-vers-power-bi/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate><guid>https://ellipsys-bi.com/en/ressources/migration-dataviz/migration-cognos-vers-power-bi/</guid><description>&lt;p&gt;IBM Cognos Analytics platforms typically hold several years&amp;rsquo; worth of business modeling: Frameworks, hierarchies, calculations, dimensions, measures, variables, and reports.&lt;/p&gt;
&lt;p&gt;&lt;strong style="color:#C00000;"&gt;{openAudit}&lt;/strong&gt; analyzes Cognos Frameworks, reports, and usage logs to reconstruct the dependencies between data sources, business objects, and reporting outputs.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Key point:&lt;/strong&gt; in most Cognos estates, the value lies more in the Frameworks and business rules than in the reports themselves.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="analysis-of-the-cognos-estate"&gt;Analysis of the Cognos estate&lt;/h2&gt;
&lt;p&gt;The analysis covers Framework Manager, reports, queries, dimensions, hierarchies, calculations, filters, and variables.&lt;/p&gt;
&lt;p&gt;The collected metadata makes it possible to reconstruct:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;dependencies between objects;&lt;/li&gt;
&lt;li&gt;relationships with data sources;&lt;/li&gt;
&lt;li&gt;business objects and indicators exposed in reports.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="scope-rationalization"&gt;Scope rationalization&lt;/h2&gt;
&lt;p&gt;Usage logs are cross-referenced with the platform&amp;rsquo;s metadata.&lt;/p&gt;
&lt;p&gt;This phase identifies unused reports, duplicates, and obsolete Frameworks.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="img-big"
srcset="https://ellipsys-bi.com/en/ressources/migration-dataviz/migration-cognos-vers-power-bi/migration-cognos-vers-power-bi-1-en_hu_c98f0bfd96a51259.webp 320w, https://ellipsys-bi.com/en/ressources/migration-dataviz/migration-cognos-vers-power-bi/migration-cognos-vers-power-bi-1-en_hu_3b4eff7c22906ed4.webp 480w, https://ellipsys-bi.com/en/ressources/migration-dataviz/migration-cognos-vers-power-bi/migration-cognos-vers-power-bi-1-en_hu_7ec183cfd486a0cb.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://ellipsys-bi.com/en/ressources/migration-dataviz/migration-cognos-vers-power-bi/migration-cognos-vers-power-bi-1-en_hu_c98f0bfd96a51259.webp"
width="760"
height="382"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; the scope that&amp;rsquo;s actually used is isolated before migration.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="conversion-to-power-bi"&gt;Conversion to Power BI&lt;/h2&gt;
&lt;p&gt;Cognos Frameworks are analyzed and then converted to the target Power BI model.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="img-big"
srcset="https://ellipsys-bi.com/en/ressources/migration-dataviz/migration-cognos-vers-power-bi/migration-cognos-vers-power-bi-2-en_hu_9b5df44245f6d6b3.webp 320w, https://ellipsys-bi.com/en/ressources/migration-dataviz/migration-cognos-vers-power-bi/migration-cognos-vers-power-bi-2-en_hu_3b75903cb4680bac.webp 480w, https://ellipsys-bi.com/en/ressources/migration-dataviz/migration-cognos-vers-power-bi/migration-cognos-vers-power-bi-2-en_hu_5b20d0077603f6cd.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://ellipsys-bi.com/en/ressources/migration-dataviz/migration-cognos-vers-power-bi/migration-cognos-vers-power-bi-2-en_hu_9b5df44245f6d6b3.webp"
width="760"
height="302"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Dimensions, hierarchies, measures, calculations, variables, and relationships between objects are reconstructed in the target semantic model.&lt;/p&gt;
&lt;p&gt;Cognos expressions are converted to SQL or DAX depending on their nature.&lt;/p&gt;
&lt;p&gt;Dependencies between Frameworks, reports, and data sources are preserved in the generated model.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Key point:&lt;/strong&gt; business objects and calculation rules are reconstructed directly from the Cognos Frameworks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="validation"&gt;Validation&lt;/h2&gt;
&lt;p&gt;Migrations can be carried out with dual Cognos / Power BI execution.&lt;/p&gt;
&lt;p&gt;The indicators produced by both platforms are compared during acceptance testing phases.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Typical use case:&lt;/strong&gt; progressive validation of reports before cutover.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="usage-driven-migration"&gt;Usage-driven migration&lt;/h2&gt;
&lt;p&gt;Reports can be migrated in batches based on how often they&amp;rsquo;re used and their business criticality.&lt;/p&gt;
&lt;p&gt;Observed usage forms the basis for project planning and development prioritization.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; a reduced volume to migrate, with effort focused on active usage.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;script&gt;
(function () {
// Hide the "Last updated on" date and the Author block on Resources
// pages: these aren't blog posts (no date/byline).
function hide() {
document.querySelectorAll("time.mt-12.mb-8").forEach(function (el) {
el.style.display = "none";
});
document.querySelectorAll("div.flex.pt-12.pb-4").forEach(function (el) {
if (el.querySelector('img[src*="/media/authors/"]')) {
el.style.display = "none";
}
});
// Extra safety net: also hide the social sharing row and any container
// linked to the author card, matched semantically rather than by class
// name (more robust to theme updates).
var shareHrefPatterns = [
"twitter.com/intent", "x.com/intent", "facebook.com/sharer",
"linkedin.com/sharing", "wa.me/", "api.whatsapp.com", "mailto:?"
];
document.querySelectorAll("a[href]").forEach(function (a) {
var href = a.getAttribute("href") || "";
if (shareHrefPatterns.some(function (p) { return href.indexOf(p) !== -1; })) {
a.style.display = "none";
}
});
document.querySelectorAll('a[href="https://ellipsys-bi.com/authors/me/"]').forEach(function (a) {
var el = a.closest("div.flex") || a.parentElement;
if (el) el.style.display = "none";
});
}
document.addEventListener("DOMContentLoaded", hide);
})();
&lt;/script&gt;</description></item><item><title>ETL Migration - from legacy ETL to SQL</title><link>https://ellipsys-bi.com/en/ressources/migration-etl/migration-etl-vers-le-sql/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate><guid>https://ellipsys-bi.com/en/ressources/migration-etl/migration-etl-vers-le-sql/</guid><description>&lt;p&gt;Legacy ETL platforms mainly implement filters, joins, aggregations, mappings, and transformations that can be expressed in SQL.&lt;/p&gt;
&lt;p&gt;&lt;strong style="color:#C00000;"&gt;{openAudit}&lt;/strong&gt; analyzes ETL jobs, reconstructs the flows, and generates a SQL equivalent independent of the source technology.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Key point:&lt;/strong&gt; the processes are rebuilt as documented, version-controllable SQL.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="process-analysis"&gt;Process analysis&lt;/h2&gt;
&lt;p&gt;ETL repositories are analyzed to reconstruct sources, targets, transformations, parameters, and dependencies between processes.&lt;/p&gt;
&lt;p&gt;The collected metadata makes it possible to reconstruct how the flows actually work.&lt;/p&gt;
&lt;p&gt;Unused or unconsumed components can be identified before migration.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; a migration scope reduced to the processes that are actually used.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="flow-reconstruction"&gt;Flow reconstruction&lt;/h2&gt;
&lt;p&gt;Processing chains are reconstructed from the ETL jobs.&lt;/p&gt;
&lt;p&gt;Dependencies between processes, intermediate flows, variables, and parameters are integrated into the target model.&lt;/p&gt;
&lt;p&gt;This mapping is the entry point for the conversion.&lt;/p&gt;
&lt;h2 id="rationalization"&gt;Rationalization&lt;/h2&gt;
&lt;p&gt;Cross-referencing data lineage (down to field level) with actually observed usage makes it possible to identify the data that is genuinely consumed and set aside what isn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;Each job is also analyzed to assess its complexity: number of steps, depth of sub-processes, types of transformations, and external dependencies. These metrics are aggregated into a complexity score, used to prioritize and plan the migration.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; a migration scope reduced to the processes that are actually used, prioritized according to their real complexity.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="sql-generation"&gt;SQL generation&lt;/h2&gt;
&lt;p&gt;The detected transformations are converted into SQL.&lt;/p&gt;
&lt;p&gt;Filters, joins, aggregations, lookups, mappings, and calculations are translated into successive, flat SQL statements.&lt;/p&gt;
&lt;p&gt;The resulting SQL preserves the logical structure of the original processes.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Key point:&lt;/strong&gt; each processing step remains identifiable in the generated SQL.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="example-ibm-datastage-jobs"&gt;Example: IBM DataStage jobs&lt;/h2&gt;
&lt;p&gt;For a DataStage estate, each stage type is translated according to its own logic:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Runtime Column Propagation (RCP):&lt;/strong&gt; the column list isn&amp;rsquo;t fixed in the job; it&amp;rsquo;s generated dynamically in the SQL, driven by the variables passed to the job.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Oracle connectors&lt;/strong&gt; (read / write): SELECT, UPDATE, MERGE, or INSERT generated from the stage&amp;rsquo;s options.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Change Capture (CDC):&lt;/strong&gt; Before/After comparison on primary keys, detecting new, modified, and deleted rows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CDC Transformer:&lt;/strong&gt; conditional routing to a dedicated flow based on the detected change code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shared Container:&lt;/strong&gt; a factored logical block, rendered as a standardized SQL block reused across several jobs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Column Generator:&lt;/strong&gt; calculated columns translated into typed SQL expressions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modify:&lt;/strong&gt; type conversions translated into SQL CAST (e.g. string to timestamp).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Funnel:&lt;/strong&gt; merging several flows via SQL UNION, with output schema harmonization.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="img-big"
srcset="https://ellipsys-bi.com/en/ressources/migration-etl/migration-etl-vers-le-sql/migration-etl-vers-le-sql-1-fr-en_hu_8d7b2c24bf08f04e.webp 320w, https://ellipsys-bi.com/en/ressources/migration-etl/migration-etl-vers-le-sql/migration-etl-vers-le-sql-1-fr-en_hu_cf20a81a93b79bb8.webp 480w, https://ellipsys-bi.com/en/ressources/migration-etl/migration-etl-vers-le-sql/migration-etl-vers-le-sql-1-fr-en_hu_d50db8a971693485.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://ellipsys-bi.com/en/ressources/migration-etl/migration-etl-vers-le-sql/migration-etl-vers-le-sql-1-fr-en_hu_8d7b2c24bf08f04e.webp"
width="760"
height="471"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Observed result:&lt;/strong&gt; across an estate of several hundred DataStage jobs, more than 95% of the SQL translations succeed on the very first run.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="adapting-to-target-platforms"&gt;Adapting to target platforms&lt;/h2&gt;
&lt;p&gt;The generated SQL can be adapted to the dialects of the target platforms.&lt;/p&gt;
&lt;p&gt;Functions, data types, and specific mechanisms are taken into account during generation.&lt;/p&gt;
&lt;p&gt;The same processes can be produced for Snowflake, BigQuery, Databricks SQL, Redshift, PostgreSQL, SQL Server, or other SQL-compatible engines.&lt;/p&gt;
&lt;h2 id="orchestration"&gt;Orchestration&lt;/h2&gt;
&lt;p&gt;Dependencies and process scheduling are preserved.&lt;/p&gt;
&lt;p&gt;The generated processes can be integrated into the orchestration tools already present in the Information System.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Typical use case:&lt;/strong&gt; integration into Airflow, Control-M, or any other existing scheduler.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="sql-as-the-pivot-format"&gt;SQL as the pivot format&lt;/h2&gt;
&lt;p&gt;SQL becomes the common representation of the processes.&lt;/p&gt;
&lt;p&gt;Transformations no longer depend on the proprietary components of the original ETL platform.&lt;/p&gt;
&lt;p&gt;Processes can be versioned, reviewed, tested, and deployed independently of the source technology.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Key point:&lt;/strong&gt; the transformation logic stays under the company&amp;rsquo;s control and no longer depends on a specific ETL engine.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;script&gt;
(function () {
// Hide the "Last updated on" date and the Author block on Resources
// pages: these aren't blog posts (no date/byline).
function hide() {
document.querySelectorAll("time.mt-12.mb-8").forEach(function (el) {
el.style.display = "none";
});
document.querySelectorAll("div.flex.pt-12.pb-4").forEach(function (el) {
if (el.querySelector('img[src*="/media/authors/"]')) {
el.style.display = "none";
}
});
// Extra safety net: also hide the social sharing row and any container
// linked to the author card, matched semantically rather than by class
// name (more robust to theme updates).
var shareHrefPatterns = [
"twitter.com/intent", "x.com/intent", "facebook.com/sharer",
"linkedin.com/sharing", "wa.me/", "api.whatsapp.com", "mailto:?"
];
document.querySelectorAll("a[href]").forEach(function (a) {
var href = a.getAttribute("href") || "";
if (shareHrefPatterns.some(function (p) { return href.indexOf(p) !== -1; })) {
a.style.display = "none";
}
});
document.querySelectorAll('a[href="https://ellipsys-bi.com/authors/me/"]').forEach(function (a) {
var el = a.closest("div.flex") || a.parentElement;
if (el) el.style.display = "none";
});
}
document.addEventListener("DOMContentLoaded", hide);
})();
&lt;/script&gt;</description></item></channel></rss>