- Индексы в Hive никогда не использовались в реальной жизни и никогда не были эффективными, и, как заметил @mazaneicha в комментарии, функция индексирования полностью удалена в Hive 3.0, прочитайте это Jira: HIVE-18448 . В любом случае это была отличная попытка, благодаря поддержке Facebook , были извлечены ценные уроки.
Но в OR C есть легкие индексы (ну, на самом деле это не классические индексы c, а фильтры min, max и Bloom, это помогает обрезать полосы). ИЛИ C индексы также наиболее эффективны, если данные сортируются при вставке (распространять + сортировать)
Секционирование является наиболее эффективным, если схема секционирования соответствует тому, как таблица фильтруется или как она загружается (позволяет загружать разделы параллельно, если инкрементные данные представляют собой весь раздел, он работает эффективно).
Пакетирование может помочь с оптимизацией объединений и групп, но у sort-merge-bucket-mapjoin есть серьезные ограничения, делающие его также неэффективным. Обе таблицы должны иметь одинаковую схему группирования, которая в реальной жизни встречается редко или может быть крайне неэффективной. Также данные должны быть отсортированы при загрузке ведра.
Подумайте об использовании ИЛИ C со встроенными индексами и фильтрами Блума, сохраняйте меньшее количество файлов в своей таблице, чтобы избежать перегрузки метаданных и избежать копирования, выполняемого тысячами файлов. Прочтите разделов в вопросах интервью и Сортированная таблица в улье
Полезные ссылки.
Официальная документация: LanguageManual
Сообщество Cloudera: https://community.cloudera.com/