يكتب المعاملات إلى التخزين السحابي باستخدام DBIO

توفر حزمة Databricks DBIO عمليات الكتابة للمعاملات إلى التخزين السحابي لوظائف Apache Spark. يؤدي هذا إلى حل عدد من مشكلات الأداء و الصحة التي تحدث عند استخدام Spark في إعداد مجموعة النظراء الأصلي (على سبيل المثال، الكتابة مباشرة إلى خدمات التخزين).

هام

لا يتم احترام بروتوكول الالتزام عند الوصول إلى البيانات باستخدام المسارات التي تنتهي في * . على سبيل المثال، dbfs://my/path القراءة سوف ترجع التغييرات الملتزم بها فقط، بينما dbfs://my/path/* القراءة سوف ترجع محتوى كافة ملفات البيانات في الدليل، بغض النظر عما إذا كان قد تم الالتزام بمحتوياتها أم لا. هذا سلوك متوقع.

مع الالتزام بالمعاملات DBIO ملفات بيانات التعريف بدءا _started_<id> من ملفات البيانات التي تم _committed_<id> إنشاؤها بواسطة وظائف Spark ومرافقتها. عموما يجب أن لا تغيير هذه الملفات مباشرة. بدلا من ذلك، يجب استخدام VACUUM الأمر لتنظيفها.

تنظيف الملفات غير الملتزم بها

لتنظيف الملفات غير الملتزم بها المتبقية من مهام Spark، استخدم VACUUM الأمر لإزالتها. يحدث عادة VACUUM تلقائيا بعد إتمام مهام Spark، ولكن يمكنك أيضا تشغيله يدويا إذا تم إحباط مهمة.

على سبيل المثال، VACUUM ... RETAIN 1 HOUR إزالة الملفات غير الملتزم بها أقدم من ساعة واحدة.

هام

  • تجنب كنس مع أفق أقل من ساعة واحدة. يمكن أن يسبب عدم تناسق البيانات.

انظر أيضا فراغ.

SQL

-- recursively vacuum an output path
VACUUM '/path/to/output/directory' [RETAIN <N> HOURS]

-- vacuum all partitions of a catalog table
VACUUM tableName [RETAIN <N> HOURS]

Scala

// recursively vacuum an output path
spark.sql("VACUUM '/path/to/output/directory' [RETAIN <N> HOURS]")

// vacuum all partitions of a catalog table
spark.sql("VACUUM tableName [RETAIN <N> HOURS]")