فهارس عامل تصفية Bloom

إشعار

عند استخدام الحوسبة التي تدعم Photon وDatabricks Runtime 12.2 أو أعلى، يتفوق الإدخال/الإخراج التنبؤي على عوامل تصفية الفتح لأداء القراءة. راجع ما هو الإدخال/إخراج التنبؤي؟.

في Databricks Runtime 13.3 والإصدارات الأحدث، توصي Databricks باستخدام التجميع لتخطيط جدول Delta. راجع استخدام التجميع السائل لجداول Delta.

توصي Databricks فقط باستخدام عوامل تصفية Bloom عند استخدام الحوسبة التي لا تدعم هذه الميزات.

فهرس عامل تصفية Bloom هو بنية بيانات فعالة في المساحة تمكن من تخطي البيانات على الأعمدة المختارة، خاصة بالنسبة إلى الحقول التي تحتوي على نص عشوائي.

كيفية عمل فهارس عامل تصفية Bloom

تتكون فهارس عامل تصفية Azure Databricks Bloom من فهرس تخطي البيانات لكل ملف بيانات. يمكن استخدام فهرس عامل تصفية Bloom لتحديد أن قيمة العمود غير موجودة نهائيا في الملف، أو أنها موجودة على الأرجح في الملف. قبل قراءة ملف يتحقق Azure Databricks من ملف الفهرس، ولا تتم قراءة الملف إلا إذا كان الفهرس يشير إلى أن الملف قد يتطابق مع عامل تصفية البيانات.

تدعم عوامل تصفية Bloom الأعمدة مع أنواع بيانات الإدخال التالية: byteو intshortو.stringlongfloatdoubledatetimestamp لا تتم إضافة القيم الخالية إلى عامل تصفية Bloom، لذلك يتطلب أي عامل تصفية ذي صلة بالقيم الخالية قراءة ملف البيانات. يدعم Azure Databricks عوامل تصفية مصدر البيانات التالية: andوorinequals.equalsnullsafe لا يتم اعتماد عوامل تصفية Bloom على الأعمدة المتداخلة.

التكوين والمرجع

استخدم بناء الجملة التالي لتمكين عامل تصفية Bloom:

CREATE BLOOMFILTER INDEX
ON TABLE table_name
FOR COLUMNS(column_name OPTIONS (fpp=0.1, numItems=5000))

للحصول على تفاصيل بناء الجملة، راجع إنشاء فهرس تصفية BLOOM وإفلات فهرس تصفية BLOOM.

لتعطيل عمليات تصفية Bloom، قم بتعيين تكوين مستوى spark.databricks.io.skipping.bloomFilter.enabled الجلسة إلى false.

عرض قائمة فهارس عامل تصفية Bloom

لعرض قائمة الفهارس، قم بتشغيل:

spark.table("<table-with-indexes>").schema.foreach(field => println(s"${field.name}: metadata=${field.metadata}"))

على سبيل المثال:

إظهار الفهارس