Delen via


Compatibiliteit met Apache Hive

Van toepassing op:vinkje als ja aan Databricks Runtime

Apache Spark SQL in Azure Databricks is ontworpen om compatibel te zijn met Apache Hive, waaronder metastore-connectiviteit, SerDes en UDF's.

SerDes en UDF's

Hive SerDes en UDF's zijn gebaseerd op Hive 1.2.1.

Metastore-connectiviteit

Zie Externe Apache Hive-metastore (verouderd) voor informatie over het verbinden van Azure Databricks met een extern gehoste Hive-metastore.

Ondersteunde Hive-functies

Spark SQL ondersteunt het merendeel van de Hive-functies, zoals:

  • Hive-queryinstructies, waaronder:
    • SELECT
    • GROUP BY
    • ORDER BY
    • CLUSTER BY
    • SORT BY
  • Alle Hive-expressies, waaronder:
    • Relationele expressies (=, , , ==<>, <, , >, >=, , , enzovoort<=)
    • Rekenkundige expressies (+, -, *, /, , %enzovoort)
    • Logische expressies (AND, &&, OR, ||, enzovoort)
    • Complexe typeconstructors
    • Wiskundige expressies (teken, ln, cos, enzovoort)
    • Tekenreeksexpressies (instr, lengte, printf, enzovoort)
  • Door de gebruiker gedefinieerde functies (UDF)
  • Door de gebruiker gedefinieerde aggregatiefuncties (UDAF)
  • Door de gebruiker gedefinieerde serialisatie-indelingen (SerDes)
  • Vensterfuncties
  • Joins
    • JOIN
    • {LINKS|RECHTS|VOLLEDIG} BUITEN JOIN
    • LINKER SEMI JOIN
    • CROSS-JOIN
  • Vakbonden
  • Subquery's
    • SELECT kolom VAN (SELECT a + b ALS kolom van t1) t2
  • Steekproeven
  • Uitleggen
  • Gepartitioneerde tabellen inclusief dynamische partitieinvoeging
  • Weergave
  • Overgrote meerderheid van DDL-instructies, waaronder:
    • CREATE TABLE
    • CREATE TABLE AS SELECT
    • ALTER TABLE
  • De meeste Hive-gegevenstypen, waaronder:
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • BOOLEAN
    • FLOAT
    • DOUBLE
    • STRING
    • BINARY
    • TIMESTAMP
    • DATUM
    • ARRAY<>
    • KAART<>
    • STRUCT<>

Niet-ondersteunde Hive-functionaliteit

De volgende secties bevatten een lijst met Hive-functies die niet door Spark SQL worden ondersteund. De meeste van deze functies worden zelden gebruikt in Hive-implementaties.

Belangrijke Hive-functies

  • Schrijven naar een gebucketiseerde tabel die door Hive is gemaakt
  • Fijnmazige ACID-updates

Esoterische Hive-functies

  • Samenvoegtype
  • Unieke join
  • Kolomstatistieken verzamelen: Spark SQL voert momenteel geen meelifscans uit om kolomstatistieken te verzamelen en ondersteunt alleen het vullen van het veld sizeInBytes in de Hive-metastore.

Hive-invoer- en uitvoerindelingen

  • Bestandsindeling voor CLI: Voor resultaten die worden weergegeven naar de CLI, ondersteunt Spark SQL alleen TextOutputFormat
  • Hadoop-archief

Hive-optimalisaties

Een handvol Hive-optimalisaties zijn niet opgenomen in Spark. Sommige van deze (zoals indexen) zijn minder belangrijk vanwege het rekenkundige model van Spark SQL in het geheugen.

  • Bitmapindexen op blokniveau en virtuele kolommen (gebruikt om indexen te bouwen).
  • Bepaal automatisch het aantal reducers voor joins en groupbys: In Spark SQL moet u de mate van parallelle uitvoering na willekeurige volgorde beheren met behulp SET spark.sql.shuffle.partitions=[num_tasks];van .
  • Scheeftrekken van gegevensvlag: Spark SQL volgt de scheve gegevensvlag niet in Hive.
  • STREAMTABLE hint in join: Spark SQL volgt de STREAMTABLE hint niet.
  • Meerdere kleine bestanden samenvoegen voor queryresultaten: als de resultaatuitvoer meerdere kleine bestanden bevat, kan Hive de kleine bestanden desgewenst samenvoegen in minder grote bestanden om te voorkomen dat de HDFS-metagegevens overlopen. Spark SQL biedt daar geen ondersteuning voor.