<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Governance |</title><link>https://ellipsys-bi.com/tags/governance/</link><atom:link href="https://ellipsys-bi.com/tags/governance/index.xml" rel="self" type="application/rss+xml"/><description>Governance</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>Governance</title><link>https://ellipsys-bi.com/tags/governance/</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>Data lineage - feeding third-party data catalogs to expose technical data lineage</title><link>https://ellipsys-bi.com/en/ressources/data-lineage-principes/data-lineage-alimentation-data-catalogues/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate><guid>https://ellipsys-bi.com/en/ressources/data-lineage-principes/data-lineage-alimentation-data-catalogues/</guid><description>&lt;p&gt;&lt;strong style="color:#C00000;"&gt;{openAudit}&lt;/strong&gt; lets you browse data lineage through its Mosaïc web portal, but the consolidated metadata can also be published to various data catalogs on the market, which often have significant limitations when it comes to data lineage. The benefit is having a single tool for optimal data governance.&lt;/p&gt;
&lt;p&gt;The data lineage is reconstructed in the &lt;strong style="color:#C00000;"&gt;{openAudit}&lt;/strong&gt; technical repository, then exposed to data catalogs via dedicated connectors.&lt;/p&gt;
&lt;p&gt;This architecture makes it possible to decouple the data lineage collection and reconstruction mechanisms from the exposure layer used by governance teams.&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 technical repository stays independent from the target catalog. The collection and lineage-reconstruction (and connection) mechanisms don&amp;rsquo;t depend on the data catalog in use.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="architecture"&gt;Architecture&lt;/h2&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/data-lineage-principes/data-lineage-alimentation-data-catalogues/data-lineage-alimentation-data-catalogues-1-en_hu_cbb841d43bbf559e.webp 320w, https://ellipsys-bi.com/en/ressources/data-lineage-principes/data-lineage-alimentation-data-catalogues/data-lineage-alimentation-data-catalogues-1-en_hu_7a240380fc93dde0.webp 480w, https://ellipsys-bi.com/en/ressources/data-lineage-principes/data-lineage-alimentation-data-catalogues/data-lineage-alimentation-data-catalogues-1-en_hu_3ee369225894186e.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://ellipsys-bi.com/en/ressources/data-lineage-principes/data-lineage-alimentation-data-catalogues/data-lineage-alimentation-data-catalogues-1-en_hu_cbb841d43bbf559e.webp"
width="760"
height="417"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;The collected metadata is consolidated in the &lt;strong&gt;oA.mdb&lt;/strong&gt; columnar database after processing by the &lt;strong&gt;oA.Job&lt;/strong&gt; engine.&lt;/p&gt;
&lt;p&gt;The central repository notably contains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Field-level data lineage.&lt;/li&gt;
&lt;li&gt;Usage data.&lt;/li&gt;
&lt;li&gt;Associated governance information, where applicable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The catalogs are then fed from this single repository via exposure connectors independent of the data catalog solutions in use.&lt;/p&gt;
&lt;h2 id="exposure-connectors"&gt;Exposure connectors&lt;/h2&gt;
&lt;p&gt;The connectors handle:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Automated publication of the lineage.&lt;/li&gt;
&lt;li&gt;Continuous synchronization.&lt;/li&gt;
&lt;li&gt;Restriction management.&lt;/li&gt;
&lt;li&gt;Support for the various Workspaces.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Data lineage exposure can be complete or partial depending on the display capabilities of the target catalog, keeping in mind that the data lineage produced upstream is itself available at field level.&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; catalogs only consume the consolidated metadata, not the original technical sources.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="supported-catalogs"&gt;Supported catalogs&lt;/h2&gt;
&lt;p&gt;The available connectors currently support the following data catalogs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DataGalaxy&lt;/li&gt;
&lt;li&gt;Zeenea&lt;/li&gt;
&lt;li&gt;Collibra&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="usage-management"&gt;Usage management&lt;/h2&gt;
&lt;p&gt;When audit logs are available, observed usage is integrated into the technical repository and then exposed to the catalog.&lt;/p&gt;
&lt;p&gt;This lets users distinguish:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Live&amp;rdquo; flows, consumed by tools or queried.&lt;/li&gt;
&lt;li&gt;Flows — and therefore objects — that see no consumption (often more than 80% of the total).&lt;/li&gt;
&lt;/ul&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; enrich the data catalog with usage information to identify objects that are candidates for rationalization or decommissioning.&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>