Вопрос проверяет знание архитектуры ETL-процессов в системах рекомендаций, включая инструменты для обработки данных.
ETL-контур включает сбор данных (Hadoop), их обработку (Spark) и хранение (ClickHouse). Данные преобразуются в удобный для анализа формат, а затем загружаются в хранилище для быстрого доступа.
Основные этапы ETL:
Extract (извлечение)
Данные собираются из логов, баз данных или API.
Инструменты: Hadoop (HDFS), Kafka.
Transform (преобразование)
Очистка, агрегация и обогащение данных.
Инструменты: Spark (для распределенной обработки).
Load (загрузка)
Данные сохраняются в колоночном хранилище (ClickHouse).
Это ускоряет аналитические запросы.
Пример пайплайна:
# Spark-обработка (PySpark)
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("ETL").getOrCreate()
df = spark.read.json("hdfs://data/logs.json")
processed_df = df.groupBy("user_id").count()
processed_df.write.parquet("hdfs://processed_data/")Когда использовать:
Для построения рекомендательных систем.
Для обработки больших объемов данных.