Skip to main content

الوصف

يختلف عن JSONEachRow/JSONStringsEachRow في أن ClickHouse يبثّ كل حدث على شكل كائن JSON منفصل، ويُخرج أيضًا معلومات التقدّم. تستخدم الصيغة المرتبطة JSONStringsEachRowWithProgress أنواع الكائنات نفسها في المستوى الأعلى، غير أن قيم الحقول تُسلسَل فيها على شكل string. تشترك الصيغتان المضغوطتان المناظرتان JSONCompactEachRowWithProgress وJSONCompactStringsEachRowWithProgress في أنواع كائنات الدفق نفسها، وفي التنبيهات نفسها المتعلقة بالتقدّم وLIMIT والاستثناءات، إلا أن حمولات row / totals / min / max فيهما تكون مصفوفات من القيم بدلًا من كائنات ذات حقول مسمّاة.

كائنات الدفق

كل سطر في الاستجابة هو كائن JSON مستقل. وينبغي للعملاء توجيه المعالجة بحسب المفتاح في المستوى الأعلى: يُرسَل الكائن rows_before_limit_at_least متى احتوى الاستعلام على LIMIT، حتى لو لم يؤدِّ الحد إلى حذف أي صفوف. فهو تقدير أدنى لعدد الصفوف التي كانت ستُعاد لولا LIMIT (بالمعنى نفسه المعتمد في JSON)؛ لذا يجب ألا يعامله العملاء على أنه دليل على حذف صفوف. يُرسَل meta مرة واحدة قبل أول row، غير أن كائن progress قد يصل قبل meta. ولا يُرسَل الكائن exception في المستوى الأعلى على مسار HTTP إلا عند ضبط http_write_exception_in_output_format=1؛ وإلا فيظهر الخطأ عبر طبقة النقل. وعند إرساله، يكون كائنًا مستقلًا في المستوى الأعلى، لا متداخلًا ضمن row.

مثال على الاستخدام

قد يُرسَل كائن progress مع ذلك قبل meta. وعلى مسار HTTP، عند ضبط http_write_exception_in_output_format=1، ينتهي الاستعلام الفاشل بكائن مستقل في المستوى الأعلى (غير متداخل ضمن row):

إعدادات التنسيق