TGViewer
дата инженеретта дата инженеретта @data_engineerette · 3.43K subscribers
Post #407 2.8K
Проблема мелких файлов на практике

Я игралась с iceberg-таблицами, и у меня странно долго работали запросы. Исходные данные: 2,8 млрд строк и 111гб. Я поресерчила, что запросы сильно тормозят на этапе чтения. Пошла смотреть, как лежат данные, и увидела в каждой партиции по 100 файлов размером 1кб 🥺

hdfs dfs -count /my_table
# 1825 182400


1825 партиций, 182400 файлов - представляете, сколько накладных расходов открыть каждый файлик?

В чем особенность айсберга - вы не можете просто взять и переложить/пересохранить данные. Потому что в мете лежат ссылочки на файлики с данными. У вас просто все поломается 😒 Для компакта есть процедура рерайта:

spark.sql("""CALL system.rewrite_data_files(
table => 'my_db.my_table',
options => map('target-file-size-bytes', '134217728') --128 мб
)""")


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

После процедуры стало 6283 актуальных файликов - теперь все лежит как надо 👍

На картинке - запрос spark.table().cache().count(), который до компакта проходился по 5730 партициям, а теперь всего 856

Что получилось:
- файлы уменьшились в 30 раз
- таски в 6,7 раз
- время в 1,8 раз
  • 🔥 40
  • 👍 12
  • ❤ 1
More from @data_engineerette
  1. Sep 25, 2026Как прошла SmartData 2026? Я вот перечитываю свои впечатления от прошлого года и понимаю,…
  2. Sep 24, 2026Исследование data-people Тут ребята из DevCrowd запустили ежегодное исследование специалис…
  3. Sep 22, 20265 октября начнется 19-й поток программы Data Engineer от Newprolab Программа для junior- и…
  4. Sep 15, 2026Каким должен быть хороший DE? Меня однажды спросили на собесе: 🤩Какие 3 качества важны дл…
  5. Sep 12, 2026Mermaid-диаграммы Наконец-то дошли руки поковыряться в mermaid-диаграммах, это что за имба…
  6. Sep 2, 2026Iceberg — это внезапный бум или планомерная подготовка? Заметили, как с определенного моме…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →