Skip to content

raivskal/YT_ELT

Repository files navigation

Youtube API - ELT

Architecture

Project Goal

This project demonstrates an end-to-end ELT pipeline utilizing modern data engineering tools such as Python, Docker, and Apache Airflow. It incorporates industry best practices, including automated unit testing, data quality validation, and CI/CD workflows, ensuring a robust and reliable data integration process.

Dataset

Data is sourced via the YouTube Data API v3. While this implementation defaults to fetching data from the 'MrBeast' channel, the pipeline is fully configurable to support any YouTube channel by updating the relevant handle in the configuration settings.

Summary

The project leverages Apache Airflow for workflow orchestration, deployed via Docker containers for consistency and scalability. The ELT workflow consists of the following stages:

  1. Extraction: YouTube API data is retrieved using modular Python scripts.
  2. Loading: Raw data is initially persisted into a staging schema within a containerized PostgreSQL database.
  3. Transformation: Data undergoes processing and validation before being loaded into the core schema for analytical use.

The pipeline supports both initial full loads and incremental upserts to maintain data freshness. Once the data reaches the core schema and passes automated quality checks, it is optimized and ready for analysis.

The following metrics are extracted:

  • Video ID
  • Video Title
  • Upload Date
  • Duration
  • Video Views
  • Likes Count
  • Comments Count

Tools & Technologies

  • Containerization - Docker, Docker-Compose
  • Orchestration - Airflow
  • Data Storage - Postgres
  • Languages - Python, SQL
  • Testing - SODA, pytest
  • CI-CD - Github Actions

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors