Перейти к содержимому

Внутреннее устройство Parquet (3D-визуализация)

Mizu

0:00 / 0:00

Внутреннее устройство Parquet (3D-визуализация)

286 просмотров · 2 дня назад
Mizu
456 подписчиков
286 просмотров · 2 дня назад
Что на самом деле находится внутри файла Parquet Что такое файл Parquet, для чего он используется и что физически находится внутри него, показано на примере реальной таблицы с 100 000 строк: первый и последний байты, группы строк, блоки столбцов и страницы, нижний колонтитул, кодировка словаря, сжатие, как программа чтения пропускает данные, вложенные данные и как Arrow и DuckDB читают файл. Все числа в этом видео получены из команд, которые мы запускали сами (pyarrow 26.0.0, DuckDB 2.0.0, Python 3.14) на синтетической таблице, или из спецификации Parquet. Результаты представлены в виде соотношений; время выполнения зависит от вашей машины. Разделы 0:00 Что такое файл Parquet 1:00 Для чего он используется и где 1:45 Преимущества 2:39 Первый и последний байты 3:32 Строки и столбцы 4:38 Анатомия: группы строк, блоки столбцов, страницы 5:22 Одна длинная лента и почему нижний колонтитул идет последним 6:04 Типы и значения NULL 6:51 Поле словаря 7:20 Байты словаря 7:54 Кодировки и сжатие 9:00 Чтение меньшего количества данных: статистика и обрезка 9:52 Индекс страницы и фильтр Блума 10:20 Вложенные данные 11:21 Размер и однократная запись 12:09 Arrow и Parquet 13:01 DuckDB читает Parquet 13:57 Попробуйте сами 14:27 Чего Parquet не делает Источники Apache Parquet: https://parquet.apache.org/ и спецификация формата, https://github.com/apache/parquet-format (макет, кодировки, сжатие, индекс страницы, фильтр Блума) Dremel: Интерактивный анализ веб-масштабных наборов данных (Мельник и др., VLDB 2010), https://research.google/pubs/dremel-i... (уровни повторения и определения) Объявление ASF о создании Apache Parquet в качестве проекта верхнего уровня, 27 апреля 2015 г.: https://news.apache.org/foundation/en... Apache Arrow: https://arrow.apache.org/ и документация по чтению Parquet на C++, https://arrow.apache.org/docs/cpp/par... DuckDB, Чтение и запись файлов Parquet: https://duckdb.org/docs/2.0/data/parq... Спецификация таблицы Apache Iceberg: https://github.com/apache/iceberg/blo... и протокол Delta Lake: https://github.com/delta-io/delta/blo... Spark SQL, файлы Parquet: https://spark.apache.org/docs/latest/... ALP: Afroozeh, Kuffo, Boncz, SIGMOD 2024, https://dl.acm.org/doi/10.1145/3626717 Попробуйте сами: команды, показанные в последних главах, работают с любым файлом Parquet с помощью xxd, tail, pyarrow или DuckDB.