Zgodność z technologią Apache Hive

Dotyczy:check marked yes 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.)
  • 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
    • BOOLEAN
    • FLOAT
    • PODWÓJNE
    • CIĄG
    • BINARNYM
    • TIMESTAMP
    • DATE
    • TABLICY<>
    • MAPĘ<>
    • 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 przestrzega STREAMTABLE 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.