В каком формате хранились данные · Data Engineer — JobPilot

В каком формате хранились данные

Data Engineer · 6%
Вопрос 40 / #
Пример ответа

1) Короткий ответ

Данные хранились в многослойной архитектуре с использованием форматов, оптимизированных под конкретные задачи: Parquet для аналитики, Delta Lake для часто изменяемых данных, и Avro для потоковой обработки.

2) Слои хранения и форматы:

* Raw/Bronze слой (сырые данные):

* JSON, CSV — первоначальный прием данных

* Avro — потоковые данные из Kafka

* Назначение: Сохранение исходных данных без изменений

* Silver слой (очищенные данные):

* Parquet — основной формат для обработки

* Delta Lake — данные с частыми обновлениями

* Назначение: Очищенные, стандартизированные данные

* Gold слой (бизнес-витрины):

* Parquet — финальные агрегаты

* PostgreSQL — для сервисов и API

* Назначение: Готовые к использованию бизнес-метрики

3) Сравнение форматов хранения:

* Parquet:

* Плюсы: Колоночный формат, высокая степень сжатия, эффективные запросы

* Минусы: Сложность потоковой записи, нельзя обновлять данные

* Использование: 70% данных, аналитические запросы

* Delta Lake:

* Плюсы: ACID-транзакции, время жизни данных, поддержка upserts

* Минусы: Overhead метаданных

* Использование: Данные заказов, пользовательские профили

* Avro:

* Плюсы: Компактный бинарный формат, схема в заголовке

* Минусы: Сложность отладки, менее эффективные запросы

* Использование: Потоковые данные из Kafka

5) Пример организации данных в S3:

```

s3://data-lake/

├── bronze/

│ ├── events/ # JSON из API

│ ├── transactions/ # CSV из банковской системы

│ └── logs/ # Avro из Kafka

├── silver/

│ ├── cleaned_events/ # Parquet

│ ├── customer_profiles/ # Delta Lake

│ └── product_catalog/ # Parquet

└── gold/

├── daily_metrics/ # Parquet

└── business_views/ # Parquet

```

6) Эффективность хранения:

* Сжатие Parquet: 60-80% от исходного объема

* Время запросов: ускорение в 3-5x compared to JSON

* Стоимость хранения: снижение на 45% после миграции с CSV на Parquet

7) Follow-up вопросы:

* Почему не использовали ORC?

* Ответ: Parquet имеет лучшую поддержку в экосистеме Spark.

* Как управляли схемами?

* Ответ: Schema Registry для Avro, DBT-тесты для Parquet.

Практический совет (2 шага на неделю):

1. Проведите аудит хранения: Проанализируйте текущие форматы данных и оцените потенциальную экономию от перехода на колоночные форматы.

2. Протестируйте Delta Lake: Мигрируйте одну часто обновляемую таблицу в Delta Lake и измерьте производительность операций UPDATE/MERGE.

Data Engineer
Middle
6%
Навигация
В чем отличие I/O-bound и CPU-bound задач
Следующий: C какими трудностями сталкивался когда обрабатывала стримин...
Предыдущий: В чем отличие I/O-bound и CPU-bound задач

Мы используем cookie для улучшения сайта. Продолжая пользоваться сайтом, вы соглашаетесь с политикой cookie и политикой конфиденциальности.