الاستعلام في ClickHouse Cloudتُخزَّن بيانات جدول النظام هذا محليًا على كل عقدة في ClickHouse Cloud. لذلك، يتطلب الحصول على رؤية كاملة لجميع البيانات استخدام الدالة
clusterAllReplicas. راجع هنا لمزيد من التفاصيل.الوصف
system.iceberg_metadata_log أحداث الوصول إلى البيانات الوصفية وتحليلها لجداول Iceberg التي يقرؤها ClickHouse. ويوفّر معلومات تفصيلية عن كل ملف بيانات وصفية أو إدخال جرت معالجته، مما يفيد في استكشاف الأخطاء وإصلاحها، والتدقيق، وفهم تطوّر بنية جداول Iceberg.
يسجّل هذا الجدول كل ملف بيانات وصفية وكل إدخال تتم قراءته من جداول Iceberg، بما في ذلك ملفات البيانات الوصفية الجذرية، وقوائم manifest، وإدخالات manifest. كما يساعد المستخدمين على تتبّع كيفية تفسير ClickHouse للبيانات الوصفية لجداول Iceberg وتشخيص المشكلات المتعلقة بتطوّر المخطط، أو تعيين الملفات، أو تخطيط الاستعلام.
هذا الجدول مخصّص أساسًا لأغراض استكشاف الأخطاء وإصلاحها.
التحكّم في درجة تفصيل السجلات
iceberg_metadata_log_level.
لتسجيل جميع البيانات الوصفية المستخدمة في الاستعلام الحالي:
iceberg_metadata_log_level.
من الجيد أن تعرف
- استخدم
iceberg_metadata_log_levelعلى مستوى الاستعلام فقط عندما تحتاج إلى فحص جدول Iceberg لديك بالتفصيل. وإلا، فقد تملأ جدول السجل بقدر مفرط من البيانات الوصفية وتواجه تراجعًا في الأداء. - يحتوي الجدول على إدخالات مكررة، لأنه مخصص أساسًا لاستكشاف الأخطاء وإصلاحها ولا يضمن التفرد لكل كيان. تخزّن صفوف منفصلة المحتوى وحالة التقليم لأن جمعهما يتم في أوقات مختلفة أثناء تنفيذ البرنامج. يُجمع المحتوى عند قراءة البيانات الوصفية، وتُجمع حالة التقليم عند فحص البيانات الوصفية لأغراض التقليم. لا تعتمد مطلقًا على الجدول نفسه في إزالة التكرار.
- إذا استخدمت
content_typeأكثر تفصيلاً منManifestListMetadata، فسيتم تعطيل ذاكرة التخزين المؤقت للبيانات الوصفية في Iceberg لقوائم manifest. - وبالمثل، إذا استخدمت
content_typeأكثر تفصيلاً منManifestFileMetadata، فسيتم تعطيل ذاكرة التخزين المؤقت للبيانات الوصفية في Iceberg لملفات manifest. - إذا أُلغي استعلام SELECT أو فشل، فقد يظل جدول السجل يحتوي على إدخالات للبيانات الوصفية التي تمت معالجتها قبل الفشل، لكنه لن يحتوي على معلومات عن كيانات البيانات الوصفية التي لم تتم معالجتها.
الأعمدة
hostname(LowCardinality(String)) — اسم مضيف الخادم الذي ينفّذ الاستعلام.event_date(Date) — تاريخ السجل.event_time(DateTime) — وقت الحدث.query_id(String) — معرّف الاستعلام.content_type(Enum8(‘None’ = 0, ‘Metadata’ = 1, ‘ManifestListMetadata’ = 2, ‘ManifestListEntry’ = 3, ‘ManifestFileMetadata’ = 4, ‘ManifestFileEntry’ = 5)) — نوع المحتوى.table_path(String) — مسار الجدول.file_path(String) — مسار الملف.content(String) — المحتوى بتنسيق JSON (محتوى ملف JSON، أو البيانات الوصفية لـ Avro، أو إدخال Avro).row_in_file(Nullable(UInt64)) — الصف داخل الملف.pruning_status(Nullable(Enum8(‘NotPruned’ = 0, ‘PartitionPruned’ = 1, ‘MinMaxIndexPruned’ = 2))) — حالة استبعاد القسم أو استبعاد فهرس الحد الأدنى-الحد الأقصى للملف.
قيم content_type
None: لا يوجد محتوى.Metadata: ملف البيانات الوصفية الجذر.ManifestListMetadata: البيانات الوصفية لقائمة البيان.ManifestListEntry: إدخال في قائمة البيان.ManifestFileMetadata: البيانات الوصفية لملف البيان.ManifestFileEntry: إدخال في ملف البيان.