Что делать, если DWH растет слишком быстро?
Ссылка на выступление: https://youtu.be/Gp7fqLfxltI?si=Oz8jdcIJg6D6R9Rt
Сложность: 1,5/3. Кода на слайдах нет, рассказывается максимально понятно
Кому будет интересно: подойдёт для знакомства с Lakehouse на примере реальной задачи миграции
Перед пересказом отвечу на главный вопрос в докладе: а что делать то?
Ответ: Переходить в Lakehouse
✨ Краткий пересказ и выводы по докладу Александра Филатова — Что делать, если DWH растет слишком быстро ✨
Александр Филатов поделился опытом решения проблем, связанных с быстрым ростом хранилища данных (DWH) в компании. Основной фокус был на масштабируемости, производительности и выборе подходящих технологий для обработки больших объемов данных.
🔍 Основные тезисы:
1️⃣ Проблемы роста DWH:
• Хранилище данных на базе Vertica состоит из 50 нод, каждая из которых хранит данные локально и выполняет запросы.
• Ежедневно система обрабатывает около 1 миллиона запросов от 200 пользователей.
• Основные проблемы:
◦ Шумные соседи: Конкуренция за ресурсы между пользователями приводит к задержкам.
◦ Масштабируемость: Расширение кластера требует пересоздания таблиц и занимает неделю.
◦ Доступность данных: Сбои в одной ноде вызывают эффект домино, что приводит к простою системы.
2️⃣ Проблемы с загрузкой данных:
• Неполная загрузка данных из-за технических сбоев.
• Баланс между качеством и количеством данных: важно обеспечить доверие к данным для аналитики.
3️⃣ Тестирование новых решений:
• В 2022 году компания тестировала различные инструменты, включая Greenplum, DataBricks, Trino, Starrocks, Spark.
• Starrocks показал лучшие результаты для меньших объемов данных, но не подошел для текущих масштабов компании.
• Trino оказался более производительным и масштабируемым решением.
4️⃣ Переход на Trino:
• Trino состоит из нескольких компонентов: данные в сейфе, сторож, координатор и воркеры.
• Координатор принимает запросы, разбирает их и отправляет на воркеры.
• Проблемы с адаптацией старых запросов и необходимость создания внешних таблиц.
5️⃣ Оптимизация запросов:
• Запросы в Trino отличаются от Vertica, что требует переработки и оптимизации.
• Отсутствие временных таблиц в Trino требует создания эффективной схемы.
6️⃣ Проблемы с консистентностью данных:
• Trino использует транзакции для обеспечения консистентности данных.
• Проблемы с чтением данных из Vertica и использованием полюсовой библиотеки.
• Использование партиций для обеспечения целостности данных.
7️⃣ Текущая ситуация и планы:
• Треть мощности и хранилища используется двумя основными потребителями.
• Планы на год: изолировать "толстяков" и перенести главные расчеты в Trino.
• Trino позволяет быстро восстанавливать данные после сбоев (2 минуты против 45 минут в Vertica).
🚀 Рекомендации:
• Изоляция ресурсов: Изолируйте крупных потребителей данных для предотвращения конкуренции за ресурсы.
• Использование партиций: Применяйте партиции для обеспечения целостности данных и ускорения обработки.
💡 Выводы:
Рост данных требует новых подходов:
• Традиционные системы, такие как Vertica, могут не справляться с быстрым ростом данных.
• Переход на более современные и легковесные решения, такие как Trino, помогает решить проблемы масштабируемости.
📌 Итог:
Доклад Александра Филатова — это ценный опыт для всех, кто сталкивается с проблемами роста хранилищ данных и рассматривает переход в Lakehouse.
Post #13
1.14K