ما هو فصل الحوسبة عن الحوسبة؟
- عُقد compute في ClickHouse (ويُشار إليها باسم النسخ المتماثلة) مع موارد CPU وذاكرة مخصصة
- نقطة نهاية واحدة (أو عدة نقاط نهاية تُنشأ عبر واجهة Console في ClickHouse Cloud) للاتصال بالخدمة (على سبيل المثال،
https://dv2fzne24g.us-east-1.aws.clickhouse.cloud:8443) من أجل الاتصالات المحلية واتصالات تطبيقات الجهات الخارجية - مجلد في التخزين الكائني تخزّن فيه الخدمة جميع البيانات وجزءًا من البيانات الوصفية:
الشكل 1 - خدمة واحدة في ClickHouse Cloud بدلًا من الاكتفاء بخدمة واحدة، يمكنك إنشاء عدة خدمات لها إمكانية الوصول إلى مساحة التخزين المشتركة نفسها، مما يتيح لك تخصيص الموارد لأعباء عمل محددة من دون الحاجة إلى تكرار البيانات. ويُسمى هذا المفهوم فصل الحوسبة عن الحوسبة. يعني فصل الحوسبة عن الحوسبة أن لكل خدمة مجموعتها الخاصة من النسخ المتماثلة ونقطة نهاية، لكنها تستخدم مجلد التخزين الكائني نفسه وتصل إلى الجداول والعروض وغيرها نفسها. وهذا يعني أنه يمكنك اختيار حجم compute المناسب لعبء العمل لديك. فقد تكتفي بعض أعباء العمل لديك بنسخة متماثلة صغيرة واحدة فقط، بينما قد تتطلب أخرى إتاحة عالية كاملة (HA) ومئات الجيجابايتات من الذاكرة عبر عدة نسخ متماثلة. كما يتيح فصل الحوسبة عن الحوسبة فصل عمليات القراءة عن عمليات الكتابة حتى لا تتداخل مع بعضها:
الشكل 2 - فصل compute في ClickHouse Cloud
ما هو المستودع؟
- الخدمة الأساسية
DWH Prod - الخدمة الثانوية
DWH Prod Subservice
الشكل 3 - مثال على مستودع تشترك جميع الخدمات داخل المستودع نفسه في ما يلي:
- المنطقة (على سبيل المثال، us-east1)
- موفّر الخدمات السحابية (AWS أو GCP أو Azure)
- إصدار قاعدة بيانات ClickHouse
- ClickHouse Keeper (لإدارة النسخ المتماثلة)
ضوابط الوصول
بيانات اعتماد قاعدة البيانات
الشكل 4 - أُنشئت المستخدمِة أليس في Service 1، لكنها تستطيع استخدام بيانات الاعتماد نفسها للوصول إلى جميع الخدمات التي تشترك في البيانات نفسها
التحكم في الوصول إلى الشبكة
الشكل 5 - مُنعت Alice من الوصول إلى الخدمة 2 بسبب إعدادات التحكم في الوصول إلى الشبكة يمكن أيضًا تطبيق أدوار ClickHouse والمنح للتحكم في الوصول إلى البيانات عندما تتصل بصفتك فردًا بدلًا من المستخدم default.
خدمات للقراءة فقط مقابل خدمات للقراءة والكتابة
- للقراءة والكتابة
- يمكنها قراءة البيانات وكتابتها في ClickHouse
- تُجري عمليات الدمج في الخلفية (مثل دمج الأجزاء بعد عمليات insert للبيانات)، ما يستهلك CPU والذاكرة
- يمكنها تصدير البيانات إلى أنظمة خارجية
- للقراءة فقط
- يمكنها فقط قراءة البيانات؛ ولا يمكنها كتابة البيانات أو تعديلها في ClickHouse
- لا تُجري عمليات الدمج في الخلفية خارج system tables، لذا تكون مواردها مخصصة بالكامل لاستعلامات القراءة
- لا يزال بإمكانها تصدير البيانات إلى أنظمة خارجية (مثلًا عبر table functions)، لكنها لا تستطيع تغيير البيانات داخل ClickHouse
- تنتقل إلى وضع الخمول فورًا، بخلاف خدمات للقراءة والكتابة التي قد تبقى نشطة بسبب عمليات الدمج في الخلفية.
الشكل 6 - خدمات للقراءة والكتابة وللقراءة فقط في مستودع
- تدعم خدمات للقراءة فقط حاليًا عمليات إدارة المستخدمين (CREATE وDROP وما إلى ذلك).
- تعمل Refreshable materialized views فقط على خدمات للقراءة والكتابة (RW) داخل مستودع.
- يكون نوع خدمة (للقراءة فقط أو للقراءة والكتابة) ثابتًا عند الإنشاء، ولا يمكن تغييره لاحقًا من Cloud Console. وللتبديل بين للقراءة فقط وللقراءة والكتابة، أنشئ خدمة جديدة في مستودع بالنوع المطلوب.
التوسعة
1:4 التوسعة التلقائية العمودية بالخدمة الذاتية، بينما تتطلب خدمات Enterprise ذات ملفات التعريف المخصصة تغيير الحجم عموديًا بمساعدة الدعم. تظل خدمات المستوى Basic ثابتة الحجم. لمزيد من المعلومات، راجع الخدمات الكبيرة ذات النسخة المتماثلة الواحدة.
يبلغ الحد الافتراضي للعدد الإجمالي للنسخ المتماثلة في جميع خدمات المستودع 50. راجع حدود الاستخدام لمزيد من التفاصيل. تواصل مع الدعم لرفع الحد.
تعمل التوسعة المجدولة مع الخدمات الفردية في المستودع. وتظل حدود المستودع سارية — خطط الجداول الزمنية بحيث يبقى العدد الإجمالي للنسخ المتماثلة في جميع الخدمات خلال أوقات الذروة ضمن حد المستودع. لمزيد من المعلومات، راجع التوسعة التلقائية.
تغيّرات في سلوك clusterAllReplicas
clusterAllReplicas().
سيؤدي استخدام اسم الـ cluster default إلى استهداف الـ النسخ المتماثلة ضمن الـ خدمة الحالية فقط، وليس جميع الـ خدمات في الـ مستودع.
على سبيل المثال، إذا استدعيت clusterAllReplicas(default, system, processes) من الخدمة 1، فلن تُعاد إلا العمليات التي تعمل على الخدمة 1.
ولإجراء استعلام عبر جميع الـ خدمات في الـ مستودع، استخدم بدلًا من ذلك اسم الـ cluster all_groups.default:
القيود
قيود عزل أعباء العمل
-
تتعامل جميع الخدمات للقراءة والكتابة مع عمليات الدمج في الخلفية افتراضيًا. عند إدراج البيانات في ClickHouse، تُدرِج قاعدة البيانات البيانات أولًا في بعض partitionات التهيئة المرحلية، ثم تُجري عمليات الدمج في الخلفية. وقد تستهلك عمليات الدمج هذه موارد الذاكرة وCPU. وعندما تتشارك خدمتان للقراءة والكتابة التخزين نفسه، فإن كلتيهما تنفذ عمليات في الخلفية. وهذا يعني أنه قد تحدث حالة يكون فيها استعلام
INSERTفي الخدمة 1، بينما تُستكمَل عملية الدمج بواسطة الخدمة 2. لاحظ أن الخدمات للقراءة فقط لا تنفذ عمليات الدمج في الخلفية. تواصل مع الدعم لتعطيل عمليات الدمج على خدمة للقراءة/الكتابة. - تنفذ جميع الخدمات للقراءة والكتابة عمليات الإدراج الخاصة بمحرك الجدول S3Queue. عند إنشاء جدول S3Queue على خدمة للقراءة/الكتابة، قد تنفذ جميع الخدمات الأخرى للقراءة/الكتابة في الـمستودع عمليات قراءة البيانات من S3 وكتابتها إلى قاعدة البيانات.
- قد تمنع عمليات الإدراج على إحدى الخدمات للقراءة والكتابة خدمةً أخرى للقراءة والكتابة من الدخول في حالة الخمول إذا كان الخمول مُمكّنًا. توجد حالات تنفذ فيها إحدى الخدمات عمليات الدمج في الخلفية نيابةً عن خدمة أخرى. وقد تمنع هذه العمليات في الخلفية الخدمة الثانية من الدخول في حالة الخمول. وبمجرد انتهاء العمليات في الخلفية، ستدخل الخدمة في حالة الخمول. ولا تتأثر الخدمات للقراءة فقط.
ملاحظات مفيدة
- إصدارات ClickHouse: يتحدد جدول الترقية وفقًا لإعدادات الخدمة الأساسية. ولا يمكن أن يكون للخدمات الثانوية جدول إصدارات مستقل عن الخدمة الأساسية.
-
قد تُمنع استعلامات
CREATE/RENAME/DROP DATABASEافتراضيًا بسبب الخدمات الخاملة/المتوقفة. إذا نُفِّذت هذه الاستعلامات عندما تكون الخدمة في حالة خمول أو متوقفة، فقد تظل معلّقة. لتجاوز ذلك، يمكنك تشغيل استعلامات إدارة قاعدة البيانات باستخدامsettings distributed_ddl_task_timeout=0على مستوى الجلسة أو على مستوى كل استعلام.
- خمول الخدمة الأساسية: يكون الخمول التلقائي للخدمة الأساسية مفعّلًا افتراضيًا.
التسعير
النسخ الاحتياطية
- بما أن جميع الخدمات ضمن مستودع واحد تشترك في مساحة التخزين نفسها، فلا تُنشأ النسخ الاحتياطية إلا على الخدمة الأساسية (الأولية). وبهذه الطريقة، تُؤخذ نسخة احتياطية من بيانات جميع الخدمات في المستودع.
- إذا قمت باستعادة نسخة احتياطية من الخدمة الأساسية في مستودع، فستُستعاد إلى خدمة جديدة تمامًا غير متصلة بالمستودع الحالي. ويمكنك بعد ذلك إضافة المزيد من الخدمات إلى الخدمة الجديدة فور اكتمال عملية الاستعادة.
كيفية إعداد مستودع
إنشاء مستودع
الشكل 7 - انقر على علامة الزائد لإنشاء خدمة جديدة في مستودع في شاشة إنشاء الخدمة، ستكون الخدمة الأصلية محددة في القائمة المنسدلة باعتبارها مصدر بيانات الخدمة الجديدة. وبمجرد إنشائها، ستشكّل هاتان الخدمتان مستودعًا.
إعادة تسمية مستودع
- يمكنك اختيار “الفرز حسب المستودع” في صفحة الخدمات من الزاوية العلوية اليمنى، ثم النقر على أيقونة القلم بجوار اسم المستودع
- يمكنك النقر على اسم المستودع ضمن أي خدمة، ثم إعادة تسميته من هناك
حذف مستودع
- احذف جميع الخدمات التي أُنشئت بالإضافة إلى أول خدمة أُنشئت؛
- احذف أول خدمة (تحذير: ستُحذف جميع بيانات المستودع في هذه الخطوة).