<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Unity Catalog Archives - Zorost Intelligence | AI, Cloud &amp; Data Experts</title>
	<atom:link href="https://zorost.com/tag/unity-catalog/feed/" rel="self" type="application/rss+xml" />
	<link>https://zorost.com/tag/unity-catalog/</link>
	<description>Production AI systems for aviation, manufacturing, pharma, government, finance, freight, and geopolitical intelligence.</description>
	<lastBuildDate>Wed, 20 May 2026 18:52:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://zorost.com/wp-content/uploads/2025/08/ZOROST-Intel-Logo3_512-150x150.png</url>
	<title>Unity Catalog Archives - Zorost Intelligence | AI, Cloud &amp; Data Experts</title>
	<link>https://zorost.com/tag/unity-catalog/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">81719879</site>	<item>
		<title>Unity Catalog: Governance Done Right</title>
		<link>https://zorost.com/unity-catalog-governance-done-right/</link>
		
		<dc:creator><![CDATA[Zorost Intelligence]]></dc:creator>
		<pubDate>Tue, 13 Jan 2026 09:00:00 +0000</pubDate>
				<category><![CDATA[Databricks Modernization]]></category>
		<category><![CDATA[Data Mesh]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[Lineage]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Unity Catalog]]></category>
		<guid isPermaLink="false">https://zorost.com/unity-catalog-governance-done-right/</guid>

					<description><![CDATA[<p>Most governance projects fail because they start with policy. The good ones start with structure. Here is a reference Unity Catalog deployment that supports both governance and data-mesh patterns.</p>
<p>The post <a href="https://zorost.com/unity-catalog-governance-done-right/">Unity Catalog: Governance Done Right</a> appeared first on <a href="https://zorost.com">Zorost Intelligence | AI, Cloud &amp; Data Experts</a>.</p>
]]></description>
										<content:encoded><![CDATA[<blockquote>
<p><strong>Pull-quote:</strong> &#8220;Governance that the team can&#8217;t navigate is governance that the team will route around.&#8221;</p>
</blockquote>
<h4>Why this matters</h4>
<p>Most data-governance projects fail because they start with policy. The good ones start with <strong>structure</strong>. Unity Catalog&#8217;s hierarchy (Catalog → Schema → Table) is the structural foundation that makes policy enforceable.</p>
<h4>Reference layout (data-mesh)</h4>
<pre><code>catalog: zorost
├── domain_aviation
│   ├── flights_silver
│   ├── delays_gold
│   └── safety_rag
├── domain_manufacturing
│   ├── spc_silver
│   └── capability_gold
├── domain_freight
│   ├── corridors_silver
│   └── emissions_gold
├── domain_finance
│   └── ...
└── domain_governance       ← cross-cutting
    ├── audit_logs
    ├── pii_register
    └── data_quality_metrics</code></pre>
<h4>Permission model</h4>
<table>
<thead>
<tr>
<th>Principal</th>
<th>What they get</th>
</tr>
</thead>
<tbody>
<tr>
<td>Domain Steward</td>
<td>OWNER on <code>domain_X.*</code></td>
</tr>
<tr>
<td>Domain Engineer</td>
<td>USAGE on parent catalog + USE_SCHEMA on <code>domain_X.<em></code> + CREATE on <code>domain_X.</em></code></td>
</tr>
<tr>
<td>Cross-domain Analyst</td>
<td>SELECT on Gold tables only</td>
</tr>
<tr>
<td>Auditor</td>
<td>SELECT on <code>domain_governance.*</code></td>
</tr>
<tr>
<td>Service Principal (apps)</td>
<td>SELECT on specific Gold tables · scoped by token</td>
</tr>
</tbody>
</table>
<h4>Row and column security with dynamic views</h4>
<p>Unity Catalog supports <strong>dynamic views</strong> — views whose behavior depends on the current user. A typical pattern:</p>
<pre><code>CREATE VIEW domain_aviation.flights_secure AS
SELECT
  flight_id,
  origin_airport,
  destination_airport,
  CASE WHEN is_member('phi_authorized') THEN passenger_count ELSE NULL END
    AS passenger_count,
  ...
FROM domain_aviation.flights_silver
WHERE
  CASE
    WHEN is_member('all_regions') THEN TRUE
    ELSE region IN (SELECT region FROM domain_governance.user_region_grants
                     WHERE user = current_user())
  END;</code></pre>
<p><code>is_member()</code>, <code>current_user()</code>, <code>mask()</code>, and <code>filter()</code> together cover row-level, column-level, and full-fledged ABAC patterns.</p>
<h4>Tags and classification</h4>
<p>Every column and table can carry tags. We standardize a tag taxonomy:</p>
<table>
<thead>
<tr>
<th>Tag</th>
<th>Values</th>
<th>Use</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>pii_class</code></td>
<td><code>pii</code>, <code>pii_sensitive</code>, <code>phi</code>, <code>pci</code>, <code>none</code></td>
<td>Drives masking and access policy</td>
</tr>
<tr>
<td><code>data_owner</code></td>
<td>domain steward email</td>
<td>Clear accountability</td>
</tr>
<tr>
<td><code>freshness_sla</code></td>
<td><code>realtime</code>, <code>1h</code>, <code>1d</code>, <code>1w</code></td>
<td>Drives monitoring</td>
</tr>
<tr>
<td><code>retention</code></td>
<td><code>30d</code>, <code>1y</code>, <code>7y</code>, <code>permanent</code></td>
<td>Drives lifecycle</td>
</tr>
</tbody>
</table>
<p>Tags make policy queryable: &#8220;show me all PII-tagged columns in domain_finance&#8221; returns a row, not an email thread.</p>
<h4>Lineage and audit</h4>
<p>Unity Catalog captures column-level lineage across SQL, Python, ML, and BI consumption. Audit logs go to a sink the security team owns. Both are queryable via <code>system.access.audit</code> and <code>system.lineage.column_lineage</code>.</p>
<h4>Closing</h4>
<p>Governance done right starts with structure. Unity Catalog&#8217;s hierarchy + permission model + tagging + dynamic views + lineage + audit are the primitives. The implementation is workshop-driven, but the building blocks are stable and the patterns are reproducible.</p>
<hr>
<p>The post <a href="https://zorost.com/unity-catalog-governance-done-right/">Unity Catalog: Governance Done Right</a> appeared first on <a href="https://zorost.com">Zorost Intelligence | AI, Cloud &amp; Data Experts</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">24304</post-id>	</item>
		<item>
		<title>OBIEE to Databricks: a Practical Migration Pattern</title>
		<link>https://zorost.com/obiee-to-databricks-migration-pattern/</link>
		
		<dc:creator><![CDATA[Zorost Intelligence]]></dc:creator>
		<pubDate>Tue, 04 Nov 2025 09:00:00 +0000</pubDate>
				<category><![CDATA[Databricks Modernization]]></category>
		<category><![CDATA[Databricks]]></category>
		<category><![CDATA[Migration]]></category>
		<category><![CDATA[OBIEE]]></category>
		<category><![CDATA[Semantic Layer]]></category>
		<category><![CDATA[Unity Catalog]]></category>
		<guid isPermaLink="false">https://zorost.com/obiee-to-databricks-migration-pattern/</guid>

					<description><![CDATA[<p>Move Oracle OBIEE / OAS to Databricks SQL with a clear semantic-layer methodology. RPD reconstruction, security translation, ETL conversion, and report rebuild — without losing business logic.</p>
<p>The post <a href="https://zorost.com/obiee-to-databricks-migration-pattern/">OBIEE to Databricks: a Practical Migration Pattern</a> appeared first on <a href="https://zorost.com">Zorost Intelligence | AI, Cloud &amp; Data Experts</a>.</p>
]]></description>
										<content:encoded><![CDATA[<blockquote>
<p><strong>Pull-quote:</strong> &#8220;The RPD is not a black box. It is a graph of joins, hierarchies, and security predicates. Treat it that way and migration becomes tractable.&#8221;</p>
</blockquote>
<h4>Why this matters</h4>
<p>Oracle BI EE is one of the most widely deployed enterprise BI platforms. It also has accumulated technical debt — schema drift, layered RPDs, undocumented session variables, and report logic split between the BMM and the report itself. Most &#8220;migration&#8221; projects start by trying to lift-and-shift everything, get blocked, and stall.</p>
<p>The right approach is methodological. The RPD is treatable as three layers, each of which has a clean Databricks SQL equivalent.</p>
<h4>The three-layer translation</h4>
<pre><code>   OBIEE                                Databricks
   ─────                                ──────────
   Physical layer    ─────►  Delta Lake tables in Unity Catalog
                              + Lakehouse Federation for live sources

   BMM (logical)     ─────►  Databricks SQL semantic model
                              (Lakehouse views with row/column security)

   Presentation      ─────►  Power BI / Tableau on Databricks SQL
                              (dimensions, measures, time intelligence)</code></pre>
<h4>Migration sequence</h4>
<table>
<thead>
<tr>
<th>Phase</th>
<th>Length (typical)</th>
<th>Output</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>1. Discovery</strong></td>
<td>2–4 wks</td>
<td>Catalog of subject areas, RPDs, repositories, presentation catalogs · usage telemetry · report criticality matrix</td>
</tr>
<tr>
<td><strong>2. Source mapping</strong></td>
<td>2–4 wks</td>
<td>Mapping of physical layer to landing tables in Bronze/Silver Delta · federated sources documented</td>
</tr>
<tr>
<td><strong>3. Semantic model design</strong></td>
<td>4–8 wks</td>
<td>Logical-to-Databricks-SQL semantic model with row/column security</td>
</tr>
<tr>
<td><strong>4. ETL conversion</strong></td>
<td>parallel with 3</td>
<td>Native ETL → Lakeflow / DLT / Spark with DLT expectations</td>
</tr>
<tr>
<td><strong>5. Report rebuild</strong></td>
<td>4–10 wks</td>
<td>Top reports rebuilt in Power BI Direct Lake or Tableau</td>
</tr>
<tr>
<td><strong>6. Cutover &amp; decom.</strong></td>
<td>2–6 wks</td>
<td>Parallel run · UAT · sign-off · legacy decommissioning</td>
</tr>
<tr>
<td><strong>7. Hyper-care</strong></td>
<td>30/60/90 days</td>
<td>Stabilization with SLA-backed support</td>
</tr>
</tbody>
</table>
<h4>Security translation</h4>
<table>
<thead>
<tr>
<th>OBIEE security primitive</th>
<th>Databricks equivalent</th>
</tr>
</thead>
<tbody>
<tr>
<td>Application Roles</td>
<td>Unity Catalog groups (Entra/IDP-mapped)</td>
</tr>
<tr>
<td>Data filters on logical tables</td>
<td>Dynamic views with <code>current_user()</code> and <code>is_member()</code></td>
</tr>
<tr>
<td>Column-level filters</td>
<td><code>mask()</code> functions in dynamic views</td>
</tr>
<tr>
<td>Session variables</td>
<td>Catalog-scoped configuration tables</td>
</tr>
<tr>
<td>Init blocks</td>
<td>Replaced by IDP/Entra group claims</td>
</tr>
</tbody>
</table>
<h4>Common pitfalls</h4>
<ul>
<li><strong>Trying to lift-and-shift the BMM.</strong> Some logic in the BMM is workaround for OBIEE limitations. Rebuild as Lakehouse views; don&#8217;t translate one-for-one.</li>
<li><strong>Skipping usage telemetry.</strong> Half the reports in a typical OBIEE deployment are unused. Don&#8217;t migrate them.</li>
<li><strong>Translating session variables literally.</strong> Most session variables become dynamic-view predicates or IDP claims.</li>
<li><strong>Building the semantic model in Power BI instead of Databricks SQL.</strong> Power BI imports work in the short term and create future modernization debt. Direct Lake is the target.</li>
</ul>
<h4>Closing</h4>
<p>The OBIEE → Databricks migration pattern is reproducible when you treat the RPD as a graph of joins, hierarchies, and security predicates rather than as a black box. The result is a cleaner semantic model on a platform that supports SQL, ML, streaming, and agentic AI — instead of a single-purpose BI server.</p>
<hr>
<p>The post <a href="https://zorost.com/obiee-to-databricks-migration-pattern/">OBIEE to Databricks: a Practical Migration Pattern</a> appeared first on <a href="https://zorost.com">Zorost Intelligence | AI, Cloud &amp; Data Experts</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">24300</post-id>	</item>
	</channel>
</rss>
