Udostępnij przez


Zgodność z technologią Apache Hive

Dotyczy:zaznacz pole wyboru oznaczone jako tak 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ą z magazynem metadanych, SerDes oraz 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 dotyczące zapytań Hive, w tym:
    • SELECT
    • GROUP BY
    • ORDER BY
    • CLUSTER BY
    • SORT BY
  • 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
    • {LEWO|PRAWO|FULL} ZEWNĘTRZNE JOIN
    • LEWY SEMI JOIN
    • KRZYŻ JOIN
  • Związki zawodowe
  • Zapytania podrzędne
    • SELECT kolumna FROM (SELECT kolumny + b as z t1) t2
  • Próbkowanie
  • Wyjaśnij
  • Tabele partycjonowane, w tym dynamiczne wstawianie partycji
  • Widok
  • Zdecydowana większość instrukcji DDL, w tym:
    • CREATE TABLE
    • CREATE TABLE JAK SELECT
    • ALTER TABLE
  • Większość typów danych Hive, w tym:
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • BOOLOWSKI
    • SPŁAWIK
    • PODWÓJNY
    • STRUNA
    • BINARNY
    • SYGNATURA CZASOWA
    • DATA
    • 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 segmentowanej utworzonej przez Hive
  • Szczegółowe aktualizacje ACID

Funkcje zaawansowane platformy Hive

  • Typ unii
  • Unikalne łączenie
  • Zbieranie statystyk kolumn: Usługa Spark SQL obecnie nie wykorzystuje skanowania w trybie współdzielonym do zbierania statystyk kolumn i obsługuje tylko wypełnianie pola sizeInBytes magazynu metadanych systemu Hive.

Formaty danych wejściowych i wyjściowych Hive

  • Format pliku dla interfejsu wiersza polecenia (CLI): w przypadku wyników wyświetlanych w CLI, usługa Spark SQL obsługuje tylko format TextOutputFormat.
  • Archiwum 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.

  • Indeksy map bitowych na poziomie bloków i kolumny wirtualne (używane do budowania indeksów).
  • Automatycznie określ liczbę reduktorów dla sprzężeń i operacji grupowania: w usłudze Spark SQL należy kontrolować stopień równoległości po operacjach tasowania przy użyciu polecenia SET spark.sql.shuffle.partitions=[num_tasks];.
  • Flaga rozkładu danych: Spark SQL nie uwzględnia flagi rozkładu danych w Hive.
  • STREAMTABLE wskazówka w łączeniu: usługa Spark SQL nie przestrzega STREAMTABLE wskazówki.
  • Połączenie wielu małych plików dla wyników zapytania: jeśli wynik zawiera wiele małych plików, Hive może scalić małe pliki w mniej liczebne, większe pliki, aby uniknąć przepełnienia metadanych systemu plików HDFS. Usługa Spark SQL nie obsługuje tego.