يمكن تشغيل أي query باستخدام إضافة ClickHouse.
يُعد منشئ الاستعلامات خيارًا مناسبًا للاستعلامات الأبسط، لكنك ستحتاج إلى استخدام SQL Editor عند التعامل مع الاستعلامات المعقدة.
تتضمن جميع الاستعلامات في منشئ الاستعلامات نوع استعلام، كما تتطلب تحديد عمود واحد على الأقل.
أنواع الاستعلامات المتاحة هي:
- الجدول: أبسط أنواع الاستعلامات لعرض البيانات بتنسيق جدول. وهو مناسب كخيار عام للاستعلامات البسيطة والمعقدة التي تتضمن دوالًا تجميعية.
- السجلات: مُحسَّن لإنشاء استعلامات السجلات. ويعمل بأفضل شكل في عرض Explore مع تهيئة الإعدادات الافتراضية.
- السلاسل الزمنية: الأنسب لإنشاء استعلامات السلاسل الزمنية. ويتيح تحديد عمود زمني مخصص وإضافة دوال تجميعية.
- التتبعات: مُحسَّن للبحث في التتبعات وعرضها. ويعمل بأفضل شكل في عرض Explore مع تهيئة الإعدادات الافتراضية.
- SQL Editor: يمكن استخدام SQL Editor عندما تريد تحكمًا كاملاً في الاستعلام. في هذا الوضع، يمكن تنفيذ أي SQL query.
سيؤدي إعداد نوع الاستعلام إلى تغيير تخطيط أداة إنشاء الاستعلامات ليتوافق مع نوع الاستعلام الذي يتم إنشاؤه.
ويحدد نوع الاستعلام أيضًا اللوحة المستخدمة عند عرض البيانات بصريًا.
أكثر أنواع الاستعلامات مرونة هو استعلام الجدول. وهو بمثابة نوع عام يشمل مُنشئات الاستعلام الأخرى المصممة للتعامل مع الاستعلامات البسيطة والتجميعية.
سيعرض نوع الاستعلام هذا البيانات في شكل جدول.
يوفّر نوع استعلام السجلات أداة إنشاء استعلامات تركّز على الاستعلام عن بيانات السجلات.
يمكن تهيئة القيم الافتراضية في إعدادات السجلات الخاصة بمصدر البيانات، بحيث تُحمَّل أداة إنشاء الاستعلامات مسبقًا بقاعدة بيانات/جدول وأعمدة افتراضية.
يمكن أيضًا تمكين OpenTelemetry لتحديد الأعمدة تلقائيًا وفقًا لإصدار المخطط.
تُضاف عوامل التصفية Time وLevel افتراضيًا، إلى جانب ORDER BY لعمود Time.
وترتبط عوامل التصفية هذه بالحقول المقابلة لها، ويتم تحديثها عند تغيير الأعمدة.
ويُستبعَد عامل التصفية Level من SQL افتراضيًا، وسيؤدي تغييره من الخيار IS ANYTHING إلى تمكينه.
يدعم نوع استعلام السجلات روابط البيانات.
سيعرض نوع الاستعلام هذا البيانات في لوحة السجلات، إلى جانب لوحة المدرج التكراري للسجلات في الأعلى.
يمكن عرض الأعمدة الإضافية المحددة في الاستعلام ضمن صف السجل الموسّع:
يشبه نوع استعلام السلاسل الزمنية الجدول، لكنه يركز على بيانات السلاسل الزمنية.
العرضان متشابهان إلى حد كبير، مع هذه الاختلافات البارزة:
- حقل Time مخصص.
- في وضع Aggregate mode، يُطبَّق تلقائيًا ماكرو للفاصل الزمني مع Group By لحقل Time.
- في وضع Aggregate mode، يكون حقل “Columns” مخفيًا.
- يُضاف تلقائيًا عامل تصفية للنطاق الزمني وOrder By لحقل Time.
هل ينقص التصور البياني بعض البيانات؟في بعض الحالات، قد تبدو لوحة السلاسل الزمنية وكأنها مقصوصة لأن القيمة الافتراضية للحد هي 1000.جرّب إزالة عبارة LIMIT بتعيينها إلى 0 (إذا كانت مجموعة البيانات لديك تسمح بذلك).
يعرض نوع الاستعلام هذا البيانات باستخدام لوحة السلاسل الزمنية.
يوفّر نوع استعلام التتبّع أداة إنشاء استعلامات لتسهيل البحث في التتبعات وعرضها.
وهو مصمَّم لبيانات OpenTelemetry، لكن يمكن تحديد الأعمدة لعرض التتبعات من مخطط مختلف.
يمكن تهيئة القيم الافتراضية في إعدادات التتبّع الخاصة بمصدر البيانات، بحيث يتم تحميل أداة إنشاء الاستعلامات مسبقًا بقاعدة بيانات/جدول وأعمدة افتراضية. وإذا تم تكوين القيم الافتراضية، فسيُطوى قسم اختيار الأعمدة افتراضيًا.
كما يمكن تفعيل OpenTelemetry لتحديد الأعمدة تلقائيًا وفقًا لإصدار المخطط.
تُضاف عوامل التصفية الافتراضية بهدف إظهار spans ذات المستوى الأعلى فقط.
ويتم أيضًا تضمين ORDER BY لعمودي Time وDuration Time.
وترتبط عوامل التصفية هذه بالحقول المقابلة لها، وستتحدّث عند تغيير الأعمدة.
ويُستبعَد عامل تصفية اسم الخدمة من SQL افتراضيًا، وسيؤدي تغييره من الخيار IS ANYTHING إلى تفعيله.
يدعم نوع استعلام التتبّع روابط البيانات.
سيعرض نوع الاستعلام هذا البيانات باستخدام عرض الجدول في وضع Trace Search، وباستخدام لوحة التتبّع في وضع Trace ID.
بالنسبة إلى الاستعلامات شديدة التعقيد التي لا تناسب أداة إنشاء الاستعلامات، يمكنك استخدام محرر SQL.
يمنحك ذلك تحكمًا كاملًا في الاستعلام، إذ يتيح لك كتابة ClickHouse SQL مباشرةً وتشغيله.
يمكن فتح محرر SQL باختيار “SQL Editor” من أعلى محرر الاستعلامات.
لا يزال بإمكانك استخدام دوال الماكرو في هذا الوضع.
يمكنك التبديل بين أنواع الاستعلامات للحصول على العرض المرئي الأنسب لاستعلامك.
ويؤثر هذا التبديل أيضًا في عرض لوحة المعلومات، ولا سيما عند التعامل مع بيانات السلاسل الزمنية.
يمكن استخدام روابط البيانات
في Grafana للربط باستعلامات جديدة.
تم تمكين هذه الميزة ضمن إضافة ClickHouse لربط trace بـ logs والعكس صحيح. وهي تعمل بأفضل شكل عند تهيئة OpenTelemetry لكلٍّ من logs وtraces في إعدادات مصدر البيانات
مثال على روابط trace في جدول
مثال على روابط trace في logs
يمكنك إنشاء رابط بيانات عبر تحديد عمود باسم traceID في الاستعلام. هذا الاسم لا يميّز بين الأحرف الكبيرة والصغيرة، كما يدعم إضافة شرطة سفلية قبل “ID”. على سبيل المثال: traceId وTraceId وTRACE_ID وtracE_iD كلها صيغ صالحة.
إذا كان OpenTelemetry مفعّلًا في استعلام السجلات أو التتبّع، فسيُدرج عمود معرّف التتبّع تلقائيًا.
عند تضمين عمود لمعرّف التتبّع، سيُرفق بالبيانات رابطا “عرض التتبّع” و”عرض السجلات”.
عند توفر روابط البيانات، يمكنك فتح التتبّعات والسجلات باستخدام معرّف التتبّع المتاح.
سيؤدي “عرض التتبّع” إلى فتح لوحة منقسمة تتضمن التتبّع، بينما سيؤدي “عرض السجلات” إلى فتح استعلام سجلات مُرشَّحًا بحسب معرّف التتبّع.
إذا نُقر على الرابط من لوحة معلومات بدلًا من عرض Explore، فسيُفتح الرابط في علامة تبويب جديدة ضمن عرض Explore.
يلزم إعداد القيم الافتراضية لكل من السجلات والتتبّعات عند الانتقال بين أنواع الاستعلامات (من السجلات إلى التتبّعات ومن التتبّعات إلى السجلات). ولا تكون القيم الافتراضية مطلوبة عند فتح رابط من نوع الاستعلام نفسه، إذ يمكن ببساطة نسخ الاستعلام.
مثال على عرض تتبّع (اللوحة اليمنى) من استعلام سجلات (اللوحة اليسرى)
تُعد وحدات الماكرو طريقة بسيطة لإضافة SQL ديناميكي إلى استعلامك.
وقبل إرسال الاستعلام إلى خادم ClickHouse، تعمل الإضافة على توسيع الماكرو واستبداله بالتعبير الكامل.
يمكن للاستعلامات الواردة من كلٍّ من SQL Editor وQuery Builder استخدام وحدات الماكرو.
يمكن استخدام وحدات الماكرو في أي مكان داخل الاستعلام، وتكرارها عند الحاجة.
فيما يلي مثال على استخدام الماكرو $__timeFilter:
الإدخال:
ناتج الاستعلام النهائي:
في هذا المثال، يُطبَّق النطاق الزمني في لوحة معلومات Grafana على العمود log_time.
يدعم المكوّن الإضافي أيضًا الصياغة باستخدام الأقواس المعقوفة {}. استخدم هذه الصياغة عندما تحتاج إلى استعلامات داخل المعلمات.
هذه قائمة بجميع وحدات الماكرو المتاحة في المكوّن الإضافي: