Zgodność z technologią Apache Hive
Dotyczy: Databricks Runtime
Usługa Apache Spark SQL w usłudze Azure Databricks została zaprojektowana pod kątem zgodności z usługą Apache Hive, w tym łącznością magazynu metadanych, serdesem i funkcjami zdefiniowanymi przez użytkownika.
SerDes i funkcje zdefiniowane przez użytkownika
Funkcje Hive SerDes i UDF są oparte na technologii Hive 1.2.1.
Łączność magazynu metadanych
Aby uzyskać informacje na temat łączenia usługi Azure Databricks z zewnętrznie hostowanym magazynem metadanych Hive, zobacz External Apache Hive metastore (starsza wersja).
Obsługiwane funkcje programu Hive
Usługa Spark SQL obsługuje zdecydowaną większość funkcji hive, takich jak:
- Instrukcje zapytań Hive, w tym:
- SELECT
- GROUP BY
- ORDER BY
- KLASTER WEDŁUG
- SORTUJ WEDŁUG
- Wszystkie wyrażenia hive, w tym:
- Wyrażenia relacyjne (
=
,⇔
,==
<>
,<
,>
,>=
, ,<=
itp.) - Wyrażenia arytmetyczne (
+
,-
,*
,/
,%
itp.) - Wyrażenia logiczne (AND, &, OR, ||itp.)
- Konstruktory typów złożonych
- Wyrażenia matematyczne (znak, ln, cos itp.)
- Wyrażenia ciągu (instr, length, printf itp.)
- Wyrażenia relacyjne (
- Funkcje zdefiniowane przez użytkownika (UDF)
- Funkcje agregacji zdefiniowane przez użytkownika (UDAF)
- Formaty serializacji zdefiniowane przez użytkownika (SerDes)
- Funkcje okien
- Łączy
- JOIN
- {LEFT|PRAWO|PEŁNE} SPRZĘŻENIA ZEWNĘTRZNE
- LEWE SPRZĘŻENIA PÓŁSPRZĘŻENIA
- SPRZĘŻENIA KRZYŻOWE
- Unie
- Zapytania podrzędne
- SELECT col FROM ( SELECT a + b AS col from t1) t2
- Próbkowanie
- Explain
- Tabele partycjonowane, w tym wstawienie partycji dynamicznej
- Widok
- Zdecydowana większość instrukcji DDL, w tym:
- CREATE TABLE
- CREATE TABLE AS SELECT
- ALTER TABLE
- Większość typów danych hive, w tym:
- TINYINT
- SMALLINT
- INT
- BIGINT
- BOOLOWSKI
- SPŁAWIK
- PODWÓJNY
- STRUNA
- DWÓJKOWY
- TIMESTAMP
- DATE
- TABLICA<>
- MAPA<>
- STRUCT<>
Nieobsługiwana funkcja programu Hive
W poniższych sekcjach znajduje się lista funkcji programu Hive, których usługa Spark SQL nie obsługuje. Większość z tych funkcji jest rzadko używana we wdrożeniach programu Hive.
Główne funkcje programu Hive
- Zapisywanie w tabeli zasobnikowej utworzonej przez hive
- Szczegółowe aktualizacje ACID
Funkcje ezoteryczne Hive
- Typ unii
- Unikatowe sprzężenia
- Zbieranie statystyk kolumn: Usługa Spark SQL nie skanuje piggyback w celu zbierania statystyk kolumn w tej chwili i obsługuje tylko wypełnianie pola sizeInBytes magazynu metadanych Hive
Formaty danych wejściowych i wyjściowych hive
- Format pliku dla interfejsu wiersza polecenia: w przypadku wyników wyświetlanych z powrotem do interfejsu wiersza polecenia usługa Spark SQL obsługuje tylko format TextOutputFormat
- Archiwum usługi Hadoop
Optymalizacje hive
W platformie Spark nie uwzględniono kilku optymalizacji hive. Niektóre z nich (takie jak indeksy) są mniej ważne ze względu na model obliczeniowy usługi Spark SQL w pamięci.
- Blokuj indeksy map bitowych i kolumny wirtualne (używane do tworzenia indeksów).
- Automatycznie określ liczbę reduktorów dla sprzężeń i grup: w usłudze Spark SQL należy kontrolować stopień równoległości po przetasowania przy użyciu polecenia
SET spark.sql.shuffle.partitions=[num_tasks];
. - Flaga niesymetryczności danych: usługa Spark SQL nie jest podążana za niesymetryczną flagą danych w programie Hive.
STREAMTABLE
wskazówka w dołączeniu: usługa Spark SQL nie przestrzegaSTREAMTABLE
wskazówek.- Scal wiele małych plików w celu uzyskania wyników zapytania: jeśli wynik zawiera wiele małych plików, program Hive może opcjonalnie scalić małe pliki z mniej dużymi plikami, aby uniknąć przepełnienia metadanych systemu plików HDFS. Usługa Spark SQL nie obsługuje tego.