Skip to main content

متى تستخدمه

يكون هذا مفيدًا عندما تكون هناك جداول ذات أنماط تسمية متشابهة وأعمدة متشابهة، لكنها غير مُكرَّرة. ومن الأمثلة على ذلك البحث في قاعدة بيانات system عن إدخالات ضمن جداول query log. الجدول query_log غير مُكرَّر، ولا تُسجَّل فيه إلا الاستعلامات التي تُنفَّذ على عقدة معيّنة. وقد تنتقل البيانات أيضًا إلى جدول مختلف. فعلى سبيل المثال، قد تُدرَج البيانات في query_log_0 أو query_log_1 وما إلى ذلك. وبما أن إحدى العقد قد تنقل البيانات في وقت يختلف عن بقية العقد، فمن المفيد محاولة العثور على البيانات التي نبحث عنها في جداول لا تتطابق أسماؤها تمامًا. في الأساس، نحتاج إلى تنفيذ شيء مثل هذا، ولكن بصياغة ClickHouse: SELECT column1, column2 FROM my_db.my_table_* ولهذا، يمكننا استخدام clusterAllReplicas() للبحث في جميع العقد، واستخدام table function ‏merge() حتى نتمكن من استخدام نمط Regex للبحث في عدة جداول. يوضح المثال التالي كيفية الاستعلام عن جميع الجداول ذات البادئة query_log:
لاحظ أن الأعمدة التي تختارها يجب أن تكون موجودة في كل الجداول التي يُجرى الاستعلام عنها، وإلا فقد تواجه خطأً مثل:
بدلًا من ذلك، يمكنك استخدام عبارة EXCEPT لاستبعاد أي أعمدة قد لا تكون موجودة عبر جداول مختلفة. مثال:
آخر تعديل في ٣ يوليو ٢٠٢٦