تحسين

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime

تحسين تخطيط بيانات Delta Lake. تحسين مجموعة فرعية من البيانات اختياريا أو تجميع البيانات حسب العمود. إذا لم تحدد ترتيبا ولم يتم تعريف الجدول باستخدام التجميع السائل، يتم إجراء تحسين التعبئة.

بناء الجملة

OPTIMIZE table_name [WHERE predicate]
  [ZORDER BY (col_name1 [, ...] ) ]

إشعار

  • يعد تحسين حزم الخانات غير فعال، ما يعني أنه إذا تم تشغيله مرتين على نفس مجموعة البيانات، فلن يكون للتشغيل الثاني أي تأثير. ويهدف إلى إنتاج ملفات بيانات متوازنة بالتساوي فيما يتعلق بحجمها على القرص، ولكن ليس بالضرورة عدد المجموعات لكل ملف. ومع ذلك، غالبا ما يرتبط المقياسان ببعضهما البعض.
  • Z-Ordering ليست متكررة ولكنها تهدف إلى أن تكون عملية تزايدية. الوقت الذي يستغرقه Z-Ordering غير مضمون لتقليله عبر عمليات تشغيل متعددة. ومع ذلك، إذا لم تتم إضافة بيانات جديدة إلى قسم كان فقط Z-Ordered، فلن يكون ل Z-Ordering آخر لهذا القسم أي تأثير. ويهدف إلى إنتاج ملفات بيانات متوازنة بالتساوي فيما يتعلق بعدد المجموعات، ولكن ليس بالضرورة حجم البيانات على القرص. غالبا ما يكون المقياسان مرتبطين، ولكن يمكن أن تكون هناك حالات لا يحدث فيها ذلك، مما يؤدي إلى انحراف في أوقات المهام الأمثل.

إشعار

أثناء استخدام Databricks Runtime، للتحكم في حجم ملف الإخراج، قم بتعيين تكوين spark.databricks.delta.optimize.maxFileSizeSpark . القيمة الافتراضية هي 1073741824، والتي تعين الحجم إلى 1 غيغابايت. يؤدي تحديد القيمة 104857600 إلى تعيين حجم الملف إلى 100 ميغابايت.

المعلمات

  • table_name

    تعريف جدول Delta موجود. يجب ألا يتضمن الاسم مواصفات زمنية.

  • WHERE

    تحسين المجموعة الفرعية من الصفوف المطابقة لمسند القسم المحدد. يتم دعم عوامل التصفية التي تتضمن سمات مفتاح القسم فقط.

    لا يمكنك استخدام هذه العبارة على الجداول التي تستخدم تكوين أنظمة المجموعات السائلة.

  • ZORDER BY

    تجميع معلومات العمود في نفس مجموعة الملفات. تستخدم خوارزميات تخطي بيانات Delta Lake المحلية المشتركة لتقليل كمية البيانات التي تحتاج إلى قراءة بشكل كبير. يمكنك تحديد أعمدة ZORDER BY متعددة لقائمة مفصولة بفواصل. ومع ذلك، تقل فعالية المنطقة مع كل عمود إضافي.

    لا يمكنك استخدام هذه العبارة على الجداول التي تستخدم تكوين أنظمة المجموعات السائلة.

الأمثلة

> OPTIMIZE events;

> OPTIMIZE events WHERE date >= '2017-01-01';

> OPTIMIZE events
    WHERE date >= current_timestamp() - INTERVAL 1 day
    ZORDER BY (eventType);

لمزيد من المعلومات حول OPTIMIZE الأمر، راجع تحسين تخطيط ملف البيانات.