فهرس تخطي البيانات
هام
DATASKIPPING INDEX
تمت إزالة في Databricks Runtime 7.0. نوصي باستخدام جداول Delta بدلا من ذلك، والتي توفر قدرات محسنة لتخطي البيانات.
هام
تم إيقاف هذه الوثائق وقد لا يتم تحديثها. لم تعد المنتجات أو الخدمات أو التقنيات المذكورة في هذا المحتوى مدعومة. راجع تخطي البيانات ل Delta Lake.
الوصف
بالإضافة إلى تقسيم التقسيم، يتضمن Databricks Runtime ميزة أخرى تهدف إلى تجنب مسح البيانات غير ذات الصلة ضوئيا، وهي فهرس تخطي البيانات. ويستخدم إحصائيات على مستوى الملف من أجل تنفيذ تخطي إضافي في دقة الملف. يعمل هذا مع التقسيم على نمط Hive، ولكنه لا يعتمد عليه.
تعتمد فعالية تخطي البيانات على خصائص بياناتك وتخطيطها الفعلي. نظرا لأن التخطي يتم في دقة الملف، فمن المهم تقسيم بياناتك أفقيا عبر ملفات متعددة. سيحدث هذا عادة كنتيجة لوجود مهام إلحاق متعددة، والتقسيم (التبديل العشوائي)، والمستودعات، و/أو استخدام spark.sql.files.maxRecordsPerFile
. يعمل بشكل أفضل على الجداول ذات المستودعات التي تم فرزها (df.write.bucketBy(...).sortBy(...).saveAsTable(...)
/ CREATE TABLE ... CLUSTERED BY ... SORTED BY ...
)، أو مع الأعمدة المرتبطة بمفاتيح الأقسام (على سبيل المثال، brandName - modelName
، companyID - stockPrice
)، ولكن أيضا عندما تحدث بياناتك فقط لعرض بعض الفرز / التجميع (على سبيل المثال، orderID
، ). bitcoinValue
إشعار
تحتوي ميزة بيتا هذه على عدد من القيود المهمة:
- إنه الاشتراك: يجب تمكينه يدويا، على أساس كل جدول.
- إنها SQL فقط: لا توجد واجهة برمجة تطبيقات DataFrame لها.
- بمجرد فهرسة الجدول، لا يتم ضمان ظهور تأثيرات العمليات اللاحقة
INSERT
ADD PARTITION
حتى يتم إعادة ترتيب الفهرس بشكل صريح.
SQL Syntax
إنشاء فهرس
CREATE DATASKIPPING INDEX ON [TABLE] [db_name.]table_name
تمكين تخطي البيانات على الجدول المحدد للأعمدة الأولى (أي الأكثر يسارا) N المدعومة، حيث يتم التحكم في N ( spark.databricks.io.skipping.defaultNumIndexedCols
افتراضي: 32)
partitionBy
تتم فهرسة الأعمدة دائما ولا يتم احتسابها في N هذا.
إنشاء فهرس للأعمدة
CREATE DATASKIPPING INDEX ON [TABLE] [db_name.]table_name
FOR COLUMNS (col1, ...)
تمكين تخطي البيانات في الجدول المحدد لقائمة الأعمدة المحددة. كما هو الحال أعلاه، ستتم دائما فهرسة جميع partitionBy
الأعمدة بالإضافة إلى الأعمدة المحددة.
وصف الفهرس
DESCRIBE DATASKIPPING INDEX [EXTENDED] ON [TABLE] [db_name.]table_name
يعرض أعمدة الجدول المحدد التي تتم فهرستها، بالإضافة إلى الأنواع المقابلة للإحصائيات على مستوى الملف التي يتم تجميعها.
إذا EXTENDED
تم تحديده، يتم عرض عمود ثالث يسمى "effectiveness_score" يعطي مقياسا تقريبيا لمدى فائدة DataSkipping لعوامل التصفية على الأعمدة المقابلة.
تحديث الفهرس الكامل
REFRESH DATASKIPPING INDEX ON [TABLE] [db_name.]table_name
إعادة بناء الفهرس بأكمله. أي ستتم إعادة فهرسة جميع أقسام الجدول.
تحديث الأقسام
REFRESH DATASKIPPING INDEX ON [TABLE] [db_name.]table_name
PARTITION (part_col_name1[=val1], part_col_name2[=val2], ...)
إعادة فهرسة الأقسام المحددة فقط. يجب أن تكون هذه العملية بشكل عام أسرع من تحديث الفهرس الكامل.
إسقاط الفهرس
DROP DATASKIPPING INDEX ON [TABLE] [db_name.]table_name
تعطيل "تخطي البيانات" في الجدول المحدد وحذف كافة بيانات الفهرس.