Ты только начинаешь создавать 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 дата-инженеров, ищущих реальный опыт и сильное портфолио.
🔔 Подписывайтесь и ставьте лайк, если хотите больше практических видео!
Ссылки:
- Менторство/консультации по IT – https://korsak0v.notion.site/Data-Engineer-185c62fdf79345eb9da9928356884ea0
- TG канал – https://t.me/DataLikeQWERTY
- Instagram – https://www.instagram.com/i__korsakov/
- Habr – https://habr.com/ru/users/k0rsakov/publications/articles/
- Git-репозиторий из видео – https://github.com/k0rsakov/pet_project_simple_etl_airflow
- Лучший пет-проект для дата-инженера (The best pet-project for a data-engineer) – https://youtu.be/MQPHgUQvKnI
- Как зайти в контейнер? / How do I enter the container? – https://youtu.be/bDY7M0YHakk
- Что такое контекст DAG и как его использовать? / What is a DAG context and how to use it? – https://youtu.be/TiSFGmLV8l0
- Пишем первый простой DAG / Writing the first simple DAG – https://youtu.be/Wt3IwjsqzAI
- Как установить пакеты в Airflow с использованием Dockerfile? / How install packages in Airflow? – https://youtu.be/Bazz6N6X8Ek
- Как запустить Airflow в Docker? / How do I run Airflow in Docker? – https://youtu.be/RCKeW35WY-o
- Что такое Docker network и как это работает? / What is the Docker network and how does it work? – https://youtu.be/gn_dXV9HrIo
- Как загрузить данные в PostgreSQL при помощи Python? / How do upload data to PostgreSQL using Python – https://youtu.be/I_PXPlVFmPw
- Как работает S3 и зачем он нужен в 2025 году? – https://youtu.be/Vfe5H3bD2SQ
Тайминги:
- 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
Порядок работы над проектом:
- Создание виртуального окружения
- Получение
api_keyот weatherapi - Поднятие инфраструктуры
- Подключение к Minio
- Создание
bucketв Minio (в коде прописанprod) - Создание
access_key - Создание
secret_key
- Создание
- Создание
Variablesв Airflow через UI или create_variable.py - Создание
Connectionв Airflow через UI или create_connection.py - Подключение к PostgresSQL
- Создание таблицы в PostgresSQL
- Запуск DAG в Airflow
python3.12 -m venv venv && \
source venv/bin/activate && \
pip install --upgrade pip && \
pip install poetry && \
poetry lock && \
poetry installpoetry lock && \
poetry installdocker compose up -dЕсли отображаются исключения, то необходимо выполнить команду ниже, так как в проекте используется своя сборка Airflow:
docker compose buildПараметры подключения стандартные:
login:minioadminpassword:minioadmin
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
);