The ShopVista Data Modernization Platform is a modern Azure Lakehouse implementation designed to centralize, automate, and optimize the processing of e-commerce data for business analytics.
ShopVista, a rapidly growing e-commerce organization, manages transactional and operational data generated from multiple business domains, including:
Previously, these datasets existed as separate CSV files across different systems, requiring significant manual effort for reconciliation and reporting. This fragmented approach resulted in inconsistent reporting, duplicated processing, and limited visibility into business performance.
To overcome these challenges, this project implements an enterprise-grade Lakehouse Architecture using Microsoft Azure, enabling automated ingestion, scalable transformation, governed data management, and analytics-ready datasets.
The solution follows the Medallion Architecture (Bronze → Silver → Gold) and leverages Azure Databricks, Delta Lake, and Unity Catalog to build a reliable and scalable analytics platform.
ShopVista is a fast-growing online retail company that sells products across multiple brands and categories to customers worldwide.
The company generates thousands of transactional records every day from multiple operational systems including:
As business volume increased, reporting became increasingly difficult due to:
Management required a centralized analytics platform capable of providing reliable, near real-time insights while reducing manual intervention.
The primary objective of this project is to design and implement a scalable cloud-native data platform capable of supporting enterprise reporting and analytics.
The solution addresses the following business requirements:
Automatically ingest:
without manual intervention.
Improve overall data quality by:
Create analytics-ready datasets using:
optimized for BI reporting.
Implement centralized governance using:
Provide interactive Power BI dashboards showing:
The platform should support:

| Azure Service | Purpose |
|---|---|
| Azure Data Lake Storage Gen2 | Centralized Data Lake |
| Azure Databricks | Distributed Data Processing |
| Unity Catalog | Data Governance & Security |
| Delta Lake | ACID-Compliant Storage |
| Auto Loader | Incremental File Ingestion |
| Structured Streaming | Real-Time Data Processing |
| Azure Managed Identity | Secure Resource Access |
| Power BI | Reporting & Visualization |
| Layer | Technology | Purpose |
|---|---|---|
| Source Layer | ShopVista Operational System | Raw Business Data |
| Landing Layer | Azure Data Lake Storage Gen2 | Raw CSV Storage |
| Governance Layer | Unity Catalog | Secure Data Management |
| Processing Layer | Azure Databricks | ETL / ELT Processing |
| Bronze Layer | Delta Lake | Raw Delta Tables |
| Silver Layer | Delta Lake | Clean & Standardized Data |
| Gold Layer | Delta Lake | Business-Ready Data |
| Reporting Layer | Power BI | Dashboards & Analytics |
spark-databricks-ecommerce-pipeline/
│
├── architecture/
│
├── dashboards/
│ ├── PowerBI/
│ │ └── ecommerce_analytics.pbix
│ └── screenshots/
│ └── ecommerce_analytics_page-0001.jpg
│
├── datasets/
│ ├── historical-full-load/
│ │ ├── brands/
│ │ │ └── brands.csv
│ │ ├── category/
│ │ │ └── category.csv
│ │ ├── customers/
│ │ │ └── customers.csv
│ │ ├── date/
│ │ │ └── date.csv
│ │ ├── products/
│ │ │ └── products.csv
│ │ ├── order_items/
│ │ │ └── landing/
│ │ │ ├── order_items_2024-01-01.csv
│ │ │ ├── ...
│ │ │ └── order_items_2024-01-19.csv
│ │ ├── order_returns/
│ │ │ └── landing/
│ │ │ ├── returns_2024-01.csv
│ │ │ ├── ...
│ │ │ └── returns_2025-08.csv
│ │ └── order_shipments/
│ │ └── landing/
│ │ ├── shipments_2024-01.csv
│ │ ├── ...
│ │ └── shipments_2024-10.csv
│ │
│ └── incremental-load/
│ ├── order_items/
│ │ └── incoming/
│ │ ├── order_items_2025-09-01.csv
│ │ ├── ...
│ │ └── order_items_2025-09-15.csv
│ ├── order_returns/
│ │ └── incoming/
│ │ ├── returns_2025-09.csv
│ │ ├── ...
│ │ └── returns_2026-01.csv
│ └── order_shipments/
│ └── incoming/
│ ├── shipments_2025-09.csv
│ ├── shipments_2025-10.csv
│ ├── shipments_2025-11.csv
│ └── shipments_2025-12.csv
│
├── docs/
│ ├── 01_Azure_account_setup/
│ │ ├── README.md
│ │ └── images/
│ │ ├── 0_free_azure.png
│ │ ├── 1_create_account.png
│ │ ├── 2_azure_account_setup.png
│ │ ├── 3_azure_account_setup.png
│ │ └── 4_azure_account.png
│ │
│ ├── 02_Azure_Databricks_setup/
│ │ ├── README.md
│ │ └── images/
│ │ ├── 01_create_resource_group.png
│ │ ├── ...
│ │ └── 09_create_compute_cluster.png
│ │
│ ├── 03_ADLS/
│ │ ├── README.md
│ │ └── images/
│ │ ├── 01_create_storage_account.png
│ │ ├── ...
│ │ └── 08_uploaded_files.png
│ │
│ ├── 04_Unity_Catalog/
│ │ ├── README.md
│ │ └── images/
│ │ ├── 01_open_unity_catalog.png
│ │ ├── ...
│ │ ├── Unity_Catalog_Authentication_Flow.png
│ │ └── Unity_Catalog_Azure_Architecture.png
│ │
│ ├── 05_Raw_Schema/
│ │ ├── README.md
│ │ └── images/
│ │ ├── 1_create_external_location_raw.png
│ │ └── 2_create_raw_schema.png
│ │
│ ├── 06_Bronze_Layer/
│ │ ├── README.md
│ │ └── images/
│ │ ├── 1_ingest_dim_data_to_raw_bronze_layer.png
│ │ └── 2_raw_bronze_tables.png
│ │
│ ├── 07_Silver_Layer/
│ │ ├── README.md
│ │ └── images/
│ │ ├── 1_transform_dim_data_to_silver_layer.png
│ │ ├── 2_transform_fact_data_to_silver_layer.png
│ │ └── 3_silver_tables.png
│ │
│ ├── 08_Gold_Layer/
│ │ ├── README.md
│ │ └── images/
│ │ ├── 1_build_gold_dimension_tables.png
│ │ ├── 2_build_gold_fact_tables.png
│ │ └── 3_gold_tables.png
│ │
│ ├── 09_Create_and_Manage_Jobs/
│ │ ├── README.md
│ │ └── images/
│ │ ├── 1_create_job.png
│ │ ├── ...
│ │ └── 13_create_schedule.png
│ │
│ └── 10_PowerBI/
│ ├── README.md
│ └── images/
│
├── notebooks/
│ ├── 01_setup/
│ │ ├── 01_setup_catalog.ipynb
│ │ ├── 02_setup_raw_schema.ipynb
│ │ └── 03_create_external_volume.ipynb
│ │
│ ├── 02_bronze/
│ │ ├── dimension_tables/
│ │ │ └── 01_ingest_dimensions.ipynb
│ │ └── fact_tables/
│ │ └── 01_ingest_order_items_fact.ipynb
│ │
│ ├── 03_silver/
│ │ ├── CommonUtils.ipynb
│ │ ├── dimension_tables/
│ │ │ ├── 01_transform_brand_dim.ipynb
│ │ │ ├── 02_transform_category_dim.ipynb
│ │ │ ├── 03_transform_product_dim.ipynb
│ │ │ ├── 04_transform_customers_dim.ipynb
│ │ │ └── 05_transform_calendar_dim.ipynb
│ │ └── fact_tables/
│ │ └── 01_transform_order_items_fact.ipynb
│ │
│ └── 04_gold/
│ ├── CommonUtils.ipynb
│ ├── 01_daily_summary.ipynb
│ ├── dimension_tables/
│ │ ├── 01_build_gld_dim_products.ipynb
│ │ ├── 02_build_gld_dim_customers.ipynb
│ │ └── 03_build_gld_dim_calendar.ipynb
│ └── fact_tables/
│ └── 01_build_gld_fact_order_items.ipynb
│
├── pipelines/
│
├── .gitignore
├── README.md
└── requirements.txt
The project processes multiple business datasets representing various operational domains within the ShopVista platform.
The initial data load processes all historical records into the Bronze layer.
datasets/
historical-full-load/
New files arriving daily are processed using incremental ingestion.
datasets/
incremental-load/
The complete pipeline follows the Medallion Architecture.
ShopVista System
│
▼
CSV Files
│
▼
Azure Data Lake Storage Gen2
│
▼
Unity Catalog External Volume
│
▼
Azure Databricks
│
▼
Bronze Layer
│
▼
Silver Layer
│
▼
Gold Layer
│
▼
Power BI Dashboard

Azure Data Lake Storage
│
├── raw/
│ ├── brands/
│ ├── categories/
│ ├── customers/
│ ├── products/
│ ├── orders/
│ ├── shipments/
│ └── returns/
│
├── bronze/
│
├── silver/
│
└── gold/
Unity Catalog provides centralized governance, metadata management, and secure access across all Lakehouse assets.
Catalog
│
└── ecommerce
│
├── raw
│
├── bronze
│
├── silver
│
└── gold
The catalog enables:
The Bronze layer is the first stage of the Medallion Architecture and serves as the raw ingestion layer of the Lakehouse.
Its primary objective is to ingest source datasets into Delta Lake while preserving the original business data with minimal transformation.
The Bronze layer acts as the immutable source of truth for downstream processing.
The Bronze layer is responsible for:
Azure Data Lake Storage
│
▼
Raw CSV Files
│
▼
Schema Validation
│
▼
Metadata Columns
│
▼
Delta Tables
│
▼
Bronze Layer
Each Bronze table stores additional metadata columns to support lineage and auditing.
| Column | Description |
|---|---|
| _source_file | Original file location |
| _ingest_time | Timestamp of ingestion |
| Table |
|---|
| bronze.brz_brands |
| bronze.brz_categories |
| bronze.brz_customers |
| bronze.brz_products |
| bronze.brz_calendar |
| bronze.brz_orders |
| bronze.brz_shipments |
| bronze.brz_returns |
02_bronze/
│
├── dimension_tables/
│ └── 01_ingest_dimensions.ipynb
│
└── fact_tables/
├── 01_ingest_orders.ipynb
├── 02_ingest_shipments.ipynb
└── 03_ingest_returns.ipynb
The Silver layer transforms raw business data into clean, validated, and standardized datasets suitable for analytical processing.
This layer applies business rules, performs data cleansing, removes duplicates, and enforces referential integrity.
The Silver layer performs:
Bronze Layer
│
▼
Duplicate Removal
│
▼
Null Handling
│
▼
Business Validation
│
▼
Data Standardization
│
▼
Silver Layer
The following validations are implemented.
Ensures incoming datasets match expected schemas.
Critical business columns are checked for missing values.
Example:
Duplicate records are removed based on business keys.
Ensures relationships exist between:
Orders ↔ Customers
Orders ↔ Products
Products ↔ Categories
Products ↔ Brands
Standardizes
| Table |
|---|
| silver.slv_brands |
| silver.slv_categories |
| silver.slv_customers |
| silver.slv_products |
| silver.slv_calendar |
| silver.slv_orders |
| silver.slv_shipments |
| silver.slv_returns |
03_silver/
│
├── dimension_tables/
│ ├── 01_transform_brand_dim.ipynb
│ ├── 02_transform_category_dim.ipynb
│ ├── 03_transform_product_dim.ipynb
│ ├── 04_transform_customer_dim.ipynb
│ └── 05_transform_calendar_dim.ipynb
│
└── fact_tables/
├── 01_transform_orders.ipynb
├── 02_transform_shipments.ipynb
└── 03_transform_returns.ipynb

The Gold layer contains analytics-ready datasets optimized for reporting, business intelligence, and decision-making.
This layer integrates all cleaned datasets into a Star Schema model consisting of Fact and Dimension tables.
The Gold layer provides
Silver Layer
│
▼
Join Fact & Dimension Tables
│
▼
Business Calculations
│
▼
Aggregation
│
▼
Star Schema
│
▼
Gold Layer
The following Dimension tables are created.
Contains
Contains
Contains
Stores all customer order transactions.
Stores shipment events.
Stores product return information.
| Table |
|---|
| gold.dim_product |
| gold.dim_customer |
| gold.dim_calendar |
| gold.fact_orders |
| gold.fact_shipments |
| gold.fact_returns |

The Gold layer follows a traditional Star Schema.
dim_customer
│
│
dim_product ---- fact_orders ---- dim_calendar
│
dim_brand
│
dim_category
This model provides:
To improve reporting performance, the project generates aggregated summary tables.
Examples include
Fact Orders
│
▼
Business Aggregations
│
▼
Daily Summary
│
▼
Power BI
The Gold layer supports reporting for:

Azure Databricks Auto Loader is used to automatically detect and ingest newly arrived files from Azure Data Lake Storage Gen2.
This eliminates the need for manual file management and supports scalable incremental ingestion.
New CSV Files
│
▼
Azure Data Lake
│
▼
Auto Loader
│
▼
Bronze Delta Tables
Structured Streaming enables near real-time processing of incoming datasets.
Instead of processing data only in batches, new files are automatically processed as they arrive.
New Files
│
▼
Structured Streaming
│
▼
Bronze
│
▼
Silver
│
▼
Gold

The project uses Databricks Workflows to orchestrate end-to-end ETL execution.
The workflows automate:
Historical Load
│
▼
Bronze Pipeline
│
▼
Silver Pipeline
│
▼
Gold Pipeline
│
▼
Daily Summary
│
▼
Power BI Refresh
Raw Files
│
▼
Azure Data Lake Storage
│
▼
Auto Loader
│
▼
Bronze Layer
│
▼
Silver Layer
│
▼
Gold Layer
│
▼
Daily Summary
│
▼
Power BI Dashboard

The Gold layer provides analytics-ready datasets that are consumed by Power BI to generate interactive dashboards for business users.
The dashboards enable stakeholders to monitor sales performance, customer behavior, shipment status, and product returns in near real-time.
Gold Layer
│
▼
Power BI Dataset
│
▼
Interactive Dashboards
Provides a high-level overview of business performance.
KPIs include:
Displays
Provides
Displays
Provides

Unity Catalog provides centralized governance for all Lakehouse assets.
It manages
Catalog
│
└── ecommerce
│
├── raw
├── bronze
├── silver
└── gold
Users
│
▼
Unity Catalog
│
▼
Catalog
│
▼
Schema
│
▼
Table
The project incorporates multiple validation checks throughout the Medallion Architecture.
Raw Data
│
▼
Schema Validation
│
▼
Duplicate Removal
│
▼
Business Rules
│
▼
Gold Validation
The project applies multiple optimization techniques to improve query performance.

| Category | Technology |
|---|---|
| Cloud Platform | Microsoft Azure |
| Data Lake | Azure Data Lake Storage Gen2 |
| Data Processing | Azure Databricks |
| Programming Language | Python |
| Big Data Framework | Apache Spark |
| Data Processing API | PySpark |
| Storage Format | Delta Lake |
| Governance | Unity Catalog |
| Streaming | Structured Streaming |
| Incremental Ingestion | Auto Loader |
| Analytics | Power BI |
| Version Control | Git & GitHub |
| Metric | Value |
|---|---|
| Architecture | Lakehouse |
| Cloud Platform | Azure |
| Data Lake | ADLS Gen2 |
| Processing Engine | Databricks |
| Storage Format | Delta Lake |
| Governance | Unity Catalog |
| Streaming | Structured Streaming |
| Incremental Load | Auto Loader |
| Reporting | Power BI |
| Scalability | High |
| Availability | High |
This project demonstrates practical implementation of:
Detailed implementation guides are available in the docs/ directory.
| Documentation | Description |
|---|---|
| Azure Account Setup | Azure subscription and resource creation |
| Azure Databricks Setup | Workspace configuration |
| ADLS Setup | Storage account and containers |
| Unity Catalog | Governance and permissions |
| Raw Schema | Source schema definitions |
| Bronze Layer | Raw ingestion implementation |
| Silver Layer | Data transformation and quality |
| Gold Layer | Data modeling and analytics |
| Databricks Workflows | Job scheduling and orchestration |
The repository includes screenshots demonstrating:
The ShopVista Data Modernization Platform demonstrates the implementation of a modern Azure Lakehouse architecture using Azure Data Lake Storage Gen2, Azure Databricks, Delta Lake, Unity Catalog, Auto Loader, Structured Streaming, and Power BI.
The solution transforms fragmented e-commerce datasets into a centralized, governed, and analytics-ready platform by applying the Medallion Architecture (Bronze → Silver → Gold). It automates data ingestion, enforces data quality, builds optimized star-schema models, and delivers interactive business dashboards through Power BI.
This project showcases enterprise-grade Data Engineering practices including scalable ETL design, cloud-native data processing, governance, performance optimization, and business intelligence integration, providing a strong foundation for real-world Azure Data Engineering solutions.