Atomic استعلامات DROP TABLE وRENAME TABLE غير المعطِّلة، واستعلامات EXCHANGE TABLES الذرّية. ويُستخدم محرك قاعدة البيانات Atomic افتراضيًا في ClickHouse مفتوح المصدر.
في ClickHouse Cloud، يُستخدم أيضًا افتراضيًا
محرك قاعدة البيانات Shared“، كما يدعم العمليات المذكورة أعلاه.إنشاء قاعدة بيانات
تفاصيل وتوصيات
معرّف UUID للجدول
Atomic معرّف معرّف UUID دائم، وتُخزَّن بياناته في الدليل التالي:
xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy إلى معرّف UUID الخاص بالجدول.
افتراضيًا، يُنشأ معرّف UUID تلقائيًا. ومع ذلك، يمكن للمستخدمين تحديد معرّف UUID صراحةً عند إنشاء جدول، رغم أن ذلك غير مُوصى به.
على سبيل المثال:
يمكنك استخدام الإعداد show_table_uuid_in_table_create_query_if_not_nil لعرض معرّف UUID عبر استعلام
SHOW CREATE.RENAME TABLE
RENAME معرّف UUID ولا تنقل بيانات الجدول. تُنفَّذ هذه الاستعلامات فورًا ولا تنتظر حتى تكتمل الاستعلامات الأخرى التي تستخدم الجدول.
DROP/DETACH TABLE
DROP TABLE، لا تُزال أي بيانات. يكتفي محرّك Atomic بوضع علامة على الجدول على أنه محذوف، وذلك بنقل البيانات الوصفية الخاصة به إلى /clickhouse_path/metadata_dropped/ وإخطار خيط المعالجة في الخلفية. ويُحدَّد التأخير قبل الحذف النهائي لبيانات الجدول بواسطة إعداد database_atomic_delay_before_drop_table_sec.
يمكنك تحديد الوضع المتزامن باستخدام المُعدِّل SYNC. استخدم الإعداد database_atomic_wait_for_drop_and_detach_synchronously لتحقيق ذلك. في هذه الحالة، ينتظر DROP حتى تنتهي استعلامات SELECT وINSERT وغيرها من الاستعلامات الجارية التي تستخدم الجدول. وسيُزال الجدول عندما لا يعود قيد الاستخدام.
EXCHANGE TABLES/DICTIONARIES
EXCHANGE الجداول أو القواميس تبديلًا ذريًا. على سبيل المثال، بدلًا من هذه العملية غير الذرية:
Non-atomic
Atomic
ReplicatedMergeTree في قاعدة بيانات atomic
ReplicatedMergeTree، يُنصح بعدم تحديد معلمات المحرك الخاصة بالمسار في ZooKeeper واسم النسخة المتماثلة. في هذه الحالة، ستُستخدم معلمتا الإعداد default_replica_path وdefault_replica_name. وإذا أردت تحديد معلمات المحرك صراحةً، فيُنصح باستخدام ماكرو {uuid}. وهذا يضمن إنشاء مسارات فريدة تلقائيًا لكل جدول في ZooKeeper.
قرص البيانات الوصفية
disk ضمن SETTINGS، يُستخدم القرص لتخزين ملفات البيانات الوصفية للجدول.
على سبيل المثال:
database_disk.disk.
انظر أيضًا
- system.databases جدول النظام