<?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 Showcase: Production Lakehouse Pipeline for Retail Pricing Analytics on Databricks (Plaza Vea, Peru) in Community Articles</title>
    <link>https://community.databricks.com/t5/community-articles/showcase-production-lakehouse-pipeline-for-retail-pricing/m-p/166334#M1461</link>
    <description>&lt;DIV class=""&gt;Hi Databricks Community,&lt;/DIV&gt;&lt;DIV class=""&gt;I wanted to share a project I've been building over the past few months using &lt;STRONG&gt;Databricks on Azure&lt;/STRONG&gt;&amp;nbsp;, a production Lakehouse pipeline for retail pricing analytics.&lt;/DIV&gt;&lt;H2&gt;What it does&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;&lt;DIV class=""&gt;Ingests &lt;STRONG&gt;~21,000 products daily&lt;/STRONG&gt; across &lt;STRONG&gt;16 categories&lt;/STRONG&gt; from Plaza Vea Peru's public API&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Processes &lt;STRONG&gt;120,000+ historical records&lt;/STRONG&gt; using PySpark, Delta Lake, and &lt;STRONG&gt;Medallion Architecture&lt;/STRONG&gt; (Bronze / Silver / Gold)&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Orchestrated with &lt;STRONG&gt;Lakeflow Jobs&lt;/STRONG&gt; and governed with &lt;STRONG&gt;Unity Catalog&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Analytics via &lt;STRONG&gt;Databricks AI/BI Dashboard&lt;/STRONG&gt; and &lt;STRONG&gt;Power BI Direct Lake&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H2&gt;Architecture&lt;/H2&gt;&lt;DIV class=""&gt;&lt;STRONG&gt;1. Ingesta — Azure Functions + ADLS Gen2&lt;/STRONG&gt; Azure Function (Python) scrapes the public API concurrently by category and lands raw JSON into ADLS Gen2, partitioned by batch_id=YYYY-MM-DD.&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;STRONG&gt;2. Orchestration — Lakeflow Jobs&lt;/STRONG&gt; A 9-task Lakeflow Job orchestrates the full pipeline, passing p_batch_id via taskValues across tasks: trigger Azure Function → identify batch → ingest Bronze → transform Silver → build Gold → validate → complete batch.&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;STRONG&gt;3. Medallion Architecture&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;SPAN class=""&gt;Hojas&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;Layer What happens &lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Bronze&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;Raw JSON ingestion with replaceWhere partitioning by batch_id. Historical data intact.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Silver&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;MERGE upserts with 36 columns, deduplication keyed on product_id + ingest_date. 8 real data quality issues documented and resolved.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Gold&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;Star Schema with 6 dimensions + fact_precio_snapshot. 34,835 facts loaded with 100% referential integrity via INNER JOINs. Lost records audited in gold_auditoria_perdidos.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;H2&gt;Key technical decisions&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;&lt;DIV class=""&gt;replaceWhere vs full overwrite → only overwrites the day's batch_id partition, keeping history safe&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Composite MERGE key (product_id + ingest_date) → each day is an independent snapshot&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Pre-populated dim_etiquetado JUNK dimension → 32 combinations under Peruvian Law 30021, eliminating NULLs in the fact table&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;INNER JOINs in the fact table → 100% referential integrity guaranteed&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
    <pubDate>Mon, 24 Aug 2026 17:33:10 GMT</pubDate>
    <dc:creator>Ander-R9</dc:creator>
    <dc:date>2026-08-24T17:33:10Z</dc:date>
    <item>
      <title>Showcase: Production Lakehouse Pipeline for Retail Pricing Analytics on Databricks (Plaza Vea, Peru)</title>
      <link>https://community.databricks.com/t5/community-articles/showcase-production-lakehouse-pipeline-for-retail-pricing/m-p/166334#M1461</link>
      <description>&lt;DIV class=""&gt;Hi Databricks Community,&lt;/DIV&gt;&lt;DIV class=""&gt;I wanted to share a project I've been building over the past few months using &lt;STRONG&gt;Databricks on Azure&lt;/STRONG&gt;&amp;nbsp;, a production Lakehouse pipeline for retail pricing analytics.&lt;/DIV&gt;&lt;H2&gt;What it does&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;&lt;DIV class=""&gt;Ingests &lt;STRONG&gt;~21,000 products daily&lt;/STRONG&gt; across &lt;STRONG&gt;16 categories&lt;/STRONG&gt; from Plaza Vea Peru's public API&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Processes &lt;STRONG&gt;120,000+ historical records&lt;/STRONG&gt; using PySpark, Delta Lake, and &lt;STRONG&gt;Medallion Architecture&lt;/STRONG&gt; (Bronze / Silver / Gold)&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Orchestrated with &lt;STRONG&gt;Lakeflow Jobs&lt;/STRONG&gt; and governed with &lt;STRONG&gt;Unity Catalog&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Analytics via &lt;STRONG&gt;Databricks AI/BI Dashboard&lt;/STRONG&gt; and &lt;STRONG&gt;Power BI Direct Lake&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H2&gt;Architecture&lt;/H2&gt;&lt;DIV class=""&gt;&lt;STRONG&gt;1. Ingesta — Azure Functions + ADLS Gen2&lt;/STRONG&gt; Azure Function (Python) scrapes the public API concurrently by category and lands raw JSON into ADLS Gen2, partitioned by batch_id=YYYY-MM-DD.&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;STRONG&gt;2. Orchestration — Lakeflow Jobs&lt;/STRONG&gt; A 9-task Lakeflow Job orchestrates the full pipeline, passing p_batch_id via taskValues across tasks: trigger Azure Function → identify batch → ingest Bronze → transform Silver → build Gold → validate → complete batch.&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;STRONG&gt;3. Medallion Architecture&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;SPAN class=""&gt;Hojas&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;Layer What happens &lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Bronze&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;Raw JSON ingestion with replaceWhere partitioning by batch_id. Historical data intact.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Silver&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;MERGE upserts with 36 columns, deduplication keyed on product_id + ingest_date. 8 real data quality issues documented and resolved.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Gold&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;Star Schema with 6 dimensions + fact_precio_snapshot. 34,835 facts loaded with 100% referential integrity via INNER JOINs. Lost records audited in gold_auditoria_perdidos.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;H2&gt;Key technical decisions&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;&lt;DIV class=""&gt;replaceWhere vs full overwrite → only overwrites the day's batch_id partition, keeping history safe&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Composite MERGE key (product_id + ingest_date) → each day is an independent snapshot&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;Pre-populated dim_etiquetado JUNK dimension → 32 combinations under Peruvian Law 30021, eliminating NULLs in the fact table&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;DIV class=""&gt;INNER JOINs in the fact table → 100% referential integrity guaranteed&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Mon, 24 Aug 2026 17:33:10 GMT</pubDate>
      <guid>https://community.databricks.com/t5/community-articles/showcase-production-lakehouse-pipeline-for-retail-pricing/m-p/166334#M1461</guid>
      <dc:creator>Ander-R9</dc:creator>
      <dc:date>2026-08-24T17:33:10Z</dc:date>
    </item>
  </channel>
</rss>

