توافق Apache Hive

ينطبق على:check marked yes Databricks Runtime

تم تصميم Apache Spark SQL في Azure Databricks ليكون متوافقا مع Apache Hive، بما في ذلك اتصال metastore وSerDes وUDFs.

SerDes وUDFs

تستند Hive SerDes وUDFs إلى Hive 1.2.1.

اتصال Metastore

راجع مخزن بيانات Apache Hive الخارجي (القديم) للحصول على معلومات حول كيفية توصيل Azure Databricks بمخزن بيانات Hive مستضاف خارجيا.

ميزات Hive المدعومة

يدعم Spark SQL الغالبية العظمى من ميزات Hive، مثل:

  • عبارات استعلام Apache Hive، بما في ذلك:
    • حدد …
    • GROUP BY
    • أمر من
    • نظام المجموعة حسب
    • فرز حسب
  • جميع تعبيرات Hive، بما في ذلك:
    • التعبيرات العلائقية (=، ، ==، <>، ><، >=، ، <=، إلخ)
    • التعبيرات الحسابية (+، ، -*، /، %، إلخ)
    • التعبيرات المنطقية (AND، &، OR، ||، إلخ)
    • منشئات النوع المعقد
    • التعبيرات الرياضية (التوقيع، ln، cos، إلخ)
    • تعبيرات السلسلة (instr و length و printf وما إلى ذلك)
  • الدالات المعرفة من قبل المستخدم (UDF)
  • وظائف التجميع المعرفة من قبل المستخدم (UDAF)
  • تنسيقات التسلسل المعرفة من قبل المستخدم (SerDes)
  • دوال Window
  • ينضم
    • انضمام
    • {LEFT|اليمين|FULL} صلة خارجية
    • شبه صلة يسرى
    • CROSS JOIN
  • النقابات
  • الاستعلامات الفرعية
    • SELECT col FROM (SELECT a + b AS col from t1) t2
  • أخذ عينات
  • شرح
  • الجداول المقسمة بما في ذلك إدراج القسم الديناميكي
  • العرض
  • الغالبية العظمى من عبارات DDL، بما في ذلك:
    • إنشاء جدول
    • CREATE TABLE AS SELECT
    • ALTER TABLE
  • معظم أنواع بيانات Hive، بما في ذلك:
    • TINYINT
    • smallint
    • Int
    • BIGINT
    • BOOLEAN
    • حُر
    • مزدوج
    • سلسلة
    • ثنائي
    • الطابع الزمني
    • التاريخ
    • الصفيف<>
    • خريطه<>
    • البنيه<>

وظيفة Hive غير معتمدة

تحتوي الأقسام التالية على قائمة بميزات Hive التي لا يدعمها Spark SQL. نادرا ما يتم استخدام معظم هذه الميزات في عمليات نشر Apache Hive.

ميزات Apache Hive الرئيسية

  • الكتابة إلى جدول تم إنشاؤه بواسطة Hive
  • تحديثات ACID الدقيقة

ميزات Esoteric Hive

  • نوع الاتحاد
  • صلة فريدة
  • جمع إحصائيات الأعمدة: لا يقوم Spark SQL بفحص piggyback لجمع إحصائيات الأعمدة في الوقت الحالي ويدعم فقط ملء حقل sizeInBytes في Hive metastore

تنسيقات إدخال وإخراج الخلية

  • تنسيق الملف ل CLI: بالنسبة للنتائج التي تظهر مرة أخرى إلى CLI، يدعم Spark SQL TextOutputFormat فقط
  • أرشيف Hadoop

تحسينات Apache Hive

لا يتم تضمين عدد قليل من تحسينات Apache Hive في Spark. بعض هذه (مثل الفهارس) أقل أهمية بسبب نموذج Spark SQL الحسابي في الذاكرة.

  • حظر فهارس النقط على مستوى الأعمدة الظاهرية (المستخدمة لإنشاء الفهارس).
  • تحديد عدد المخفضات للصلات و groupbys تلقائيا: في Spark SQL، تحتاج إلى التحكم في درجة التوازي بعد التبديل العشوائي باستخدام SET spark.sql.shuffle.partitions=[num_tasks];.
  • علامة بيانات انحراف: لا يتبع Spark SQL علامة البيانات المنحرفة في Hive.
  • STREAMTABLE تلميح في الصلة: لا يتبع STREAMTABLE Spark SQL التلميح.
  • دمج ملفات صغيرة متعددة لنتائج الاستعلام: إذا كان إخراج النتيجة يحتوي على ملفات صغيرة متعددة، يمكن ل Hive دمج الملفات الصغيرة اختياريا في عدد أقل من الملفات الكبيرة لتجنب تجاوز بيانات تعريف HDFS. لا يدعم Spark SQL ذلك.