Индексирането на Hive беше въведено в Hive 0.7.0 (HIVE-417) и премахнато в Hive 3.0 (HIVE-18448) Моля, прочетете коментарите в този Jira. Функцията беше напълно безполезна в Hive. Тези индекси бяха твърде скъпи за големи данни, RIP.
От Hive 2.1.0 (HIVE-13290) Hive включва поддръжка за непроверени ограничения на първичен и външен ключ . Тези ограничения не са валидирани, системата нагоре по веригата трябва да гарантира целостта на данните, преди да бъдат заредени в Hive. Тези ограничения са полезни за инструменти, генериращи ER диаграми и заявки. Също така такива невалидирани ограничения са полезни като самодокументиране. Можете лесно да разберете какво трябва да бъде PK, ако таблицата има такова ограничение.
В базата данни на Oracle Unique, PK и FK ограниченията са подкрепени с индекси, така че могат да работят бързо и са наистина полезни. Но Hive не работи така и за какво е проектиран.
Съвсем нормален сценарий е, когато сте заредили много голям файл с полуструктурирани данни в HDFS. Изграждането на индекс върху него е твърде скъпо и без индекс за проверка на PK нарушението е възможно само за сканиране на всички данни. И обикновено не можете да наложите ограничения в BigData. Процесът нагоре по веригата може да се погрижи за целостта и последователността на данните, но това не гарантира, че накрая няма да имате нарушение на PK в Hive в някаква голяма таблица, заредена от различни източници.
Някои формати за съхранение на файлове като ORC имат вътрешни леки „индекси“ за ускоряване на филтрирането и позволяване на предикат надолу (PPD), не се прилагат PK и FK ограничения с помощта на такива индекси. Това не може да се направи, защото обикновено можете да имате много такива файлове, принадлежащи към една и съща таблица в Hive и файловете дори могат да имат различни схеми. Hive е създаден за петабайти и можете да обработвате петабайти в едно изпълнение, данните могат да бъдат полуструктурирани, файловете могат да имат различни схеми. Hadoop не поддържа произволно записване и това добавя повече усложнения и разходи, ако искате да възстановите индекси.