Oracle
 sql >> база данни >  >> RDS >> Oracle

Първичните ключове и индекси в езика на заявките Hive са възможни или не?

Индексирането на 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 не поддържа произволно записване и това добавя повече усложнения и разходи, ако искате да възстановите индекси.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLT и разделяне

  2. има ли функция PRODUCT, както има функция SUM в Oracle SQL?

  3. Oracle, PDO_OCI срещу OCI8

  4. Генерирайте PL/SQL процедура онлайн за импортиране на данни в Oracle Table

  5. Най-добрият начин да нулирате последователност на Oracle до следващата стойност в съществуваща колона?