Welcome to the Data Warehouse and Engineering Project repository! π
This project demonstrates a comprehensive data warehousing solution, from architecting a scalable SQL Data Warehouse from scratch to enabling data-driven decision-making. Designed as a portfolio project, it highlights industry best practices in Data Engineering, ETL processing and Data Modeling.
The data architecture for this project follows Medallion Architecture Bronze, Silver, and Gold layers:
- Bronze Layer: Stores raw data as-is from the source systems. Data is ingested from CSV Files into SQL Server Database.
- Silver Layer: This layer includes data cleansing, standardization, and normalization processes to prepare data for analysis.
- Gold Layer: Houses business-ready data modeled into a star schema required for reporting and analytics.
This project involves:
- Data Architecture: Designing a Modern Data Warehouse Using Medallion Architecture Bronze, Silver, and Gold layers.
- ETL Pipelines: Extracting, transforming and loading data from source systems into the warehouse.
- Data Modeling: Developing fact and dimension tables optimized for analytical queries.
- Data Delivery: Provisioning clean, aggregated datasets to support BI reporting and advanced analytics.
π― This repository is an excellent resource for professionals and students looking to showcase expertise in:
- Data Architect
- Data Engineering
- ETL Pipeline Developer
- SQL Development
- Data Modeling
- Analytics Engineering
Everything is for Free!
- Datasets: Access to the project dataset (csv files).
- SQL Server Express: Lightweight server for hosting your SQL database.
- SQL Server Management Studio (SSMS): GUI for managing and interacting with databases.
- Git Repository: Set up a GitHub account and repository to manage, version, and collaborate on your code efficiently.
- DrawIO: Design data architecture, models, flows, and diagrams.
Develop a modern data warehouse using SQL Server to consolidate sales data, enabling analytical reporting and informed decision-making.
- Data Sources: Import data from two source systems (ERP and CRM) provided as CSV files.
- Data Quality: Cleanse and resolve data quality issues prior to analysis.
- Integration: Combine both sources into a single, user-friendly data model designed for analytical queries.
- Scope: Focus on the latest dataset only; historization of data is not required.
- Documentation: Provide clear documentation of the data model to support both business stakeholders and analytics teams.
- β Analyze & Understand the Requirements
- β Choose Data Management Approach
- β Design the Layers
- β Draw the Data Architecture (Draw.io)
- β Create Detailed Project Tasks
- β Define Project Naming Conventions
- β Create Git Repo & Prepare The Repo Structure
- β Create Database & Schemas
- β Analyzing: Source Systems
- β Coding: Data Ingestion
- β Validating: Data Completeness & Schema Checks
- β Document: Draw Data Flow (Draw.io)
- β Commit: Code in Git Repo
- β Analyzing: Explore & Understand Data
- β Document: Draw Data Integration (Draw.io)
- β Coding: Data Cleansing
- β Validating: Data Correctness Checks
- β Document: Extend Data Flow (Draw.io)
- β Commit: Code in Git Repo
- β Analyzing: Explore Business Objects
- β Coding: Data Integration
- β Validating: Data Integration Checks
- β Document: Draw Data Model of Star Schema (Draw.io)
- β Document: Create Data Catalog
- β Document: Extend Data Flow (Draw.io)
- β Commit: Code in Git Repo
sql-data-warehouse-project/ # Repository Root
β
βββ datasets/ # Raw datasets (CRM and ERP source data)
β βββ source_crm/ # Source system: Customer Relationship Management
β β βββ cust_info.csv
β β βββ prd_info.csv
β β βββ sales_details.csv
β βββ source_erp/ # Source system: Enterprise Resource Planning
β βββ CUST_AZ12.csv
β βββ LOC_A101.csv
β βββ PX_CAT_G1V2.csv
β
βββ docs/ # Project documentation and architecture details
β βββ data_architecture.drawio # Draw.io file shows the project's architecture
β βββ data_catalog.md # Metadata: Field descriptions and data dictionary
β βββ data_flow_diagram.drawio # Draw.io file for the data flow diagram
β βββ data_integration_model.drawio # Draw.io file showing how tables are related
β βββ data_model.drawio # Draw.io file for data model (star schema)
β βββ naming_conventions.md # Consistent naming guidelines for tables, columns, and files
β
βββ scripts/ # SQL scripts for ETL and transformations
β βββ init_database.sql # Environment setup: Script to initialize the Data Warehouse and schemas
β βββ bronze/ # Data Ingestion: Scripts for extracting and loading raw data
β β βββ ddl_bronze.sql
β β βββ proc_load_bronze.sql
β βββ silver/ # Data Transformation: Cleaning and standardization
β β βββ ddl_silver.sql
β β βββ proc_load_silver.sql
β βββ gold/ # Data Modeling: Final analytical layer (Star Schema)
β βββ ddl_gold.sql
β
βββ tests/ # Data Quality checks and validation scripts
β βββ quality_checks_silver.sql # Quality validation scripts for the silver layer
β βββ quality_checks_gold.sql # Quality validation scripts for the gold layer
β
βββ .gitignore # Files and directories to be ignored by Git
βββ LICENSE # License information for the repository
βββ README.md # Project overview and documentation
This project is licensed under the MIT License. You are free to use, modify, and share this project with proper attribution.
Hi! I'm Abdullah Emad, a Data Engineer driven by a core mission: Transforming raw data into reliable, actionable assets.
I focus on architecting robust infrastructure that makes data clean, organized, and ready for action. I believe that well-architected data is the backbone of every great decision, and Iβm dedicated to implementing best practices to ensure data quality and scalability.
Letβs connect to discuss data, insights, or professional opportunities:
