Какие инструменты использовал для обработки данных в pipeline?

«Какие инструменты использовал для обработки данных в pipeline?» — вопрос из категории ETL и пайплайны данных, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Выбор инструментов зависел от масштаба данных и этапа пайплайна:

  • Извлечение (Extract):

    • Для API: библиотеки requests (Python) или готовые коннекторы в Airflow (например, HttpSensor).
    • Для баз данных: psycopg2 (PostgreSQL), SQLAlchemy, pymongo (MongoDB).
    • Для облачных хранилищ: boto3 (AWS S3), google-cloud-storage (GCS).
  • Трансформация (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 для построения витрин.
  • Загрузка (Load):

    • Запись обратно в БД (to_sql в Pandas, write.jdbc в Spark).
    • Выгрузка в колоночные форматы для аналитики: Parquet или Avro в S3/HDFS.
    • Загрузка в аналитические хранилища: Google BigQuery или Amazon Redshift.
  • Оркестрация: Apache Airflow для управления всем пайплайном, обработки сбоев и соблюдения расписания.