Сравнение производительности между сопоставлением имен файлов и сопоставлением имени файла. Обрезка разделов

У меня проблема, когда файлы создаются каждые 15 минут, поэтому через месяц у меня будет ~ 2880 файлов. Через год у меня будет 35 000 файлов! Уплотнение может быть вариантом, что будет означать, что у меня 1 паркетный файл в час = 8760 файлов!

Однако мне было интересно, чем сравнение имен файлов с использованием "$path" отличается от использования разделов? Удаление разделов выполняется в одном потоке и не распространяется на кластер Hadoop. Итак, если у меня есть 35 000 файлов, разделенных на год = ???? / день = 365 / час = 24/4 файла каждый, то Будет ли производительность сравнения имен файлов такой же, как при использовании сокращения разделов?

PS: Я знаю, что могу архивировать старые файлы.

Оптимизация Athena


person user 923227    schedule 26.10.2018    source источник


Ответы (1)


Обработка разделения сопряжена со значительными накладными расходами, поэтому практически всегда лучше отфильтровать их на координаторе. По той же причине вы хотите избежать большого количества небольших файлов (хотя я не знаю, маленькие ли ваши файлы за 15 минут).

Теперь сокращение раздела и условия "$path" оцениваются на координаторе (если возможно, например, условие "$path" не использует другие столбцы и т. Д.), Поэтому они должны вести себя одинаково.

Также обратите внимание, что наличие очень большого количества небольших разделов может привести к проблемам с производительностью в некоторых областях кода (ничего особенного, но в прошлом возникала проблема более одного раза). Таким образом, вы все равно можете захотеть иметь разделы побольше.

person Piotr Findeisen    schedule 05.11.2018
comment
1. Да, кроме $ path у меня ничего нет. 2. Я планирую архивировать данные, то есть Insert into archive_table Select * from datat_able каждый месяц, возможно, затем каким-то образом идентифицировать и удалять файлы из исходной файловой системы. - person user 923227; 05.11.2018