Skip to main content
يُرفِق جدولًا أو قاموسًا، على سبيل المثال عند نقل قاعدة بيانات إلى خادم آخر. الصيغة
لا ينشئ هذا الاستعلام بيانات على القرص، بل يفترض أن البيانات موجودة بالفعل في المواقع المناسبة، ويضيف فقط معلومات عن الجدول أو القاموس أو قاعدة البيانات المحددة إلى الخادم. بعد تنفيذ استعلام ATTACH، سيصبح الخادم على علم بوجود الجدول أو القاموس أو قاعدة البيانات. إذا كان قد سبق فصل جدول (استعلام DETACH)، أي إن بنيته معروفة، فيمكنك استخدام الصيغة المختصرة من دون تعريف البنية.

إرفاق جدول موجود

الصياغة
يُستخدم هذا الاستعلام عند تشغيل الخادم. يخزّن الخادم البيانات الوصفية للجداول في هيئة ملفات تحتوي على استعلامات ATTACH، ويشغّلها ببساطة عند بدء التشغيل (باستثناء بعض جداول النظام التي تُنشأ صراحةً على الخادم). إذا كان الجدول قد فُصل بشكل دائم، فلن يُعاد إرفاقه عند بدء تشغيل الخادم، لذا عليك استخدام استعلام ATTACH صراحةً.

إنشاء جدول جديد وإرفاق البيانات به

مع تحديد مسار بيانات الجدول

ينشئ هذا الاستعلام جدولًا جديدًا بالبنية المحددة، ويُرفق بيانات الجدول من الدليل المحدد داخل user_files. يحتاج المستخدم إلى الصلاحيتين READ ON FILE وWRITE ON FILE لتنفيذ هذا الاستعلام: فهو يقرأ الدليل وينقله إلى مسار بيانات الجدول الجديد. الصيغة
مثال
Query
Response

مع UUID جدول محدد

ينشئ هذا الاستعلام جدولًا جديدًا بالبنية المحددة ويُرفق البيانات من الجدول ذي الـ UUID المحدد. وهو مدعوم من محرك قاعدة البيانات Atomic. بنية الجملة

إرفاق جدول MergeTree كـ ReplicatedMergeTree

يتيح ذلك إرفاق جدول MergeTree غير متماثل كـ ReplicatedMergeTree. سيُنشأ جدول ReplicatedMergeTree باستخدام قيم إعدادَي default_replica_path وdefault_replica_name. ومن الممكن أيضًا إرفاق جدول متماثل كجدول MergeTree عادي. يُدعَم التحويل للجداول الموجودة في قواعد البيانات من نوع Atomic وOrdinary. لا يمتلك الجدول الموجود في قاعدة بيانات من نوع Ordinary معرّف UUID، لذا يُنشئ التحويل معرّف UUID، ويوسّع به default_replica_path مرة واحدة، ثم يخزّن المسار الناتج صراحةً ضمن وسيطات المحرك للجدول المحوَّل. لإضافة نسخ متماثلة أخرى لمثل هذا الجدول، حدّد هذا المسار صراحةً في الوسيطة الأولى لمحرك ReplicatedMergeTree؛ ويمكنك العثور عليه في العمود zookeeper_path ضمن system.replicas. ونظرًا لأن المسار المخزَّن لم يعد يحتوي على الماكرو {uuid}، يُحدَّد الـ znode الذي يملكه هذا الجدول عند كل تحميل بمطابقة المسار مع default_replica_path من جديد؛ ولذلك يُرفض التحويل إذا تعذّرت مطابقة هذا القالب عكسيًا (على سبيل المثال، إذا كان القالب يوسّع {uuid} أكثر من مرة). ولا يُدعَم استخدام {uuid} في default_replica_name في أي تحويل. لاحظ أن بيانات الجدول في ZooKeeper لا تتأثر بهذا الاستعلام. وهذا يعني أنه يجب عليك إضافة البيانات الوصفية في ZooKeeper باستخدام SYSTEM RESTORE REPLICA أو مسحها باستخدام SYSTEM DROP REPLICA ... FROM ZKPATH ... بعد الإرفاق. إذا كنت تحاول إضافة نسخة متماثلة إلى جدول ReplicatedMergeTree موجود، فضع في اعتبارك أن جميع البيانات المحلية في جدول MergeTree المحوَّل ستصبح منفصلة. الصيغة
تحويل الجدول إلى جدول متماثل
تحويل الجدول إلى جدول غير متماثل احصل على مسار ZooKeeper واسم النسخة المتماثلة للجدول:
Query
Response
ألحِق الجدول كجدول غير متماثل، واحذف بيانات النسخة المتماثلة من ZooKeeper:
Query

إرفاق قاموس موجود

يُرفق قاموسًا فُصل سابقًا. الصيغة

إرفاق قاعدة بيانات موجودة

يُرفِق قاعدة بيانات سبق فصلها. الصيغة