Ответ
ETL (Extract, Transform, Load) — это процесс извлечения данных из различных источников, их преобразования и загрузки в целевое хранилище (например, базу данных или data warehouse).
- Extract (Извлечение): Получение сырых данных из источников (API, файлы, БД).
- Transform (Преобразование): Очистка, агрегация, обогащение и приведение данных к нужному формату.
- Load (Загрузка): Запись обработанных данных в целевую систему.
Для реализации ETL в Python часто используют связку библиотек Pandas для трансформации и SQLAlchemy для работы с базами данных.
Пример простого ETL-пайплайна:
import pandas as pd
from sqlalchemy import create_engine
# 1. Extract: Чтение данных из CSV-файла
df = pd.read_csv('source_data.csv')
# 2. Transform: Очистка данных и преобразование типов
df.dropna(inplace=True) # Удаление строк с пропущенными значениями
df['order_date'] = pd.to_datetime(df['order_date'])
df['revenue'] = df['quantity'] * df['price']
# 3. Load: Загрузка данных в базу данных PostgreSQL
engine = create_engine('postgresql://user:password@host:port/database')
df.to_sql('processed_orders', engine, if_exists='replace', index=False)
print("ETL-процесс успешно завершен.")
Для управления сложными, распределенными и регулярными ETL-процессами используются специализированные инструменты-оркестраторы, такие как Apache Airflow или Prefect.