يشرح هذا الدليل كيف يمكنك استخدام ClickHouse وS3 لتنفيذ معمارية تفصل بين التخزين والحوسبة.
يعني فصل التخزين والحوسبة أن موارد الحوسبة وموارد التخزين تُدار بشكل مستقل. في ClickHouse، يتيح ذلك قابلية توسّع أفضل، وكفاءة أعلى من حيث التكلفة، ومرونة أكبر. ويمكنك توسيع موارد التخزين وموارد الحوسبة كلًّا على حدة حسب الحاجة، بما يحسّن الأداء والتكاليف.
ويكون استخدام ClickHouse المعتمد على S3 مفيدًا بشكل خاص في حالات الاستخدام التي تكون فيها أهمية أداء الاستعلامات على البيانات “الباردة” أقل. يوفّر ClickHouse دعمًا لاستخدام S3 بوصفه طبقة التخزين لمحرك MergeTree من خلال S3BackedMergeTree. ويتيح لك محرك الجداول هذا الاستفادة من مزايا قابلية التوسّع والتكلفة التي يوفّرها S3، مع الحفاظ على أداء insert وquery لمحرك MergeTree.
يرجى ملاحظة أن تنفيذ وإدارة معمارية فصل التخزين والحوسبة أكثر تعقيدًا مقارنةً بعمليات نشر ClickHouse القياسية. وبينما يتيح Self-managed ClickHouse فصل التخزين والحوسبة كما هو موضّح في هذا الدليل، فإننا نوصي باستخدام ClickHouse Cloud، الذي يتيح لك استخدام ClickHouse بهذه المعمارية من دون أي تهيئة، وذلك باستخدام محرك الجداول SharedMergeTree.
يفترض هذا الدليل أنك تستخدم ClickHouse الإصدار 22.8 أو أحدث.
لا تُعِد أي سياسة دورة حياة لـ AWS/GCS. هذا غير مدعوم وقد يؤدي إلى تلف الجداول.
1. استخدم S3 كقرص في ClickHouse
أنشئ ملفًا جديدًا في الدليل config.d الخاص بـ ClickHouse لتخزين تهيئة التخزين:
انسخ محتوى XML التالي إلى الملف الذي أُنشئ حديثًا، مع استبدال BUCKET وACCESS_KEY_ID وSECRET_ACCESS_KEY بتفاصيل حاوية AWS التي تريد تخزين بياناتك فيها:
إذا كنت بحاجة إلى تحديد إعدادات إضافية لقرص S3 — مثل تحديد region أو إرسال ترويسة HTTP مخصّصة header — فيمكنك العثور على قائمة الإعدادات ذات الصلة هنا.
يمكنك أيضًا استبدال access_key_id وsecret_access_key بما يلي، والذي سيحاول الحصول على بيانات الاعتماد من متغيرات البيئة وبيانات Amazon EC2 الوصفية:
بعد إنشاء ملف الإعداد، تحتاج إلى تغيير ملكية الملف إلى المستخدم والمجموعة clickhouse:
يمكنك الآن إعادة تشغيل خادم ClickHouse حتى تدخل التغييرات حيّز التنفيذ:
2. إنشاء جدول يعتمد على S3
لاختبار أننا هيّأنا قرص S3 بشكل صحيح، يمكننا محاولة إنشاء جدول وإجراء استعلام عليه.
أنشئ جدولًا مع تحديد سياسة التخزين الجديدة لـ S3:
لاحظ أننا لم نكن بحاجة إلى تحديد المحرّك على أنه S3BackedMergeTree. إذ يحوّل ClickHouse نوع المحرّك تلقائيًا داخليًا إذا اكتشف أن الجدول يستخدم S3 للتخزين.
تأكّد من أن الجدول قد أُنشئ باستخدام السياسة الصحيحة:
من المفترض أن تظهر لك النتيجة التالية:
لنُدرِج الآن بعض الصفوف في جدولنا الجديد:
لنتحقق من أنه تم إدراج صفوفنا:
في وحدة تحكم AWS، إذا أُدرِجت بياناتك بنجاح في S3، فمن المفترض أن ترى أن ClickHouse قد أنشأ ملفات جديدة في حاوية S3 التي حددتها.
إذا سار كل شيء بنجاح، فأنت الآن تستخدم ClickHouse مع فصل التخزين والحوسبة!
3. تنفيذ النسخ المتماثل لتحقيق تحمّل الأعطال (اختياري)
لا تقم بتهيئة أي سياسة دورة حياة في AWS/GCS. هذا غير مدعوم وقد يؤدي إلى تلف الجداول.
لتحقيق تحمّل الأعطال، يمكنك استخدام عدة عُقد لخوادم ClickHouse موزعة على عدة مناطق AWS، مع حاوية S3 لكل عقدة.
يمكن تنفيذ النسخ المتماثل باستخدام أقراص S3 عبر محرك الجداول ReplicatedMergeTree. راجع الدليل التالي لمزيد من التفاصيل: