<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Data-Warehouse on Ivan Luminaria</title><link>https://ivanluminaria.com/en/categories/data-warehouse/</link><description>Recent content in Data-Warehouse on Ivan Luminaria</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 20 Jan 2026 08:03:00 +0100</lastBuildDate><atom:link href="https://ivanluminaria.com/en/categories/data-warehouse/index.xml" rel="self" type="application/rss+xml"/><item><title>Ragged hierarchies: when the client has no parent and the group has no grandparent</title><link>https://ivanluminaria.com/en/posts/data-warehouse/ragged-hierarchies/</link><pubDate>Tue, 20 Jan 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/data-warehouse/ragged-hierarchies/</guid><description>&lt;p&gt;Three levels. Top Group, Group, Client. It looks like a trivial structure — the kind of hierarchy you draw on a whiteboard in five minutes and that any BI tool should handle without issues.&lt;/p&gt;
&lt;p&gt;Then you discover that not all clients belong to a group. And that not all groups belong to a top group. And that the aggregation reports the business asks for — revenue by top group, client count by group, &lt;span class="glossary-tip" tabindex="0" data-glossary-desc="Navigation in reports from an aggregated level to a detail level, typical of OLAP analysis and data warehouses." data-glossary-url="https://ivanluminaria.com/en/glossary/drill-down/" data-glossary-more="Read more →"&gt;drill-down&lt;/span&gt;
 from the top to the leaf — produce wrong or incomplete results because the hierarchy has holes.&lt;/p&gt;</description></item><item><title>SCD Type 2: the history the business didn't know it needed</title><link>https://ivanluminaria.com/en/posts/data-warehouse/scd-tipo-2/</link><pubDate>Tue, 11 Nov 2025 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/data-warehouse/scd-tipo-2/</guid><description>&lt;p&gt;The sales director shows up at the Monday morning meeting with a simple question: &amp;ldquo;How many customers did we have in the North region last June?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The DWH&amp;rsquo;s answer: silence.&lt;/p&gt;
&lt;p&gt;Not because the system was down, or the table was missing. The data was there, technically. But it was wrong. The DWH returned the customers currently in the North region — not the ones that were there in June. Because every night, the loading process overwrote the customer master data with current values, erasing any trace of what came before.&lt;/p&gt;</description></item><item><title>Wrong grain: when the fact table can't answer the right questions</title><link>https://ivanluminaria.com/en/posts/data-warehouse/fatto-grana-sbagliata/</link><pubDate>Tue, 21 Oct 2025 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/data-warehouse/fatto-grana-sbagliata/</guid><description>&lt;p&gt;The meeting had started well. The sales director of an industrial distribution company — around sixty million in revenue, three thousand active customers, a catalog of twelve thousand SKUs — had opened the new data warehouse presentation with a smile. The numbers matched, the dashboards were polished, the monthly totals by agent and territory reconciled with accounting.&lt;/p&gt;
&lt;p&gt;Then someone asked the wrong question. Or rather, the right one.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;Can I see what customer Bianchi purchased in March, line by line, product by product?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>