قراءة معلومات حالة الدفق المنظم
في Databricks Runtime 14.3 LTS وما فوق، يمكنك استخدام عمليات DataFrame أو دالات قيمة جدول SQL للاستعلام عن بيانات حالة الدفق المنظم وبيانات التعريف. يمكنك استخدام هذه الدالات لمراقبة معلومات الحالة للاستعلامات ذات الحالة المتدفقة المنظمة، والتي يمكن أن تكون مفيدة للمراقبة وتصحيح الأخطاء.
يجب أن يكون لديك حق الوصول للقراءة إلى مسار نقطة التحقق لاستعلام دفق للاستعلام عن بيانات الحالة أو بيانات التعريف. توفر الوظائف الموضحة في هذه المقالة وصولا للقراءة فقط إلى بيانات الحالة وبيانات التعريف. يمكنك فقط استخدام دلالات قراءة الدفعات للاستعلام عن معلومات الحالة.
إشعار
لا يمكنك الاستعلام عن معلومات الحالة لخطوط أنابيب Delta Live Tables أو جداول الدفق أو طرق العرض المجسدة.
قراءة مخزن حالة الدفق المنظم
يمكنك قراءة معلومات مخزن الحالة للاستعلامات المهيكلة التي يتم تنفيذها في أي وقت تشغيل Databricks مدعوم. استخدم بناء الجملة التالي:
Python
df = (spark.read
.format("statestore")
.load("/checkpoint/path"))
SQL
SELECT * FROM read_statestore('/checkpoint/path')
يتم دعم التكوينات الاختيارية التالية:
خيار | نوع | القيمة الافتراضية | الوصف |
---|---|---|---|
batchId |
طويل | أحدث معرف دفعة | يمثل الدفعة المستهدفة للقراءة منها. حدد هذا الخيار للاستعلام عن معلومات الحالة لحالة سابقة للاستعلام. يجب الالتزام بالدفعة ولكن لم يتم تنظيفها بعد. |
operatorId |
طويل | 0 | يمثل عامل التشغيل الهدف للقراءة منه. يستخدم هذا الخيار عندما يستخدم الاستعلام عوامل تشغيل متعددة ذات حالة. |
storeName |
السلسلة | "افتراضي" | يمثل اسم مخزن الحالة الهدف للقراءة منه. يتم استخدام هذا الخيار عندما يستخدم عامل التشغيل ذي الحالة مثيلات مخزن حالة متعددة. إما storeName أو joinSide يجب تحديدهما لصلة دفق البخار، ولكن ليس كليهما. |
joinSide |
سلسلة ("يسار" أو "يمين") | يمثل الجانب الهدف للقراءة منه. يتم استخدام هذا الخيار عندما يرغب المستخدمون في قراءة الحالة من ربط دفق البث. |
تحتوي البيانات التي تم إرجاعها على المخطط التالي:
Column | نوع | الوصف |
---|---|---|
key |
البنية (نوع آخر مشتق من مفتاح الحالة) | مفتاح سجل عامل تشغيل ذي حالة في نقطة التحقق الخاصة بالحالة. |
value |
البنية (نوع آخر مشتق من قيمة الحالة) | قيمة سجل عامل تشغيل ذي حالة في نقطة التحقق الخاصة بالحالة. |
partition_id |
رقم صحيح | قسم نقطة التحقق الحالة التي تحتوي على سجل عامل التشغيل ذي الحالة. |
قراءة بيانات تعريف حالة الدفق المنظم
هام
يجب تشغيل استعلامات الدفق على Databricks Runtime 14.2 أو أعلى لتسجيل بيانات تعريف الحالة. لا توقف ملفات بيانات تعريف الحالة التوافق مع الإصدارات السابقة. إذا اخترت تشغيل استعلام دفق على Databricks Runtime 14.1 أو أقل، يتم تجاهل ملفات بيانات تعريف الحالة الموجودة ولا تتم كتابة ملفات بيانات تعريف حالة جديدة.
يمكنك قراءة معلومات بيانات تعريف الحالة للاستعلامات المهيكلة التي يتم تشغيلها على Databricks Runtime 14.2 أو أعلى. استخدم بناء الجملة التالي:
Python
df = (spark.read
.format("state-metadata")
.load("<checkpointLocation>"))
SQL
SELECT * FROM read_state_metadata('/checkpoint/path')
تحتوي البيانات التي تم إرجاعها على المخطط التالي:
Column | نوع | الوصف |
---|---|---|
operatorId |
رقم صحيح | معرف العدد الصحيح لمشغل الدفق ذي الحالة. |
operatorName |
رقم صحيح | اسم عامل تشغيل الدفق ذي الحالة. |
stateStoreName |
السلسلة | اسم مخزن الحالة لعامل التشغيل. |
numPartitions |
رقم صحيح | عدد أقسام مخزن الحالة. |
minBatchId |
طويل | الحد الأدنى لمعرف الدفعة المتاح لحالة الاستعلام. |
maxBatchId |
طويل | الحد الأقصى لمعرف الدفعة المتاح لحالة الاستعلام. |
إشعار
قيم معرف الدفعة التي توفرها minBatchId
وتعكس maxBatchId
الحالة في وقت كتابة نقطة التحقق. يتم تنظيف الدفعات القديمة تلقائيا مع تنفيذ الدفعات الصغيرة، لذلك لا تضمن القيمة المقدمة هنا أن تظل متاحة.