Несмотря на то, что вы правы в том, что каталоги являются логическими конструкциями, если учесть количество метаданных, которые HiveServer2 должен получить и проанализировать для выполнения среднего запроса, порядок имеет значение. Если запрос содержит ...WHERE department='IT'...
, а разделы размечены так, как вы показываете, с учетом общего количества 100 отделов, механизм сокращения разделов сможет сразу удалить 99 подкаталогов из дерева. Но если порядок столбцов разделов меняется, тот же запрос должен будет извлечь метаданные для разделов (30 дней x 12 месяцев x N лет) из MetaStore Hive, просто чтобы выяснить, существует ли на самом деле раздел /department=IT
во всех них. Таким образом, порядок разделов может быть определен путем анализа преобладающих шаблонов запросов.
Другим распространенным фактором, который следует учитывать, является отношение к разработке / обслуживанию, особенно если данные загружаются в таблицу постепенно. Если необходимо выполнить откат / восстановление после неудачной загрузки, потребуется ли ему удалить раздел (day=08
) в каждом поддереве отдела отдельно или все данные отдела можно очистить сразу, удалив раздел (day=08
)?