<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Medallion Architecture Has 3 Layers. We Built 5. Here's Why — Views Layer Design on Databricks in Community Articles</title>
    <link>https://community.databricks.com/t5/community-articles/medallion-architecture-has-3-layers-we-built-5-here-s-why-views/m-p/160041#M1294</link>
    <description>&lt;P class=""&gt;&lt;FONT size="3"&gt;Part 4 of my enterprise data platform series is up - this one cover why we added a fifth layer to the standard medallion architecture.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;We connected BI tools to the Gold layer and immediately hit four problems Gold alone couldn't solve:&lt;/FONT&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Schema breaks when we renamed a Gold column (three Tableau reports broke immediately)&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Three workbooks calculating vendor aging differently, none of them agreeing&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;The same vendor_master join running independently across four dashboards&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Row-level filtering that we didn't want duplicated in every downstream tool&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P class=""&gt;&lt;FONT size="3"&gt;All four solutions pointed to the same thing - a Views layer between Gold and consumers.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;What's in the post:&lt;/FONT&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Schema stability via views - one update instead of fixing every downstream query&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Business logic abstraction - vendor aging buckets defined once, consumed everywhere&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Row-level security with dynamic views using current_user() and Unity Catalog&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Pre-joined views for heavy consumers with Databricks Dashboard query cache&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;View naming convention, Git-based version control for view definitions&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;What I'd do differently - designing Views before Gold, not after&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P class=""&gt;&lt;FONT size="3"&gt;Full post on Medium: &lt;A class="" href="https://medium.com/@savlahanish/medallion-architecture-has-3-layers-we-built-5-heres-why-41408c71c6b7" target="_blank" rel="noopener"&gt;https://medium.com/@savlahanish/medallion-architecture-has-3-layers-we-built-5-heres-why-41408c71c6b7&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;FONT size="3"&gt;Part 5 is where it gets messier - Tableau and Databricks Dashboards behaving differently against the same views, a decimal precision issue that cost two hours, and what happens when interactive queries and Tableau batch refreshes hit the same SQL Warehouse at 9am.&lt;/FONT&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;FONT size="3"&gt;Happy to answer questions on any of the decisions - particularly around the row-level security pattern or the naming convention.&lt;/FONT&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 22 Jun 2026 07:40:25 GMT</pubDate>
    <dc:creator>savlahanish27</dc:creator>
    <dc:date>2026-06-22T07:40:25Z</dc:date>
    <item>
      <title>Medallion Architecture Has 3 Layers. We Built 5. Here's Why — Views Layer Design on Databricks</title>
      <link>https://community.databricks.com/t5/community-articles/medallion-architecture-has-3-layers-we-built-5-here-s-why-views/m-p/160041#M1294</link>
      <description>&lt;P class=""&gt;&lt;FONT size="3"&gt;Part 4 of my enterprise data platform series is up - this one cover why we added a fifth layer to the standard medallion architecture.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;We connected BI tools to the Gold layer and immediately hit four problems Gold alone couldn't solve:&lt;/FONT&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Schema breaks when we renamed a Gold column (three Tableau reports broke immediately)&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Three workbooks calculating vendor aging differently, none of them agreeing&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;The same vendor_master join running independently across four dashboards&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Row-level filtering that we didn't want duplicated in every downstream tool&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P class=""&gt;&lt;FONT size="3"&gt;All four solutions pointed to the same thing - a Views layer between Gold and consumers.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="3"&gt;What's in the post:&lt;/FONT&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Schema stability via views - one update instead of fixing every downstream query&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Business logic abstraction - vendor aging buckets defined once, consumed everywhere&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Row-level security with dynamic views using current_user() and Unity Catalog&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;Pre-joined views for heavy consumers with Databricks Dashboard query cache&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;View naming convention, Git-based version control for view definitions&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="3"&gt;What I'd do differently - designing Views before Gold, not after&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P class=""&gt;&lt;FONT size="3"&gt;Full post on Medium: &lt;A class="" href="https://medium.com/@savlahanish/medallion-architecture-has-3-layers-we-built-5-heres-why-41408c71c6b7" target="_blank" rel="noopener"&gt;https://medium.com/@savlahanish/medallion-architecture-has-3-layers-we-built-5-heres-why-41408c71c6b7&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;FONT size="3"&gt;Part 5 is where it gets messier - Tableau and Databricks Dashboards behaving differently against the same views, a decimal precision issue that cost two hours, and what happens when interactive queries and Tableau batch refreshes hit the same SQL Warehouse at 9am.&lt;/FONT&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;FONT size="3"&gt;Happy to answer questions on any of the decisions - particularly around the row-level security pattern or the naming convention.&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jun 2026 07:40:25 GMT</pubDate>
      <guid>https://community.databricks.com/t5/community-articles/medallion-architecture-has-3-layers-we-built-5-here-s-why-views/m-p/160041#M1294</guid>
      <dc:creator>savlahanish27</dc:creator>
      <dc:date>2026-06-22T07:40:25Z</dc:date>
    </item>
  </channel>
</rss>

