An end-to-end AWS Data Engineering pipeline built using Amazon S3, Apache Spark, and PySpark following the Medallion Architecture (Bronze β Silver β Gold).
This project demonstrates how to build a scalable cloud-based data lake by ingesting raw e-commerce data into Amazon S3, transforming it with PySpark, implementing incremental loading, and creating analytics-ready datasets.
This project simulates a real-world e-commerce data platform where customer, product, and order datasets are processed through a complete ETL pipeline.
The pipeline:
- Stores raw data in Amazon S3 (Bronze layer)
- Cleans and transforms data using PySpark
- Stores processed data as Parquet files (Silver layer)
- Performs incremental loading to process only new records
- Creates business-ready Gold layer analytics tables
This project demonstrates practical Data Engineering concepts including:
- Data Lake Architecture
- ETL Pipeline Development
- PySpark Transformations
- Incremental Data Processing
- Data Modeling
- Analytics Data Preparation
Source CSV Files
β
βΌ
Amazon S3 Bucket
β
βββββββββββββββββ΄ββββββββββββββββ
βΌ βΌ
Bronze Layer Raw CSV Files
β
βΌ
PySpark Transformations
β
βΌ
Silver Layer
(Clean Parquet Files)
β
βΌ
Incremental Loading
(left_anti Join)
β
βΌ
Gold Layer
β
ββββββββΌββββββββββ
βΌ βΌ βΌ
Customer Daily Product
Summary Sales Performance
| Technology | Purpose |
|---|---|
| Amazon S3 | Cloud Data Lake Storage |
| Apache Spark | Distributed Data Processing |
| PySpark | ETL Development |
| Python | Data Processing |
| Parquet | Optimized Storage Format |
| SQL | Analytics & Validation |
| Git & GitHub | Version Control |
aws-data-engineering-project
β
βββ architecture/
β
βββ data/
β
βββ docs/
β
βββ notebooks/
β
βββ scripts/
β βββ bronze_ingestion.py
β βββ silver_transformation.py
β βββ incremental_load.py
β βββ gold_transformation.py
β
βββ README.md
βββ requirements.txt
βββ .gitignore
The Bronze layer stores raw source data exactly as received.
- Customers
- Products
- Orders
- Raw CSV ingestion
- Amazon S3 storage
- Source data organization
Example:
bronze/
βββ customers/
βββ products/
βββ orders/
The Silver layer contains cleaned and transformed datasets.
- Schema validation
- Data cleaning
- Null handling
- Data type conversion
- Duplicate removal
- Standardization
- Parquet
Example:
silver/
βββ customers/
βββ products/
βββ orders/
Instead of processing the entire dataset every time, the pipeline processes only newly arrived records.
Implementation:
- Read existing Silver data
- Read new Bronze data
- Compare records using
order_id - Identify new records using Spark left_anti join
- Append only new records to the Silver layer
Benefits:
- Faster processing
- Prevents duplicate records
- Production-style ETL workflow
The Gold layer contains business-ready datasets for reporting and analytics.
Provides:
- Total Orders
- Total Quantity Purchased
- Total Sales
Provides:
- Daily Orders
- Daily Quantity Sold
- Daily Revenue
Provides:
- Product Revenue
- Quantity Sold
- Product Rankings
- Medallion Architecture (Bronze β Silver β Gold)
- AWS S3 Data Lake
- PySpark ETL Pipeline
- Incremental Data Loading
- Duplicate Prevention
- Parquet Storage
- Business Analytics Tables
- Production-inspired Project Structure
- Git Version Control
Synthetic e-commerce datasets containing:
- 100 Customers
- 10 Products
- 500+ Orders
Additional order records are used to demonstrate incremental loading.
git clone https://github.com/anshu02042002/aws-data-engineering-project.gitThe project stores raw, cleaned, and analytics-ready datasets in Amazon S3 following the Medallion Architecture.
The pipeline processes only new records using a left_anti join, preventing duplicate data from being loaded into the Silver layer.
pip install -r requirements.txtEnsure your AWS credentials are configured locally.
bronze_ingestion.py
β
silver_transformation.py
β
incremental_load.py
β
gold_transformation.py
Aspiring Data Engineer passionate about building scalable cloud data pipelines using AWS and Apache Spark.
- GitHub: https://github.com/anshu02042002
- LinkedIn: https://www.linkedin.com/in/anshu-gupta-de
- Python
- SQL
- Apache Spark
- PySpark
- AWS S3
- ETL Pipeline Development
- Incremental Data Loading
- Data Lake Architecture
- Parquet
- Git & GitHub


