Apache Hive uyumluluğu

Azure Databricks Apache Spark SQL, meta veri deposu bağlantısı, serdes ve udf 'ler dahil olmak üzere Apache Hive uyumlu olacak şekilde tasarlanmıştır.

SerDes ve UDF 'ler

Hive 'lar ve UDF 'ler Hive 1.2.1'i temel alır.

Meta veri deposu bağlantısı

Azure Databricks dışarıdan barındırılan bir Hive meta veri deposu bağlanma hakkında bilgi için bkz. dış Apache Hive meta veri deposu .

Desteklenen Hive özellikleri

Spark SQL, Hive özelliklerinin büyük çoğunluğunu destekler, örneğin:

  • Hive sorgu deyimleri, şunlar dahildir:
    • SELECT
    • GROUP BY
    • SİPARİŞ VEREN
    • KÜME ÖLÇÜTÜ
    • SIRALAMA ÖLÇÜTÜ
  • Aşağıdakiler dahil olmak üzere tüm Hive ifadeleri:
    • İlişkisel ifadeler ( = , , == , <> , < , > , >= , <= vb.)
    • Aritmetik ifadeler ( + , - , * , / , % vb.)
    • Mantıksal ifadeler (ve, && veya, | |, vb.)
    • Karmaşık tür oluşturucuları
    • Matematik ifadeleri (imzala, LN, cos vb.)
    • Dize ifadeleri (InStr, length, printf, vb.)
  • Kullanıcı tanımlı işlevler (UDF)
  • Kullanıcı tanımlı toplama işlevleri (UDADF)
  • Kullanıcı tanımlı serileştirme biçimleri (SerDes)
  • Pencere işlevleri
  • Birleştirmeler
    • JOIN
    • {LEFT | SAĞ | FULL} DıŞ BIRLEŞIM
    • SOL YARı EKLEME
    • ÇAPRAZ EKLEME
  • Birleşimler
  • Alt sorgular
    • Sütun Seç (T1 'tan sütun olarak bir + b SEÇIN) T2
  • Örnekleme
  • Açıklama
  • Dinamik bölüm ekleme dahil bölümlenmiş tablolar
  • Görünüm
  • Aşağıdakiler dahil olmak üzere DDL deyimlerinin büyük çoğunluğu:
    • CREATE TABLE
    • CREATE TABLE AS SELECT
    • ALTER TABLE
  • Aşağıdakiler dahil olmak üzere en çok Hive veri türleri:
    • Small
    • INT
    • BIGıNT
    • BOOLEAN
    • FLOAT
    • ÇIFT
    • DIZISINDE
    • Ý
    • TIMESTAMP
    • DATE
    • DIZI<>
    • EŞLEME<>
    • STRUCT<>

Desteklenmeyen Hive işlevselliği

aşağıdaki bölümler, Spark SQL tarafından desteklenen Hive özelliklerinin bir listesini içerir. Bu özelliklerin çoğu, Hive dağıtımlarında nadiren kullanılır.

Ana Hive özellikleri

  • Hive tarafından oluşturulan bucketed tablosuna yazma
  • ACID ayrıntılı güncelleştirmeleri

Esoteric Hive özellikleri

  • Birleşim türü
  • Benzersiz JOIN
  • sütun istatistikleri toplama: Spark SQL, şu anda sütun istatistiklerini toplamak üzere taramaları geri almıyor ve yalnızca Hive meta veri deposu sizeınbytes alanını doldurmayı destekliyor

Hive giriş ve çıkış biçimleri

  • clı için dosya biçimi: clı 'ya geri doğru gösteren sonuçlar için, Spark SQL yalnızca textoutputformat 'ı destekler
  • Hadoop Arşivi

Hive iyileştirmeleri

Spark 'ta bir yığın iyileştirmeleri dahil değildir. Spark SQL bellek içi hesaplama modeli nedeniyle bunlardan bazıları (örneğin, dizinler) daha az önemlidir.

  • Blok düzeyinde bit eşlem dizinleri ve sanal sütunları (dizin oluşturmak için kullanılır).
  • birleşimler ve groupbys için azaltıcının sayısını otomatik olarak belirleme: Spark SQL, kullanarak paralellik derecesini kontrol etmeniz gerekir SET spark.sql.shuffle.partitions=[num_tasks]; .
  • veri eğriltme bayrağı: Spark SQL, Hive içindeki verileri eğriltme bayrağını izlemez.
  • STREAMTABLEjoın içindeki ipucu: Spark SQL, ipucunu izlemez STREAMTABLE .
  • Sorgu sonuçları için birden çok küçük dosyayı birleştirme: sonuç çıktısı birden çok küçük dosya içeriyorsa, Hive isteğe bağlı olarak küçük dosyaları daha az büyük dosyalar halinde birleştirebilir ve bu da IBU meta verileri taşmaktan kaçınabilirsiniz. Spark SQL bunu desteklemez.