HeadlinesBriefing favicon HeadlinesBriefing.com

Компактирование Iceberg: 1000 до 6, влияние

Towards Data Science •
×

При работе с большими аналитическими наборами данных, хранящимися в табличных форматах, таких как Apache Iceberg, существует известная проблема, называемая проблемой маленьких файлов. Это происходит, когда данные записываются во множество крошечных файлов, а не в меньшее количество файлов разумного размера. Это увеличивает накладные расходы на метаданные и может замедлить планирование и выполнение запросов. Для борьбы с этим используется процесс, называемый компактированием, который объединяет все меньшие файлы в небольшое количество более крупных файлов.

Я сосредоточен на Apache Iceberg, поскольку он быстро становится одним из ведущих открытых табличных форматов для крупномасштабных аналитических данных. Важно, что хотя Iceberg поддерживает компактирование, он не делает это автоматически за нас. Iceberg предоставляет процедуру rewrite_data_files, но мы, как системные администраторы, все равно должны выполнить эту процедуру.

Мы создадим таблицу Iceberg, содержащую 50 миллионов строк, распределенных по 1000 крошечным файлам. Эти файлы останутся нетронутыми, пока мы не выполним команду компактирования. Мы измерим три рабочие нагрузки SQL до и после перезаписи. Все работает локально; вам не понадобится облачная учетная запись, Docker, кластер Hadoop или платная услуга.