<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Business Intelligence |</title><link>https://ellipsys-bi.com/en/tags/business-intelligence/</link><atom:link href="https://ellipsys-bi.com/en/tags/business-intelligence/index.xml" rel="self" type="application/rss+xml"/><description>Business Intelligence</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>Business Intelligence</title><link>https://ellipsys-bi.com/en/tags/business-intelligence/</link></image><item><title>DataViz Migration - an interoperable semantic layer - {oa-lake-ctx}</title><link>https://ellipsys-bi.com/en/ressources/middlewares/oa-lake-ctx-couche-semantique/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate><guid>https://ellipsys-bi.com/en/ressources/middlewares/oa-lake-ctx-couche-semantique/</guid><description>&lt;p&gt;Legacy decision-support platforms typically relied on a semantic layer that let users work with business objects rather than tables or SQL queries.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Customers&amp;rdquo;, &amp;ldquo;contracts&amp;rdquo;, &amp;ldquo;products&amp;rdquo;, or &amp;ldquo;revenue&amp;rdquo; were exposed in a functional form, independent of the underlying physical storage structures.&lt;/p&gt;
&lt;p&gt;To address this need, we designed &lt;strong style="color:#C00000;"&gt;{oa-lake-ctx}&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong style="color:#C00000;"&gt;{oa-lake-ctx}&lt;/strong&gt; is the semantic layer of the &lt;strong style="color:#C00000;"&gt;{oa-lake}&lt;/strong&gt; architecture. It centralizes business objects, dimensions, measures, KPIs, calculation rules, and security mechanisms.&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; consuming tools work with business objects. The physical structures stay hidden.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="architecture"&gt;Architecture&lt;/h2&gt;
&lt;p&gt;&lt;strong style="color:#C00000;"&gt;{oa-lake-ctx}&lt;/strong&gt; centralizes dimensions, measures, hierarchies, KPIs, and calculation rules.&lt;/p&gt;
&lt;p&gt;These components are defined once and then exposed to consuming tools.&lt;/p&gt;
&lt;p&gt;Unlike some semantic layers on the market, &lt;strong style="color:#C00000;"&gt;{oa-lake-ctx}&lt;/strong&gt; requires no specific physical model, no pivot table, and no imposed navigation path.&lt;/p&gt;
&lt;p&gt;Relationships are calculated dynamically from the existing 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; a single business model for all data and all consuming tools.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="data-sources"&gt;Data sources&lt;/h2&gt;
&lt;p&gt;&lt;strong style="color:#C00000;"&gt;{oa-lake-ctx}&lt;/strong&gt; can use several data systems simultaneously.&lt;/p&gt;
&lt;p&gt;Data can come from Oracle, SQL Server, PostgreSQL, DB2, Snowflake, BigQuery, Redshift databases, files, or other SQL-compatible sources.&lt;/p&gt;
&lt;p&gt;Business objects can combine several sources within a single functional definition.&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; build a KPI from data spread across several platforms.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="business-objects"&gt;Business objects&lt;/h2&gt;
&lt;p&gt;The catalogs exposed by &lt;strong style="color:#C00000;"&gt;{oa-lake-ctx}&lt;/strong&gt; group together dimensions, measures, KPIs, hierarchies, and business nomenclature.&lt;/p&gt;
&lt;p&gt;Relationships between objects are defined in the semantic layer, not in the reporting tools.&lt;/p&gt;
&lt;p&gt;Catalogs can be organized independently of the databases&amp;rsquo; physical structures.&lt;/p&gt;
&lt;h2 id="sql-generation"&gt;SQL generation&lt;/h2&gt;
&lt;p&gt;SQL queries are generated dynamically from the selected business objects, dimensions, measures, and filters.&lt;/p&gt;
&lt;p&gt;Joins, aggregations, and calculation rules are applied by the engine.&lt;/p&gt;
&lt;p&gt;User filters are propagated all the way to the source systems via the &lt;strong&gt;SQL Push-Down&lt;/strong&gt; mechanism: no systematic copying of data — queries run against the existing systems, respecting the architectures already in place.&lt;/p&gt;
&lt;p&gt;The generated SQL can be executed by &lt;strong style="color:#C00000;"&gt;{oa-lake}&lt;/strong&gt; or by any compatible SQL engine.&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; users work with business objects; the SQL is generated automatically.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="smart-cache"&gt;Smart Cache&lt;/h2&gt;
&lt;p&gt;Data stays in the source systems whenever possible.&lt;/p&gt;
&lt;p&gt;The most heavily used datasets can be materialized in Parquet format.&lt;/p&gt;
&lt;p&gt;The cache is driven by &lt;strong style="color:#C00000;"&gt;{oa-lake}&lt;/strong&gt;&amp;rsquo;s &lt;strong&gt;Cache Manager&lt;/strong&gt;, managed automatically based on observed usage.&lt;/p&gt;
&lt;p&gt;Cache management remains independent of consuming tools.&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 most expensive queries can be accelerated without modifying the source systems.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="sql-engine"&gt;SQL Engine&lt;/h2&gt;
&lt;p&gt;&lt;strong style="color:#C00000;"&gt;{oa-lake}&lt;/strong&gt; relies on a columnar, in-memory SQL engine.&lt;/p&gt;
&lt;p&gt;The queries generated by &lt;strong style="color:#C00000;"&gt;{oa-lake-ctx}&lt;/strong&gt; are executed by this engine or propagated to the source systems depending on the context.&lt;/p&gt;
&lt;p&gt;The SQL remains portable, standard, and executable on different engines, independent of the storage technologies in use — which limits technology lock-in.&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 SQL engine forms the execution layer of the architecture.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="security"&gt;Security&lt;/h2&gt;
&lt;p&gt;Security is managed at the semantic layer level.&lt;/p&gt;
&lt;p&gt;Access restrictions, user profiles, business catalogs, and security filters are applied before queries are generated.&lt;/p&gt;
&lt;p&gt;This approach makes it possible to reproduce the security mechanisms found in platforms such as SAP BusinessObjects or IBM Cognos.&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; security rules are defined once and then applied to all connected tools.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="reporting"&gt;Reporting&lt;/h2&gt;
&lt;p&gt;The catalogs exposed by &lt;strong style="color:#C00000;"&gt;{oa-lake-ctx}&lt;/strong&gt; can be consumed by any tool capable of querying a PostgreSQL source.&lt;/p&gt;
&lt;p&gt;Power BI, Looker, Spotfire, Tableau, Qlik, or other platforms access the same business objects, dimensions, measures, and KPIs.&lt;/p&gt;
&lt;p&gt;The functional definitions remain identical regardless of the tool being used.&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; several platforms can share the same business catalog with no duplication of calculation rules.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="governance"&gt;Governance&lt;/h2&gt;
&lt;p&gt;Business objects, KPIs, dimensions, measures, and calculation rules are centralized in a single repository.&lt;/p&gt;
&lt;p&gt;Functional changes are made in &lt;strong style="color:#C00000;"&gt;{oa-lake-ctx}&lt;/strong&gt; and are then immediately available to all connected tools.&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; &lt;strong style="color:#C00000;"&gt;{oa-lake-ctx}&lt;/strong&gt; is the central point for defining business objects and KPIs.&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>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></channel></rss>