<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Multi Target |</title><link>https://ellipsys-bi.com/tags/multi-target/</link><atom:link href="https://ellipsys-bi.com/tags/multi-target/index.xml" rel="self" type="application/rss+xml"/><description>Multi Target</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>fr-FR</language><lastBuildDate>Thu, 02 Jul 2026 00:00:00 +0000</lastBuildDate><image><url>https://ellipsys-bi.com/media/logo.svg</url><title>Multi Target</title><link>https://ellipsys-bi.com/tags/multi-target/</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></channel></rss>