Skip to content

k0rsakov/pet_project_simple_etl_airflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ETL Лучшие Практики: Полное руководство для начинающих и не только (ETL Best Practices)

Ты только начинаешь создавать ETL процессы или ты хочешь улучшить свои навыки в создании ETL процессов? Тогда это видео для тебя. В этом видео я покажу худшие и лучшие практики при создании ETL-процессов. Также мы разберём что такое "плохо" и что такое "хорошо".

📌 Что вы узнаете:

  • Как собирать RAW данные
  • Как работать с API
  • Лучшие практики для создания ETL-процессов
  • Худшие практики для создания ETL-процессов
  • Рекомендации при создании ETL-процессов

💻 Менторство/консультации по IT – https://korsak0v.notion.site/Data-Engineer-185c62fdf79345eb9da9928356884ea0

📂 Полный проект на GitHub: https://github.com/k0rsakov/pet_project_simple_etl_airflow

👨‍💻 Подходит для начального уровня, junior и middle дата-инженеров, ищущих реальный опыт и сильное портфолио.

🔔 Подписывайтесь и ставьте лайк, если хотите больше практических видео!

Ссылки:

Тайминги:

  • 00:00 – Начало
  • 00:13 – Что такое ETL
  • 01:43 – Про источник данных
  • 02:27 – Разбор структуры проекта
  • 03:11 – Разбор "плохой" практики реализации ETL
  • 08:00 – Запуск "плохой" практики реализации ETL
  • 14:04 – Разбор почему работать через worker плохо
  • 14:51 – Разбор "хорошей" практики реализации ETL
  • 19:57 – Подведение итогов

#dataengineer #petproject #airflow #postgresql #minio #metabase #dwh #python #dataengineering #etl #docker #portfolio #датаинженер #etl #elt #s3 #datalake

Порядок работы над проектом:

  1. Создание виртуального окружения
  2. Получение api_key от weatherapi
  3. Поднятие инфраструктуры
  4. Подключение к Minio
    • Создание bucket в Minio (в коде прописан prod)
    • Создание access_key
    • Создание secret_key
  5. Создание Variables в Airflow через UI или create_variable.py
  6. Создание Connection в Airflow через UI или create_connection.py
  7. Подключение к PostgresSQL
  8. Создание таблицы в PostgresSQL
  9. Запуск DAG в Airflow

Команды и скрипты

Создание виртуального окружения

python3.12 -m venv venv && \
source venv/bin/activate && \
pip install --upgrade pip && \
pip install poetry && \
poetry lock && \
poetry install

Добавление новых зависимостей в окружение

poetry lock && \
poetry install

Поднятие инфраструктуры

docker compose up -d

Если отображаются исключения, то необходимо выполнить команду ниже, так как в проекте используется своя сборка Airflow:

docker compose build

Подключение к Minio

Параметры подключения стандартные:

  • login: minioadmin
  • password: minioadmin

Создание таблицы в PostgresSQL

DROP TABLE IF EXISTS public.weather_raw;

CREATE TABLE IF NOT EXISTS public.weather_raw (
	location_name text NULL,
	location_region text NULL,
	location_country text NULL,
	location_lat float8 NULL,
	location_lon float8 NULL,
	location_tz_id text NULL,
	location_localtime_epoch int8 NULL,
	location_localtime text NULL,
	forecastday_date text NULL,
	params jsonb NULL
);