Выбор столбца раздела
У меня есть огромный набор данных, связанных с транзакциями. Мне нужно выбрать столбец разбиения из транзакции (увеличивается каждый день) или состояния (ограниченное количество). какой идеальный выбор и почему?
2 ответа
Идеальный выбор - иметь состояние в качестве столбца разделения, так как разбиение создает отдельные папки на основе различных значений. Следовательно, количество папок = количество состояний, поэтому хранилище метаданных для Namenode будет меньше.
но если будет учитываться дата транзакции, то каждый день будет появляться новая папка, что в какой-то момент снизит производительность Namenode.
Недостаток выбора транзакции_даты в качестве столбца раздела:(1) Слишком маленькие каталоги, которые могут вызвать перерасход в HDFS.
Преимущества использования состояния:(1) Количество каталогов будет фиксированным.
Все зависит от того, как будет сформирован запрос на исполнение. Если ваш запрос содержит условие фильтра для транзакции_даты и раздела нет, то общее выполнение будет медленным.
Кроме того, создание раздела не гарантирует более быстрое выполнение. Результаты поиска будут возвращаться быстрее для разделов, объем данных которых меньше, чем для разделов, объем данных которых высок.