Ответ
Выбор инструментов зависел от масштаба данных и этапа пайплайна:
-
Извлечение (Extract):
- Для API: библиотеки
requests(Python) или готовые коннекторы в Airflow (например,HttpSensor). - Для баз данных:
psycopg2(PostgreSQL),SQLAlchemy,pymongo(MongoDB). - Для облачных хранилищ:
boto3(AWS S3),google-cloud-storage(GCS).
- Для API: библиотеки
-
Трансформация (Transform):
- Pandas – для данных, умещающихся в память на одном сервере. Использовал для очистки, агрегации, feature engineering.
import pandas as pd df = pd.read_sql("SELECT * FROM sales", engine) df['profit'] = df['revenue'] - df['cost'] - PySpark – для распределённой обработки больших датасетов. Основной инструмент для сложных ETL-джобов.
- SQL (dbt) – для декларативной трансформации данных прямо в хранилище (Data Warehouse). Писал модели в dbt для построения витрин.
- Pandas – для данных, умещающихся в память на одном сервере. Использовал для очистки, агрегации, feature engineering.
-
Загрузка (Load):
- Запись обратно в БД (
to_sqlв Pandas,write.jdbcв Spark). - Выгрузка в колоночные форматы для аналитики: Parquet или Avro в S3/HDFS.
- Загрузка в аналитические хранилища: Google BigQuery или Amazon Redshift.
- Запись обратно в БД (
-
Оркестрация: Apache Airflow для управления всем пайплайном, обработки сбоев и соблюдения расписания.