Skip to main content

ما هو فصل الحوسبة عن الحوسبة؟

قبل مناقشة ماهية فصل الحوسبة عن الحوسبة، من المفيد فهم معنى الخدمة في ClickHouse Cloud. تتضمن كل خدمة في ClickHouse Cloud ما يلي:
  • عُقد compute في ClickHouse (ويُشار إليها باسم النسخ المتماثلة) مع موارد CPU وذاكرة مخصصة
  • نقطة نهاية واحدة (أو عدة نقاط نهاية تُنشأ عبر واجهة Console في ClickHouse Cloud) للاتصال بالخدمة (على سبيل المثال، https://dv2fzne24g.us-east-1.aws.clickhouse.cloud:8443) من أجل الاتصالات المحلية واتصالات تطبيقات الجهات الخارجية
  • مجلد في التخزين الكائني تخزّن فيه الخدمة جميع البيانات وجزءًا من البيانات الوصفية:

الشكل 1 - خدمة واحدة في ClickHouse Cloud بدلًا من الاكتفاء بخدمة واحدة، يمكنك إنشاء عدة خدمات لها إمكانية الوصول إلى مساحة التخزين المشتركة نفسها، مما يتيح لك تخصيص الموارد لأعباء عمل محددة من دون الحاجة إلى تكرار البيانات. ويُسمى هذا المفهوم فصل الحوسبة عن الحوسبة. يعني فصل الحوسبة عن الحوسبة أن لكل خدمة مجموعتها الخاصة من النسخ المتماثلة ونقطة نهاية، لكنها تستخدم مجلد التخزين الكائني نفسه وتصل إلى الجداول والعروض وغيرها نفسها. وهذا يعني أنه يمكنك اختيار حجم compute المناسب لعبء العمل لديك. فقد تكتفي بعض أعباء العمل لديك بنسخة متماثلة صغيرة واحدة فقط، بينما قد تتطلب أخرى إتاحة عالية كاملة (HA) ومئات الجيجابايتات من الذاكرة عبر عدة نسخ متماثلة. كما يتيح فصل الحوسبة عن الحوسبة فصل عمليات القراءة عن عمليات الكتابة حتى لا تتداخل مع بعضها:
الشكل 2 - فصل compute في ClickHouse Cloud

ما هو المستودع؟

في ClickHouse Cloud، يُقصد بـ المستودع مجموعة من الخدمات التي تتشارك البيانات نفسها. يضم كل مستودع خدمة أساسية (الخدمة التي أُنشئت أولًا) وخدمة ثانوية واحدة أو أكثر. على سبيل المثال، في لقطة الشاشة أدناه، يظهر مستودع باسم “DWH Prod” يتكوّن من خدمتين:
  • الخدمة الأساسية DWH Prod
  • الخدمة الثانوية DWH Prod Subservice

الشكل 3 - مثال على مستودع تشترك جميع الخدمات داخل المستودع نفسه في ما يلي:
  • المنطقة (على سبيل المثال، us-east1)
  • موفّر الخدمات السحابية (AWS أو GCP أو Azure)
  • إصدار قاعدة بيانات ClickHouse
  • ClickHouse Keeper (لإدارة النسخ المتماثلة)

ضوابط الوصول

بيانات اعتماد قاعدة البيانات

نظرًا إلى أن جميع الخدمات في المستودع تشترك في المجموعة نفسها من الجداول، فهي تتشارك أيضًا ضوابط الوصول نفسها عبر الخدمات. وهذا يعني أن جميع مستخدمي قاعدة البيانات الذين يُنشؤون في Service 1 سيتمكنون أيضًا من استخدام Service 2 بالأذونات نفسها (مثل منح الجداول وطرق العرض وما إلى ذلك)، والعكس صحيح. تُستخدم نقطة نهاية مختلفة لكل خدمة، لكن يُستخدم اسم المستخدم وكلمة المرور نفسيهما عبر جميع الخدمات. وبعبارة أخرى، يتشارك المستخدمون بين الخدمات التي تعمل على مساحة التخزين نفسها، كما هو موضح في الشكل أدناه:
الشكل 4 - أُنشئت المستخدمِة أليس في Service 1، لكنها تستطيع استخدام بيانات الاعتماد نفسها للوصول إلى جميع الخدمات التي تشترك في البيانات نفسها

التحكم في الوصول إلى الشبكة

لتقييد الوصول إلى خدمات محددة من قِبل تطبيقات أخرى أو مستخدمين مؤقتين، يمكنك تطبيق قيود على الشبكة. للقيام بذلك، انتقل إلى Settings في علامة تبويب الخدمة الخاصة بالخدمة التي تريد تقييد الوصول إليها في وحدة تحكم ClickHouse Cloud. يمكن تطبيق إعدادات تصفية عناوين IP على كل خدمة على حدة، ما يعني أنه يمكنك التحكم في التطبيقات التي يمكنها الوصول إلى كل خدمة. ويتيح لك ذلك تقييد الوصول إلى خدمات محددة. في المثال أدناه، مُنعت Alice من الوصول إلى الخدمة 2 في المستودع:
الشكل 5 - مُنعت Alice من الوصول إلى الخدمة 2 بسبب إعدادات التحكم في الوصول إلى الشبكة يمكن أيضًا تطبيق أدوار ClickHouse والمنح للتحكم في الوصول إلى البيانات عندما تتصل بصفتك فردًا بدلًا من المستخدم default.

خدمات للقراءة فقط مقابل خدمات للقراءة والكتابة

يمكن أن تكون الخدمات من أحد النوعين التاليين:
  • للقراءة والكتابة
    • يمكنها قراءة البيانات وكتابتها في ClickHouse
    • تُجري عمليات الدمج في الخلفية (مثل دمج الأجزاء بعد عمليات insert للبيانات)، ما يستهلك CPU والذاكرة
    • يمكنها تصدير البيانات إلى أنظمة خارجية
  • للقراءة فقط
    • يمكنها فقط قراءة البيانات؛ ولا يمكنها كتابة البيانات أو تعديلها في ClickHouse
    • لا تُجري عمليات الدمج في الخلفية خارج system tables، لذا تكون مواردها مخصصة بالكامل لاستعلامات القراءة
    • لا يزال بإمكانها تصدير البيانات إلى أنظمة خارجية (مثلًا عبر table functions)، لكنها لا تستطيع تغيير البيانات داخل ClickHouse
    • تنتقل إلى وضع الخمول فورًا، بخلاف خدمات للقراءة والكتابة التي قد تبقى نشطة بسبب عمليات الدمج في الخلفية.
قد تحتاج أحيانًا إلى عزل أعباء عمل القراءة الحرجة عن overhead الكتابة/الدمج من خلال جعل خدمة للقراءة فقط. يمكنك القيام بذلك للخدمة الثانية وأي خدمات إضافية تنشئها، لكن الخدمة الأولى ستكون دائمًا من نوع للقراءة والكتابة، كما هو موضح في الشكل أدناه:
الشكل 6 - خدمات للقراءة والكتابة وللقراءة فقط في مستودع
  1. تدعم خدمات للقراءة فقط حاليًا عمليات إدارة المستخدمين (CREATE وDROP وما إلى ذلك).
  2. تعمل Refreshable materialized views فقط على خدمات للقراءة والكتابة ‏(RW) داخل مستودع.
  3. يكون نوع خدمة (للقراءة فقط أو للقراءة والكتابة) ثابتًا عند الإنشاء، ولا يمكن تغييره لاحقًا من Cloud Console. وللتبديل بين للقراءة فقط وللقراءة والكتابة، أنشئ خدمة جديدة في مستودع بالنوع المطلوب.

التوسعة

تتوسع كل خدمة في المستودع بشكل مستقل. يمكنك ضبط عدد النسخ المتماثلة وحجمها، وتمكين التوسعة التلقائية الأفقية والعمودية، وتهيئة الخمول التلقائي عند عدم النشاط. يمكن للخدمات، بما في ذلك الخدمة الأساسية، العمل بنسخة متماثلة واحدة، لكن لا يُنصح بذلك في بيئات الإنتاج — استخدم نسختين متماثلتين على الأقل لتحقيق التوافر العالي. في مستويي Scale وEnterprise، تتوفر الخدمات الأساسية والثانوية ذات النسخة المتماثلة الواحدة دون الحاجة إلى التواصل مع الدعم. تدعم خدمات Scale وخدمات Enterprise ذات ملفات التعريف القياسية 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 على مستوى الجلسة أو على مستوى كل استعلام.
على سبيل المثال:
إذا أوقفتَ خدمةً يدويًا، فستحتاج إلى إعادة تشغيلها حتى تُنفَّذ الاستعلامات.
  • خمول الخدمة الأساسية: يكون الخمول التلقائي للخدمة الأساسية مفعّلًا افتراضيًا.

التسعير

أسعار الحوسبة هي نفسها لجميع الخدمات ضمن مستودع (الأساسية والثانوية). ولا تتم محاسبة Storage إلا مرة واحدة فقط، إذ تكون مضمنة في الخدمة الأولى (الأصلية). يُرجى الرجوع إلى pricing calculator في صفحة pricing، إذ سيساعدك في تقدير التكلفة بناءً على حجم workload لديك واختيار tier. وسيعرض لك جدول Usage Breakdown تفاصيل تكاليف الحوسبة عبر الخدمات.

النسخ الاحتياطية

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

كيفية إعداد مستودع

إنشاء مستودع

لإنشاء مستودع، تحتاج إلى إنشاء خدمة ثانية تشترك في البيانات مع خدمة موجودة. ويمكنك القيام بذلك بالنقر على علامة الزائد في أيٍ من الخدمات الحالية:
الشكل 7 - انقر على علامة الزائد لإنشاء خدمة جديدة في مستودع في شاشة إنشاء الخدمة، ستكون الخدمة الأصلية محددة في القائمة المنسدلة باعتبارها مصدر بيانات الخدمة الجديدة. وبمجرد إنشائها، ستشكّل هاتان الخدمتان مستودعًا.

إعادة تسمية مستودع

هناك طريقتان لإعادة تسمية مستودع:
  • يمكنك اختيار “الفرز حسب المستودع” في صفحة الخدمات من الزاوية العلوية اليمنى، ثم النقر على أيقونة القلم بجوار اسم المستودع
  • يمكنك النقر على اسم المستودع ضمن أي خدمة، ثم إعادة تسميته من هناك

حذف مستودع

يعني حذف المستودع حذفَ جميع خدمات الحوسبة والبيانات (الجداول، والعروض، والمستخدمين، وما إلى ذلك). ولا يمكن التراجع عن هذا الإجراء. لا يمكنك حذف مستودع إلا بحذف أول خدمة أُنشئت. وللقيام بذلك:
  1. احذف جميع الخدمات التي أُنشئت بالإضافة إلى أول خدمة أُنشئت؛
  2. احذف أول خدمة (تحذير: ستُحذف جميع بيانات المستودع في هذه الخطوة).
آخر تعديل في ١٤ أغسطس ٢٠٢٦