الاستعلام في ClickHouse Cloudتُخزَّن بيانات جدول النظام هذا محليًا على كل عقدة في ClickHouse Cloud. لذلك، يتطلب الحصول على رؤية كاملة لجميع البيانات استخدام الدالة
clusterAllReplicas. راجع هنا لمزيد من التفاصيل.الوصف
يحتوي على إحصاءات الانتقائية المُعايَنة التي جُمعت أثناء القراءة من جداولMergeTree. ولا تتم تعبئة هذا الجدول إلا عندما تكون قيمة predicate_statistics_sample_rate أكبر من 0.
التوافر
لا يُنشأ system.predicate_statistics_log إلا عندما تحتوي تهيئة الخادم على قسم predicate_statistics_log. وبعد إنشاء السجل، اضبط predicate_statistics_sample_rate على قيمة أكبر من 0 لجمع الصفوف. وبدون قسم السجل، تفشل الاستعلامات على هذا الجدول بالخطأ UNKNOWN_TABLE.
أنماط الصفوف
يمكن أن ينتج الاستعلام الواحد نوعين من الصفوف فيsystem.predicate_statistics_log:
- صفوف التصفية، وتُصدَر لكل خطوة
prewhere/تصفية فيMergeTreeSelectProcessor. وتملأ الأعمدةpredicate_expressionوinput_rowsوpassed_rowsوfilter_selectivity، بالإضافة إلى أعمدة المسند الكاملtotal_input_rowsوtotal_passed_rowsوtotal_selectivity. أما الأعمدة المرتبطة بالفهارس فتكون فارغة. - صفوف الفهارس، وتُصدَر لكل خطوة قراءة في
ReadFromMergeTree. وتملأ المصفوفاتindex_namesوindex_typesوtotal_granulesوgranules_afterوindex_selectivities، بمدخل واحد لكل مرحلة فهرسة (المفتاح الأساسي، والتقسيم، وفهارس التخطي). أما الأعمدة المرتبطة بالمسند فتكون فارغة.
query_id وtable، لذلك يمكن ضمّها عند الحاجة إلى كليهما.
أخذ العينات والعبء الإضافي
يُتحكَّم في أخذ العينات بواسطةpredicate_statistics_sample_rate:
0يعطّل الجمع.1يأخذ عيّنة من كل query.N > 1يأخذ عيّنة من حوالي1 / Nمن queries، استنادًا إلى قيمةhashلـquery_id.
SYSTEM FLUSH LOGS إذا كنت بحاجة إلى ظهور الصفوف فورًا.
من الآمن تنفيذ TRUNCATE على هذا الجدول أو حذفه في أي وقت.
الأعمدة
hostname(LowCardinality(String)) — اسم المضيف للخادم الذي ينفّذ الاستعلام.clickhouse_version(LowCardinality(String)) — إصدار خادم ClickHouse الذي أنتج الصف.system_processor(LowCardinality(String)) — معمارية وحدة المعالجة المركزية لخادم ClickHouse الذي أنتج الصف.event_date(Date) — تاريخ الحدث.event_time(DateTime) — الطابع الزمني عند كتابة مُدخل السجل هذا.database(LowCardinality(String)) — اسم قاعدة بيانات الجدول الهدف.table(LowCardinality(String)) — اسم الجدول الهدف.query_id(String) — معرّف الاستعلام للرجوع إلى query_log.predicate_expression(String) — تعبير المسند الكامل الذي تتعامل معه خطوةprewhere/تصفية هذه (تفريغ ActionsDAG).input_rows(UInt64) — الصفوف التي تدخل إلى خطوةprewhere/تصفية هذه.passed_rows(UInt64) — الصفوف التي اجتازت خطوةprewhere/تصفية هذه.filter_selectivity(Float64) — انتقائية هذه الخطوة: passed_rows / input_rows.total_input_rows(UInt64) — الصفوف التي تدخل إلى أول خطوة prewhere (إجمالي الصفوف المقروءة من الحبيبات).total_passed_rows(UInt64) — الصفوف التي اجتازت جميع خطوات prewhere (الصفوف التي تم تمريرها إلى الاستعلام).total_selectivity(Float64) — انتقائية المسند بالكامل: total_passed_rows / total_input_rows.index_names(Array(LowCardinality(String))) — أسماء الفهارس المطبّقة، مثل [‘PrimaryKey’, ‘idx_bf_status’] (في صفوف الفهارس فقط).index_types(Array(LowCardinality(String))) — أنواع الفهارس المطبّقة: PrimaryKey وSkip وMinMax وPartition (في صفوف الفهارس فقط).total_granules(Array(UInt64)) — الحبيبات الداخلة إلى كل مرحلة فهرسة (في صفوف الفهارس فقط).granules_after(Array(UInt64)) — الحبيبات المتبقية بعد كل مرحلة فهرسة (في صفوف الفهارس فقط).index_selectivities(Array(Float64)) — الانتقائية لكل فهرس: granules_after / total_granules (في صفوف الفهارس فقط).