Облачные вычисления

Data Lakes и Analytics

Netflix анализирует 4.5 миллиарда событий в день для рекомендаций. Airbnb переработала всю BI платформу на S3 Data Lake + Spark. Lyft запросы которые занимали 2 часа в Hive, теперь выполняются за 2 минуты в Redshift.

  • **Netflix:** S3 Data Lake с Apache Iceberg + Spark для ETL. 4.5B событий/день в Parquet формате. BigQuery Omni для cross-cloud аналитики. Iceberg time travel для backfill и debugging.
  • **Airbnb:** 'Minerva' - Data Lake на S3 с Delta Lake. Athena для ad-hoc запросов (data scientists), Redshift для BI дашбордов (Tableau). Стоимость: $0.30-0.50/TB вместо $5/TB через партиционирование + Parquet.
  • **Twitter:** Миграция с Hadoop на BigQuery. 100PB+ данных. BigQuery ML для real-time предсказания engagement. 50x ускорение запросов при снижении инфраструктурных расходов.

S3 Datalake

Data Lake на S3 - центральное хранилище всех данных организации: raw (logs, events), cleaned (ETL-обработанные), curated (для BI). Формат Parquet: 10x меньше места чем CSV, 3x быстрее запросы через column pruning, встроенная схема. Delta Lake, Apache Iceberg - ACID транзакции поверх S3 файлов: UPDATE, DELETE, time travel. Netflix, Airbnb, LinkedIn используют S3 Data Lake.

Lake Formation (AWS) - управляемые разрешения для Data Lake: column-level и row-level security. Blueprint для автоматического ingestion из RDS, DynamoDB в S3. AWS Glue Data Catalog - метаданные схем (таблицы, типы данных) для Athena, Spark. Parquet vs ORC: оба columnar, Parquet лучше для nested data, ORC быстрее в Hive.

Почему Parquet предпочтительнее CSV для Data Lake хранилища?

Athena

Amazon Athena - serverless SQL движок для запросов напрямую к S3. Нет инфраструктуры для управления. Оплата: $5 за TB просканированных данных (Parquet + партиционирование снижает до $0.50/TB). Presto/Trino под капотом. Интегрирован с AWS Glue Data Catalog для схем таблиц. NASA использует Athena для анализа петабайтов астрономических данных.

Оптимизация стоимости и скорости Athena: 1) Parquet формат (column pruning), 2) Партиционирование по date/region (partition pruning), 3) Compress с snappy/zstd, 4) Размер файлов 128MB-1GB (много мелких файлов = overhead). Athena CTAS (CREATE TABLE AS SELECT) материализует результаты в S3 для повторного использования.

Как партиционирование данных в S3 снижает стоимость запросов в Athena?

Bigquery

Google BigQuery - полностью managed columnar data warehouse с serverless SQL. В отличие от Athena: встроенные ML модели (BigQuery ML), геопространственные запросы, BQML для обучения моделей в SQL без экспорта данных. Автоматическая компрессия, индексирование (кластеризация), партиционирование. $5/TB для on-demand или $2000/month за слот (фиксированный compute). Twitter мигрировала аналитику с Hadoop на BigQuery.

BigQuery Omni (2021): BigQuery работает с данными в AWS S3 и Azure Blob Storage без переноса данных. BigQuery ML: LOGISTIC_REG, BOOSTED_TREE, TENSORFLOW модели прямо в SQL. BigQuery BI Engine: in-memory аналитика для Looker Studio/Data Studio с sub-second latency.

BigQuery Clustering отличается от Partitioning тем что:

Redshift

Amazon Redshift - managed columnar data warehouse на PostgreSQL-совместимом SQL. Оптимизирован для OLAP: 1-16 узлов, MPP (Massively Parallel Processing). Redshift Spectrum: запросы к S3 (как Athena, но через Redshift). RA3 узлы: отделяют compute от storage (данные в S3, кеш на SSD узлах). Redshift Serverless (2022): автоматическое масштабирование без управления кластером. Lyft переехал с Hive на Redshift и ускорил запросы в 50x.

Redshift vs BigQuery: Redshift дешевле для предсказуемой нагрузки (RI), лучше интеграция с AWS экосистемой. BigQuery лучше для unpredictable нагрузки (serverless), встроенный ML. Redshift sort keys и distribution keys критичны для производительности: неправильная конфигурация = 10x медленнее запросы.

Зачем указывать DISTKEY в Redshift для таблицы которая часто JOIN'ится с другой по одному ключу?

Итоги

  • **S3 Data Lake:** Medallion architecture (bronze/silver/gold). Parquet = 10x меньше места, column pruning. Apache Iceberg = ACID + time travel поверх S3. Lake Formation для column/row-level security.
  • **Athena:** Serverless SQL на S3. $5/TB -> $0.30-0.50/TB через Parquet + партиционирование. Partition pruning = WHERE date='2024-01' читает только январь. CTAS для материализации агрегатов.
  • **BigQuery vs Redshift:** BigQuery - serverless, встроенный ML, Omni для S3/Azure. Redshift - лучше для AWS-native стека, дешевле при предсказуемой нагрузке через RI, DISTKEY/SORTKEY для оптимизации JOIN.

Связанные темы

Data Lakes и Analytics интегрируются с ETL и BI инструментами:

  • AWS Glue и Apache Spark — Glue - managed Spark ETL для трансформации данных: CSV -> Parquet, schema evolution, deduplication. Glue Crawler автоматически определяет схемы для Athena Data Catalog
  • Amazon Kinesis и Streaming Analytics — Kinesis Firehose -> S3 с автоматической конвертацией в Parquet через Glue schema. Real-time данные доступны в Athena через 60-секундные micro-batches
  • QuickSight и BI инструменты — QuickSight подключается к Athena, Redshift, S3. SPICE кеш ускоряет дашборды. ML Insights автоматически находит аномалии и forecasting из коробки

Вопросы для размышления

  • Как организовать schema evolution в S3 Data Lake: добавление новых колонок в Parquet файлы без перезаписи исторических данных?
  • При каком объёме данных и частоте запросов Redshift становится дешевле Athena (on-demand), и когда Athena выгоднее?
  • Как реализовать GDPR right-to-be-forgotten в immutable S3 Data Lake: удаление всех данных конкретного пользователя из Parquet файлов?

Связанные уроки

  • db-17-nosql-overview
Data Lakes и Analytics

0

1

Войти