توافق Apache Hive
ينطبق على: 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 ذلك.