Logo Lanfrica
  • Home
  • Atlas
  • Insights
  • Docs
  • Sign in

© 2026 Lanfrica. All rights reserved. All copyrights of the resources shown on the Lanfrica website belong to the original copyright holders, unless explicitly stated otherwise.

kxmaie/Egypt-Travel-Weather-Data-Pipeline

Domain:

geospatialdigital infrastructure

Record type:

software
Creator:
kxm
Host:
An automated End-to-End Data Pipeline that integrates Weather APIs, TomTom POIs, and hospitality datasets (Hotels/Restaurants) into Snowflake using Airflow. Implementing a Medallion Architecture (Bronze-Silver-Gold) with SQL Server as a source and Docker for orchestration and dbt for transformation # Weather & hospitality data pipeline End-to-end ELT built on **Astronomer Airflow**: ingest APIs and CSV files into **Microsoft SQL Server** (bronze/silver), load into **Snowflake**, then model with **dbt** (staging in `silver_layer`). ## Architecture ```text Open-Meteo (weather) ──┐ TomTom (landmarks) ───┼──► SQL Server (Bronze → Silver) ──► Snowflake RAW_DATA ──► dbt staging ──► dbt marts (gold) CSV (hotels / restaurants) ─┘ ``` Airflow DAGs (scheduled every 20 minutes): 1. **`ingestion_dag`** — weather, landmarks, restaurants CSV, hotels CSV 2. **`transformation_dag`** — builds silver tables from bronze (Python + pandas), after `ExternalTaskSensor` on ingestion 3. **`loader_dag`** — copies tables to Snowflake with `write_pandas`, after sensor on transformation `ExternalTaskSensor` uses `execution_delta` to align logical dates between DAGs; tune it if you change schedules. ## Repository layout | Path | Role | |------|------| | `dags/` | Airflow DAG definitions | | `include/ingestion/` | API + CSV load into SQL Server | | `include/transformations/` | Bronze → silver transforms | | `include/loaders/` | SQL Server → Snowflake | | `include/dbt_project/` | dbt: `models/staging` (silver), `models/marts` (gold), tests | | `include/*.csv` | Sample static files (paths in DAGs assume Astro `/usr/local/airflow/include/`) | ## Prerequisites - Docker and Astro CLI for local Airflow - Reachable **SQL Server** and **Snowflake** accounts - **dbt** with Snowflake adapter (for running models outside Astro if you want) ## Airflow connections Configure in the Airflow UI or `airflow_settings.yaml` (local): | Connection ID | Type | Purpose | |---------------|------|---------| | `sql_server_conn` | Microsoft SQL Server | Bronze/silver tables | | `conn_snowflake` | Snowflake | `RENTAL_WEATHER_DB.RAW_DATA` loads | **TomTom API key** (landmarks task): set Airflow Variable `TOMTOM_API_KEY` or environment variable `TOMTOM_API_KEY`. For local Astro, use `airflow_settings.yaml` …

Visit

github.com