Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Klucze podstawowe i indeksy w języku zapytań Hive są poosible czy nie?

Indeksowanie Hive zostało wprowadzone w Hive 0.7.0 (HIVE-417) i usunięte w Hive 3.0 (HIVE-18448). Przeczytaj komentarze w tym Jira. Ta funkcja była całkowicie bezużyteczna w Hive. Te indeksy były zbyt drogie dla Big Data, RIP.

Od wersji Hive 2.1.0 (HIVE-13290) Hive obejmuje obsługę niezweryfikowanych ograniczeń klucza podstawowego i obcego . Te ograniczenia nie są sprawdzane, system nadrzędny musi zapewnić integralność danych przed załadowaniem ich do Hive. Te ograniczenia są przydatne w przypadku narzędzi generujących diagramy i zapytania ER. Również takie niesprawdzone ograniczenia są przydatne jako samodokumentowanie. Możesz łatwo dowiedzieć się, co ma być PK, jeśli tabela ma takie ograniczenie.

W bazie danych Oracle Unique, ograniczenia PK i FK są poparte indeksami, dzięki czemu mogą działać szybko i są naprawdę przydatne. Ale nie tak działa Hive i do czego został zaprojektowany.

Całkiem normalnym scenariuszem jest ładowanie bardzo dużego pliku z częściowo ustrukturyzowanymi danymi w HDFS. Budowanie na nim indeksu jest zbyt kosztowne, a bez indeksu sprawdzającego naruszenie PK możliwe jest tylko przeskanowanie wszystkich danych. I normalnie nie można wymusić ograniczeń w BigData. Proces nadrzędny może zadbać o integralność i spójność danych, ale nie gwarantuje to, że w końcu nie dojdzie do naruszenia PK w Hive w jakiejś dużej tabeli załadowanej z różnych źródeł.

Niektóre formaty przechowywania plików, takie jak ORC, mają wewnętrzne, lekkie „indeksy”, które przyspieszają filtrowanie i umożliwiają predykatowe naciśnięcie (PPD), żadne ograniczenia PK i FK nie są implementowane przy użyciu takich indeksów. Nie można tego zrobić, ponieważ zwykle możesz mieć wiele takich plików należących do tej samej tabeli w Hive, a pliki mogą mieć nawet różne schematy. Hive utworzony dla petabajtów i możesz przetwarzać petabajty w jednym przebiegu, dane mogą być częściowo ustrukturyzowane, pliki mogą mieć różne schematy. Hadoop nie obsługuje losowych zapisów, co zwiększa komplikacje i koszty, jeśli chcesz odbudować indeksy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. wyświetl niestandardowy tekst sql z wyniku kolumny tabeli

  2. PLS-00103:Napotkałem symbol CREATE

  3. Jak obsłużyć wyjątki to_date w instrukcji SELECT, aby zignorować te wiersze?

  4. Funkcja SINH() w Oracle

  5. oracle konwertuj czas epoki unix na datę