القاموس هو ربط (key -> attributes) مناسب لأنواع مختلفة من القوائم المرجعية.
يدعم ClickHouse دوالًا خاصة للتعامل مع القواميس يمكن استخدامها في الاستعلامات. ويُعد استخدام القواميس مع الدوال أسهل وأكثر كفاءة من استخدام JOIN مع الجداول المرجعية.
يمكن إنشاء القواميس بطريقتين:
- باستخدام استعلام DDL (موصى به)
- باستخدام ملف تهيئة
إنشاء قاموس باستخدام استعلام DDL
متوفر في ClickHouse Cloud
يمكن إنشاء القواميس باستخدام استعلامات DDL. وهذه هي الطريقة الموصى بها، لأنه عند إنشاء القواميس عبر DDL:
- لا تُضاف أي إدخالات إضافية إلى ملفات تهيئة الخادم.
- يمكن استخدام القواميس ككيانات أساسية مثل الجداول أو طرق العرض.
- يمكن قراءة البيانات مباشرةً باستخدام صيغة
SELECTالمألوفة بدلًا من دوال الجداول الخاصة بالقواميس. لاحظ أنه عند الوصول إلى قاموس مباشرةً عبر تعليمةSELECT، فإن القاموس المخزَّن مؤقتًا لن يُرجع إلا البيانات المخزَّنة مؤقتًا، بينما يُرجع القاموس غير المخزَّن مؤقتًا جميع البيانات التي يخزّنها. - يمكن إعادة تسمية القواميس بسهولة.
الصيغة
CREATE [OR REPLACE] DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster]
(
key1 type1 [DEFAULT | EXPRESSION expr1] [IS_OBJECT_ID],
key2 type2 [DEFAULT | EXPRESSION expr2],
attr1 type2 [DEFAULT | EXPRESSION expr3] [HIERARCHICAL|INJECTIVE],
attr2 type2 [DEFAULT | EXPRESSION expr4] [HIERARCHICAL|INJECTIVE]
)
PRIMARY KEY key1, key2
SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN]))
LAYOUT(LAYOUT_NAME([param_name param_value]))
LIFETIME({MIN min_val MAX max_val | max_val})
SETTINGS(setting_name = setting_value, setting_name = setting_value, ...)
COMMENT 'Comment'| البند | الوصف |
|---|---|
| السمات | تُحدَّد سمات القاموس بطريقة مماثلة لأعمدة الجدول. والخاصية الوحيدة المطلوبة هي النوع، أما سائر الخصائص فيمكن أن تكون لها قيم افتراضية. |
| PRIMARY KEY | يحدّد عمود/أعمدة المفتاح لعمليات البحث في القاموس. ووفقًا للبنية، يمكن تحديد سمة واحدة أو أكثر كمفاتيح. |
SOURCE |
يحدّد مصدر البيانات للقاموس (مثل جدول ClickHouse أو HTTP أو PostgreSQL). |
LAYOUT |
يتحكم في كيفية تخزين القاموس في الذاكرة (مثل FLAT وHASHED وCACHE). |
LIFETIME |
يضبط الفاصل الزمني لتحديث القاموس. |
ON CLUSTER |
ينشئ القاموس على عنقود. اختياري. |
SETTINGS |
إعدادات إضافية للقاموس. اختياري. |
COMMENT |
يضيف تعليقًا نصيًا إلى القاموس. اختياري. |
إنشاء قاموس باستخدام ملف تهيئة
يكون ملف تهيئة القاموس بالتنسيق التالي:
<clickhouse>
<comment>An optional element with any content. Ignored by the ClickHouse server.</comment>
<!--Optional element. File name with substitutions-->
<include_from>/etc/clickhouse-server/substitutions.xml</include_from>
<dictionary>
<!-- Dictionary configuration. -->
<!-- There can be any number of dictionary sections in a configuration file. -->
</dictionary>
</clickhouse>يمكنك إعداد أي عدد من القواميس في الملف نفسه.
- البُنى — كيفية تخزين القواميس في الذاكرة
- المصادر — الاتصال بمصادر البيانات
- الفاصل الزمني للتحديث — تهيئة التحديث التلقائي
- السمات — تهيئة المفتاح والسمات
- القواميس المضمّنة — قواميس geobase المضمّنة
- system.dictionaries — جدول نظام يتضمن معلومات عن القواميس