نظرة عامة
- استخدام الدالة
remoteSecure()، حيث تُسحَب البيانات أو تُدفَع مباشرةً. - استخدام أوامر
BACKUP/RESTOREعبر تخزين الكائنات السحابي
يركّز دليل الترحيل هذا على نهجالمتطلبات المسبقةBACKUP/RESTORE، ويقدّم مثالًا عمليًا على ترحيل قاعدة بيانات أو خدمة كاملة من ClickHouse مفتوح المصدر إلى Cloud عبر حاوية S3.
- أن يكون Docker مثبتًا لديك
- أن تكون لديك حاوية S3 ومستخدم IAM
- أن تكون قادرًا على إنشاء خدمة ClickHouse Cloud جديدة
العنقود مطلوبتتطلب طريقة النسخ الاحتياطي هذه عنقود ClickHouse، لأن الجداول يجب تحويلها من المحرك
MergeTree إلى ReplicatedMergeTree.
إذا كنت تشغّل مثيلًا واحدًا، فاتبع الخطوات الواردة في “Migrating between self-managed ClickHouse and ClickHouse Cloud using remoteSecure” بدلًا من ذلك.التحضير لـ OSS
- استنسخ مستودع الأمثلة إلى جهازك المحلي
- من الطرفية، استخدم
cdللانتقال إلىexamples/docker-compose-recipes/recipes/cluster_2S_2R - تأكد من أن Docker يعمل، ثم ابدأ عنقود ClickHouse:
من جدول MergeTree إلى جدول ReplicatedMergeTree
SharedMergeTree.
وعند استعادة نسخة احتياطية، يحوّل ClickHouse تلقائيًا الجداول التي تستخدم ReplicatedMergeTree إلى جداول SharedMergeTree.
ومن المرجّح أن جداولك تستخدم بالفعل المحرّك ReplicatedMergeTree إذا كنت تشغّل عنقودًا.
وإذا لم يكن الأمر كذلك، فستحتاج إلى تحويل أي جداول MergeTree إلى ReplicatedMergeTree قبل أخذ نسخة احتياطية منها.
ولتوضيح كيفية تحويل جداول MergeTree إلى ReplicatedMergeTree، سنبدأ بجدول MergeTree ثم نحوّله لاحقًا إلى ReplicatedMergeTree.
سنتبع أول خطوتين من دليل بيانات سيارات الأجرة في نيويورك لإنشاء جدول نموذجي وتحميل البيانات إليه.
وقد أُدرجت هاتان الخطوتان أدناه تيسيرًا عليك.
شغّل الأوامر التالية لإنشاء قاعدة بيانات جديدة وإدراج البيانات من حاوية S3 في جدول جديد:
DETACH للجدول.
ReplicatedMergeTree:
الجداول الموزعة مع ReplicatedMergeTree
ReplicatedMergeTree محلي على كل عقدة، وإلى جدول Distributed ليكون نقطة دخول للاستعلامات.
شغّل الأمر التالي لإنشاء الجدول المحلي المُكرَّر على جميع عقد العنقود:
Distributed فوقه:
التحضير لـ Cloud
1
افتح Cloud Console
انتقل إلى https://console.clickhouse.cloud/
2
أنشئ خدمة جديدة
3
اضبط الإعدادات وأنشئ خدمة
اختر المنطقة والتكوين المطلوبين، ثم انقر على
Create service4
أنشئ دور وصول
افتح SQL Consoleتتضمن السياسة كِلا ARNين:
إعداد الوصول إلى S3
لاستعادة النسخة الاحتياطية من S3، ستحتاج إلى تهيئة وصول آمن بين ClickHouse Cloud وحاوية S3 الخاصة بك.- اتبع الخطوات الواردة في “Accessing S3 data securely” لإنشاء دور وصول والحصول على ARN الخاص بالدور.
- حدّث سياسة حاوية S3 التي أنشأتها في “How to create an S3 bucket and IAM role” بإضافة ARN الخاص بالدور من الخطوة السابقة.
- مستخدم IAM (
docs-s3-user): يتيح لعنقود ClickHouse ذاتي الإدارة لديك أخذ نسخة احتياطية إلى S3 - ClickHouse Cloud role (
ClickHouseAccess-001): يتيح لخدمة Cloud لديك الاستعادة من S3
أخذ نسخة احتياطية (في النشر ذاتي الإدارة)
BUCKET_URL وKEY_ID وSECRET_KEY ببيانات اعتماد AWS الخاصة بك.
يوضح لك الدليل “كيفية إنشاء حاوية S3 ودور IAM”
كيفية الحصول عليها إذا لم تكن لديك بعد.
الشارد 1:
عمليات النشر ذات العقدة الواحدةإذا كنت لا تستخدم الجداول الموزعة، فيمكنك إنشاء نسخة احتياطية من قاعدة البيانات بالكامل بأمر واحد:
- جميع قواعد بيانات المستخدم والجداول
- حسابات المستخدمين وكلمات المرور
- الأدوار والأذونات
- ملفات تعريف الإعدادات
- سياسات الصفوف
- الحصص
- الدوال المعرّفة من قبل المستخدم
TO S3() (لكلٍّ من AWS وGCP) وTO AzureBlobStorage().
بالنسبة إلى قواعد البيانات الكبيرة جدًا، فكّر في استخدام ASYNC لتشغيل النسخ الاحتياطي في الخلفية:
الاستعادة إلى ClickHouse Cloud
ROLE_ARN على
القيمة التي تم الحصول عليها من “الوصول إلى بيانات S3 بأمان”.
استخدم SETTINGS allow_non_empty_tables=true في عملية الاستعادة الثانية (وأي عملية استعادة لاحقة)
بحيث تُضاف بيانات الشارد إلى الجداول التي تمت استعادتها بالفعل بدلًا من فشل العملية بسبب تعارض:
الشارد 1:
عمليات النشر غير الموزعةإذا كنت لا تستخدم الجداول الموزعة، فاستعِد قاعدة البيانات بأمر واحد:
SharedMergeTree داخليًا، لم تعد هناك حاجة إلى الجدول الموزّع القديم. يمكنك حذفه واستبداله بعرض يحتفظ باسم الجدول الأصلي لاستعلاماتك:
ReplicatedMergeTree غير الموزعة كجداول SharedMergeTree: