ORC и Parquet. О форматах и их использовании на базе HDFS / Александр Маркачев (билайн)
Ссылка на выступление:
https://www.youtube.com/watch?v=GM8vEhlBbF8
или
https://vkvideo.ru/video-152308462_456239403
Сложность: 2/3 (Есть технические моменты, но в целом понятно)
Кому будет интересно: Не рекомендую смотреть, если никогда не работали ни с одним их этих форматов.
Если при создании датасетов бездумно указывали parquet или ORC и хотите понять в чём же разница между этими двумя форматами, то must have.
✨ Краткий пересказ и выводы по докладу Александра Маркачева (билайн) — ORC и Parquet: форматы и их использование на базе HDFS ✨
Александр Маркачев рассказал о ключевых аспектах работы с форматами данных ORC и Parquet, их структуре, преимуществах и оптимизации для эффективного хранения и обработки данных на базе HDFS.
🔍 Основные тезисы:
1️⃣ Рост данных и задачи дата-инженеров:
• Объем данных растет экспоненциально: 97 зетабайт данных сейчас и 220 зетабайт ежедневно к 2025 году.
• Задача дата-инженеров — эффективно управлять данными, чтобы экономить место и обеспечивать быстрый доступ.
2️⃣ Основные форматы данных:
• Parquet и ORC — колончатые форматы, подходящие для хранения и быстрого доступа.
• Ключевые метрики качества: степень сжатия и скорость доступа.
3️⃣ Структура файлов:
• Parquet:
◦ Состоит из заголовка, групп строк, участков колонок и страниц.
◦ Заголовок содержит магическое число для идентификации.
◦ Группы строк и колонок позволяют читать данные по частям.
• ORC:
◦ Состоит из заголовка, страйпов, участков колонок, страниц и постскрипта.
◦ Постскрипт содержит метаданные в сжатом виде.
◦ Страйпы аналогичны группам строк в Parquet.
4️⃣ Сравнение форматов:
• Parquet:
◦ Лучше подходит для разработки, так как позволяет менять местами столбцы.
◦ Сжимает хуже, но работает быстрее благодаря более слабым алгоритмам сжатия.
• ORC:
◦ Поддерживает более мощные алгоритмы сжатия, что делает его предпочтительным для долгосрочной аналитики.
◦ Имеет поддержку ACID и спецсимволов.
5️⃣ Оптимизация данных:
• Маленькие таблицы:
◦ Оптимизация не имеет смысла, но отключение индексов и сортировка данных могут ускорить работу.
• Средние таблицы:
◦ Сортировка таблицы уменьшает нагрузку на кластер в три раза.
◦ Выбор меньшего блока данных ускоряет чтение.
• Большие таблицы:
◦ Требуют настройки индексов и использования блум-фильтров для уменьшения объема читаемых данных.
🚀 Рекомендации:
• ORC предпочтителен для долгосрочной аналитики благодаря мощным алгоритмам сжатия и поддержке ACID.
• Parquet лучше подходит для разработки и сценариев, где важна скорость доступа.
• Используйте сортировку данных и настройку индексов для оптимизации производительности.
• Для больших таблиц применяйте блум-фильтры и настраивайте размеры блоков.
💡 Выводы:
1️⃣ ORC vs Parquet:
• ORC лучше сжимает и подходит для аналитики, Parquet быстрее и гибче для разработки.
• Выбор формата зависит от задач: аналитика или разработка.
2️⃣ Оптимизация — ключ к эффективности:
• Сортировка данных, настройка индексов и использование блум-фильтров значительно улучшают производительность.
3️⃣ Spark 3.2 улучшил работу с ORC:
• Новые версии Spark оптимизировали работу с ORC, что увеличило скорость обработки данных.
📌 Итог:
Доклад Александра Маркачева — это отличный гайд по выбору и оптимизации форматов данных. ORC и Parquet — мощные инструменты, но их эффективное использование требует понимания их особенностей и правильной настройки.
Post #7
723