يمكن تمكين المجموعات المسماة المُنشأة باستخدام DDL في بعض خدمات ClickHouse Cloud. اتصل بالدعم للتأكد من التوافر. المجموعات المسماة المحددة في ملفات التهيئة غير متاحة لأن المستخدمين لا يمكنهم تعديل ملفات تهيئة الخادم في ClickHouse Cloud.
[NOT] OVERRIDABLE وسمات XML
و/أو خيار التهيئة allow_named_collection_override_by_default.
تخزين المجموعات المسماة في قاعدة بيانات النظام
مثال على DDL
- يمكن دائمًا استبدال قيمة
key_1. - لا يمكن أبدًا استبدال قيمة
key_2. - يمكن استبدال قيمة
urlأو عدم استبدالها بحسب قيمةallow_named_collection_override_by_default.
الأذونات اللازمة لإنشاء المجموعات المسماة باستخدام DDL
لإدارة المجموعات المسماة باستخدام DDL، يجب أن يمتلك المستخدم امتيازnamed_collection_control. ويمكن تعيين ذلك بإضافة ملف إلى /etc/clickhouse-server/users.d/. ويوضح المثال منح المستخدم default امتيازي access_management وnamed_collection_control:
/etc/clickhouse-server/users.d/user_default.xml
named_collection_control للمستخدم إنشاء المجموعات المسماة وتعديلها وحذفها، لكنه لا يتيح له قراءة القيم المخزّنة فيها بالفعل. فتلك امتياز منفصل هو SHOW NAMED COLLECTIONS SECRETS، ويُفعَّل عبر الإعداد show_named_collections_secrets. ولا يمكن للمستخدم منح سوى الامتيازات التي يمتلكها هو نفسه، لذا فما دام show_named_collections_secrets معطّلًا، فإن المستخدم لا يمتلك المجموعة الكاملة من الامتيازات، ويُرفض GRANT ALL ON *.* TO another_user WITH GRANT OPTION مع الرسالة (Missing permissions: SHOW NAMED COLLECTIONS SECRETS ON *).
تخزين المجموعات المُسمّاة
يمكن تخزين المجموعات المُسمّاة إما على القرص المحلي أو في ZooKeeper/Keeper. ويُستخدم التخزين المحلي افتراضيًا. كما يمكن تخزينها باستخدام التشفير، بالخوارزميات نفسها المستخدمة في تشفير القرص، حيث يُستخدمaes_128_ctr افتراضيًا.
لتهيئة تخزين المجموعات المُسمّاة، تحتاج إلى تحديد type. ويمكن أن تكون هذه القيمة إما local أو keeper/zookeeper. أما في حالة التخزين المشفّر،
فيمكنك استخدام local_encrypted أو keeper_encrypted/zookeeper_encrypted.
لاستخدام ZooKeeper/Keeper، نحتاج أيضًا إلى إعداد path (المسار في ZooKeeper/Keeper الذي ستُخزَّن فيه المجموعات المُسمّاة) ضمن
قسم named_collections_storage في ملف التهيئة. يستخدم المثال التالي التشفير وZooKeeper/Keeper:
update_timeout_ms هي 5000.
يمكنك فحص نوع التخزين النشط عبر system.server_settings وgetServerSetting:
SYSTEM RELOAD CONFIG الواجهة الخلفية النشطة.
تخزين المجموعات المسماة في ملفات التهيئة
مثال بتنسيق XML
/etc/clickhouse-server/config.d/named_collections.xml
- يمكن دائمًا إعادة تعريف
key_1. - لا يمكن مطلقًا إعادة تعريف
key_2. - يمكن إعادة تعريف
urlأو عدم إعادة تعريفه بحسب قيمةallow_named_collection_override_by_default.
تعديل المجموعات المسماة
يمكن تعديل المجموعات المسماة المُنشأة باستعلامات DDL أو إسقاطها باستخدام DDL. أما المجموعات المسماة المُنشأة بملفات XML، فيمكن إدارتها عبر تحرير ملف XML المقابل أو حذفه.تعديل مجموعة مسماة مُعرَّفة بـ DDL
غيّر أو أضف المفتاحينkey1 وkey3 في المجموعة collection2
(لن يؤدّي هذا إلى تغيير قيمة العلامة overridable لهذين المفتاحين):
key1 أو أضِفه، واسمح دائمًا باستبداله:
key2 من collection2:
key1 أو أضِفه، واحذف المفتاح key3 في المجموعة collection2:
overridable، عليك
إزالة المفتاح ثم إعادة إضافته.
احذف المجموعة المُسمّاة لـ DDL collection2:
المجموعات المسماة للوصول إلى S3
للاطلاع على وصف المعلمات، راجع الدالة الجدولية S3.مثال على DDL
مثال بتنسيق XML
أمثلة على الدالة s3() والمجموعة المسماة لجدول S3
يستخدم كلٌّ من المثالين التاليين المجموعة المسماة نفسها s3_mydata:
الدالة s3()
جدول S3
المجموعات المسماة للوصول إلى قاعدة بيانات MySQL
للاطلاع على وصف المعلمات، راجع mysql.مثال على DDL
مثال بتنسيق XML
أمثلة على المجموعة المسماة الخاصة بـ قاموس والدالة mysql() وجدول MySQL وقاعدة بيانات MySQL
تستخدم الأمثلة الأربعة التالية المجموعة المسماة نفسهاmymysql:
دالة mysql()
لا تتضمن المجموعة المسماة المَعلمة
table، لذا جرى تحديدها في استدعاء الدالة بالشكل table = 'test'.جدول MySQL
تتجاوز عبارة DDL إعداد connection_pool_size المحدد في المجموعة المسماة.
قاعدة بيانات MySQL
قاموس MySQL
المجموعات المسماة للوصول إلى قاعدة بيانات PostgreSQL
للاطلاع على وصف المعلمات، راجع postgresql. بالإضافة إلى ذلك، تتوفر الأسماء المستعارة التالية:usernameبدلًا منuserdbبدلًا منdatabase.
postgresql_connection_pool_size وإعدادات postgresql_* الأخرى) في المجموعة أو تمريرها كتجاوزات بصيغة key = value. وهي تنطبق على محرك الجدول PostgreSQL، والدالة الجدولية postgresql، ومحرك قاعدة البيانات PostgreSQL؛ وتكون لعبارة SETTINGS الصريحة على الجدول أولوية على القيم الواردة من المجموعة.
تُستخدم المعلمة addresses_expr في المجموعة بدلًا من host:port. وهذه المعلمة اختيارية، لأن هناك معلمات اختيارية أخرى، وهي: host وhostname وport. توضّح الشيفرة الزائفة التالية ترتيب الأولوية:
مثال على استخدام المجموعات المُسمّاة مع الدالة postgresql
مثال على استخدام المجموعات المُسمّاة مع قاعدة بيانات تعمل بمحرك PostgreSQL
ينسخ PostgreSQL البيانات من المجموعة المُسمّاة عند إنشاء الجدول. وأي تغيير يطرأ على المجموعة لا يؤثر في الجداول الحالية.
مثال على استخدام المجموعات المسماة مع قاعدة بيانات تستخدم محرك PostgreSQL
مثال على استخدام المجموعات المسماة مع قاموس مصدره POSTGRESQL
المجموعات المسماة للوصول إلى قاعدة بيانات ClickHouse بعيدة
للاطلاع على وصف المعلمات، راجع remote. مثال على التهيئة:secure غير ضروري للاتصال بسبب remoteSecure، لكن يمكن استخدامه مع القواميس.
مثال على استخدام المجموعات المُسمّاة مع الدالتين remote/remoteSecure
مثال على استخدام المجموعات المسماة مع قاموس مصدره ClickHouse
المجموعات المسماة للوصول إلى Kafka
راجع وصف المعلمات في Kafka.مثال على DDL
مثال بتنسيق XML
مصادقة OAUTHBEARER/OIDC
تُعدّ خياراتOAUTHBEARER إعدادات موسّعة لـ librdkafka، لذا يجب تضمينها داخل <kafka> في كل مجموعة مسمّاة (named collection). أما مفاتيح kafka_* في المستوى الأعلى فتُستخدم لتهيئة محرك الجدول Kafka. يحوّل ClickHouse الشرطات السفلية (underscores) في أسماء عناصر XML المتداخلة إلى نقاط قبل تمريرها إلى librdkafka.
يوضّح المثال التالي كيفية تهيئة بيانات اعتماد عميل OAuth لمساحة أسماء Azure Event Hubs:
/etc/clickhouse-server/config.d/named_collections.xml
ENGINE = Kafka(eventhub_one) مجموعة مسمّاة (named collection)، فإن ClickHouse لا يدمج معها تهيئة <kafka> العامة للخادم. لذا أنشئ مجموعة مستقلة لكل مساحة أسماء في Event Hubs إذا اختلف عنوان الوسيط (broker) أو نطاق OAuth، واحرص على تضمين جميع خصائص OIDC المطلوبة في تلك المجموعة.
تنطبق سمات from_env في هذا المثال على المجموعات المسمّاة المعرّفة بصيغة XML، إذ تقرأ قيمها من بيئة عملية خادم ClickHouse. راجع الاستبدال بواسطة متغيرات البيئة للاطلاع على تفاصيل النشر والقيم الافتراضية، وتشفير التهيئة وإخفاؤها لحماية البيانات السرية في ملفات التهيئة الناتجة عن المعالجة المسبقة.
مثال على استخدام المجموعات المسماة مع جدول Kafka
يستخدم المثالان التاليان المجموعة المسماة نفسهاmy_kafka_cluster:
المجموعات المسماة الخاصة بالنسخ الاحتياطية
للاطلاع على وصف المعلمات، راجع النسخ الاحتياطي والاستعادة.مثال على DDL
مثال بتنسيق XML
المجموعات المسماة للوصول إلى جدول MongoDB والقاموس
للاطلاع على وصف المعلمات، راجع mongodb.مثال على DDL
مثال بتنسيق XML
جدول MongoDB
تتجاوز عبارة DDL إعدادات الخيارات المحددة في المجموعة المسماة.
قاموس MongoDB
تحدِّد المجموعة المُسمّاة اسم الـ
collection على أنه my_collection. وفي استدعاء الدالة، يُتجاوز هذا الإعداد باستخدام collection = 'my_dict' لاختيار collection أخرى.