| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
An end-to-end Azure Data Factory (ADF) project demonstrating real-world data engineering patterns — REST API ingestion, on-premises file ingestion, incremental loading, watermark management, orchestration, alerting, audit logging, and REST API pagination.
I've documented the incremental loading concepts and implementation behind this project in a 4-part Medium series. Click a button below to jump straight to the article.
💡 For the incremental pipelines in this repository, start with Part 1 and follow the series sequentially.
This project contains 7 Azure Data Factory pipelines, each covering a common real-world data engineering scenario.
| # | Pipeline | Key Concept |
|---|---|---|
| 1 | pl_API_Ingestion | REST API → ADLS Gen2 |
| 2 | pl_OnPremFiles_To_AzureBlobBronze | On-Prem Files → ADLS Gen2 |
| 3 | pl_SQLtoAzure_Incremental_Json | Incremental Load + JSON Watermark |
| 4 | pl_dailydata_load_with_alerts | Orchestration + Logic App Alerts |
| 5 | pl_onPremSQl_To_AzureSQL_Incremental_WatermarkTable | Multi-Table Incremental Load |
| 6 | pl_onPremSQl_To_AzureSQL_Incremental_WatermarkTable_ScriptActivity | Incremental Load + Audit Logging |
| 7 | pl_paginationExample | REST API Pagination |
pl_API_Ingestion
Pulls DimAirport.json from GitHub Raw content into the ADLS Gen2 Bronze layer.
GitHub Raw → Copy API Data → ADLS Gen2 Bronze
pl_OnPremFiles_To_AzureBlobBronze
Migrates 3 CSV files in parallel from an on-premises Windows file server to ADLS Gen2 Bronze: DimAirline.csv, DimFlight.csv, DimPassenger.csv.
On-Prem Windows File Server → ForEach (Parallel) → Copy Activity → ADLS Gen2 Bronze
pl_SQLtoAzure_Incremental_Json
Performs an incremental load from Azure SQL FactBookings to ADLS Gen2 in Parquet format, using a JSON file as the watermark store.
LastLoad Lookup ─┐
├─→ Copy SQL Data → Parquet
LatestLoad Lookup ┘
↓
Update Watermark
SELECT * FROM dbo.FactBookings
WHERE booking_date > '@{activity('LastLoad').output.firstRow.lastload}'
AND booking_date <= '@{activity('LatestLoad').output.firstRow.LatestLoad}';📖 Detailed explanation in Part 1 of the Medium series above.
pl_dailydata_load_with_alerts
Orchestrator pipeline that calls the incremental pipeline and reports execution status to an Azure Logic App.
DailyDataLoad → Execute Pipeline → pl_SQLtoAzure_Incremental_Json → Call Logic App
{
"pipeline_name": "@{pipeline().Pipeline}",
"run_id": "@{pipeline().RunId}",
"status": "@{activity('DailyDataLoad').Status}",
"error": "@{if(equals(activity('DailyDataLoad').Status,'Failed'), string(activity('DailyDataLoad').error), 'No Error')}"
}pl_onPremSQl_To_AzureSQL_Incremental_WatermarkTable
Multi-table incremental loading from On-Premises SQL Server to Azure SQL using a centralized watermark table, for dbo.iplteams and dbo.salesitems, both keyed on a last_updated watermark column.
ForEach Table
↓
Old Watermark ─┐
├→ If Condition ─→ TRUE → Copy → Update Watermark
New Watermark ─┘ → FALSE → Skip
📖 Detailed explanation in the Medium series above.
pl_onPremSQl_To_AzureSQL_Incremental_WatermarkTable_ScriptActivity
An enhanced version of Pipeline 5 adding execution timing, a Script Activity for watermark updates, success/failure audit logging, rows-copied tracking, and error tracking.
Set Start Time → Old Watermark Lookup → New Watermark Lookup → If Condition
↓
Copy → Success/Failed → Audit
UPDATE dbo.watermarktable
SET WatermarkValue = @last_updated
WHERE TableName = @tableName;📖 Detailed explanation in the Medium series above.
pl_paginationExample
Ingests Pokémon data from the PokéAPI across multiple pages using ADF's native RANGE pagination.
PokéAPI → Web Activity → Get Total Count → Copy Activity → RANGE Pagination → ADLS Gen2 Bronze
REST API ingestion · ADLS Gen2 · On-Premises File Server · Self-hosted Integration Runtime · ForEach activity · Parallel processing · Pipeline parameters · Dataset parameters · Dynamic expressions · Incremental loading · JSON watermark · Watermark table · Azure SQL Upsert · Execute Pipeline · Web Activity · Logic App integration · Script Activity · Audit logging · Error handling · REST API pagination · RANGE pagination
I built multiple Azure Data Factory pipelines covering real-world data engineering scenarios — REST API ingestion, parallel on-premises file migration, watermark-based incremental loading, multi-table processing using ForEach, Azure SQL upserts, Logic App alerts, Script Activity-based watermark management, audit logging, and REST API pagination.
github.com/Prabhas92/ADFProject
Chethan Prabhas
Azure Data Factory • SQL • Azure • Python • Data Engineering
| Back | FazBrowse Home | New Git URL |