فهرس تخطي البيانات

هام

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 لها.
  • بمجرد فهرسة الجدول، لا يتم ضمان ظهور تأثيرات العمليات اللاحقة INSERTADD 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

تعطيل "تخطي البيانات" في الجدول المحدد وحذف كافة بيانات الفهرس.