إذا كنت تستخدم ClickHouse Cloud على Google Cloud، فلا تنطبق عليك هذه الصفحة لأن خدماتك تستخدم بالفعل Google Cloud Storage. وإذا كنت تبحث عن كيفية تنفيذ
SELECT أو INSERT على بيانات GCS، فيُرجى مراجعة دالة الجدول gcs.insert وquery في محرك MergeTree.
MergeTree المدعوم بـ GCS
إنشاء قرص
conf.d. يوضّح المثال أدناه تعريف قرص GCS. يتضمن هذا الإعداد عدة أقسام لإعداد “القرص” في GCS، وذاكرة التخزين المؤقت، والسياسة التي تُحدَّد في استعلامات DDL عند إنشاء الجداول على قرص GCS. ويرد شرح كل منها أدناه.
تهيئة التخزين > disks > gcs
- نوع القرص هو
s3لأن واجهة برمجة تطبيقات S3 مستخدمة. - نقطة النهاية كما توفّرها GCS
- مفتاح HMAC والسرّ الخاصّان بحساب الخدمة
- مسار البيانات الوصفية على القرص المحلي
إعدادات التخزين > الأقراص > ذاكرة التخزين المؤقت
gcs.
إعدادات التخزين > السياسات > gcs_main
gcs عبر تحديد السياسة gcs_main. على سبيل المثال، CREATE TABLE ... SETTINGS storage_policy='gcs_main'.
إنشاء جدول
التعامل مع النسخ المتماثل
ReplicatedMergeTree. راجع دليل نسخ جزء بيانات واحد متماثلًا عبر منطقتين من GCP باستخدام GCS للاطلاع على التفاصيل.
تعرّف على المزيد
استخدام Google Cloud Storage (GCS)
تخطيط النشر
- عقدتا ClickHouse server في منطقتين من GCP
- حاوية GCS عدد 2، منشوران في المنطقتين نفسيهما اللتين توجد فيهما عقدتا ClickHouse server
- ثلاث عقد ClickHouse Keeper، اثنتان منها منشورتان في المنطقتين نفسيهما اللتين توجد فيهما عقدتا ClickHouse server. ويمكن أن تكون العقدة الثالثة في المنطقة نفسها لإحدى أول عقدتَي Keeper، ولكن ضمن نطاق توافر مختلف.
تجهيز الآلات الافتراضية
* يمكن أن تكون هذه منطقة توافر مختلفة ضمن نفس المنطقة الخاصة بـ 1 أو 2.
نشر ClickHouse
chnode1 وchnode2.
ضع chnode1 في إحدى مناطق GCP، وchnode2 في منطقة أخرى. في هذا الدليل، تُستخدم us-east1 وus-east4 لكلٍّ من الأجهزة الافتراضية في Compute Engine وحاويات GCS.
لا تبدأ
clickhouse server إلا بعد إعداده. اكتفِ بتثبيته فقط.نشر ClickHouse Keeper
keepernode1 وkeepernode2 وkeepernode3. يمكن نشر keepernode1 في المنطقة نفسها التي يوجد فيها chnode1، وkeepernode2 مع chnode2، وkeepernode3 في أيٍّ من المنطقتين، ولكن في منطقة توافر مختلفة عن عقدة ClickHouse في تلك المنطقة.
راجع تعليمات التثبيت عند تنفيذ خطوات النشر على عقد ClickHouse Keeper.
إنشاء حاويتين
us-east1 وأخرى في us-east4. يجب أن تكون الحاويتان ضمن منطقة واحدة، وبفئة التخزين القياسية، وغير عامّتَين. وعندما يُطلب منك ذلك، فعِّل منع الوصول العام. لا تُنشئ مجلدات، إذ سيُنشئها ClickHouse عند الكتابة إلى وحدة التخزين.
إذا كنت بحاجة إلى إرشادات خطوة بخطوة لإنشاء حاويات GCS ومفتاح HMAC، فوسِّع إنشاء حاويات GCS ومفتاح HMAC وتابع:
إنشاء حاويات GCS ومفتاح HMAC
إنشاء حاويات GCS ومفتاح HMAC
ch_bucket_us_east1
ch_bucket_us_east4
إنشاء مفتاح وصول
إنشاء مفتاح HMAC وقيمة سرية لحساب خدمة
افتح Cloud Storage > Settings > Interoperability ثم اختر إما Access key موجودًا أو CREATE A KEY FOR A SERVICE ACCOUNT. يشرح هذا الدليل مسار إنشاء مفتاح جديد لحساب خدمة جديد.إضافة حساب خدمة جديد
إذا كان هذا مشروعًا لا يحتوي على أي حساب خدمة موجود، فاختر CREATE NEW ACCOUNT.هناك ثلاث خطوات لإنشاء حساب الخدمة. في الخطوة الأولى، امنح الحساب اسمًا مناسبًا ومعرّفًا ووصفًا.في مربع حوار إعدادات Interoperability، يُوصى بدور IAM Storage Object Admin؛ حدّد هذا الدور في الخطوة الثانية.الخطوة الثالثة اختيارية ولا تُستخدم في هذا الدليل. يمكنك منح المستخدمين هذه الامتيازات وفقًا لسياساتك.سيُعرض مفتاح HMAC الخاص بحساب الخدمة. احفظ هذه المعلومات، إذ ستُستخدم في إعداد ClickHouse.تهيئة ClickHouse Keeper
server_id (أول سطر مميز أدناه). عدّل الملف بإدراج أسماء المضيفين الخاصة بخوادم ClickHouse Keeper لديك، وعلى كل خادم اضبط server_id بحيث يطابق إدخال server المناسب في raft_configuration. ونظرًا لأن server_id في هذا المثال مضبوط على 3، فقد ميّزنا الأسطر المطابقة في raft_configuration.
- عدّل الملف باستخدام أسماء المضيفين لديك، وتأكد من إمكانية حلّها من عُقد ClickHouse server وعُقد Keeper
- انسخ الملف إلى موقعه (
/etc/clickhouse-keeper/keeper_config.xmlعلى كل خوادم Keeper) - عدّل
server_idعلى كل جهاز، استنادًا إلى رقم الإدخال الخاص به فيraft_configuration
/etc/clickhouse-keeper/keeper_config.xml
تهيئة خادم ClickHouse
أفضل الممارساتستطلب منك بعض الخطوات في هذا الدليل وضع ملف تهيئة في
/etc/clickhouse-server/config.d/. هذا هو الموقع الافتراضي في أنظمة Linux لملفات تجاوز التهيئة. عند وضع هذه الملفات في ذلك الدليل، يدمج ClickHouse محتواها مع التهيئة الافتراضية. ومن خلال وضع هذه الملفات في الدليل config.d، ستتجنب فقدان تهيئتك أثناء الترقية.الشبكة
/etc/clickhouse-server/config.d/network.xml
خوادم ClickHouse Keeper البعيدة
- عدِّل أسماء المضيفين لتطابق خوادم Keeper لديك
/etc/clickhouse-server/config.d/use-keeper.xml
خوادم ClickHouse البعيدة
replace="true" إلى الإدخال remote_servers بحيث إنه عند دمج هذا التكوين مع التكوين الافتراضي، يستبدل قسم remote_servers بدلًا من الإضافة إليه.
- حرّر الملف بإدخال أسماء المضيفين الخاصة بك، وتأكد من إمكانية حلّها من عُقد خادم ClickHouse
/etc/clickhouse-server/config.d/remote-servers.xml
تحديد هوية النسخة المتماثلة
replica_1، وعلى الخادم الآخر replica_2. يمكن تغيير الأسماء؛ فاستنادًا إلى مثالنا حيث تُخزَّن إحدى النسختين المتماثلتين في ساوث كارولاينا والأخرى في شمال فرجينيا، يمكن أن تكون القيم carolina وvirginia؛ فقط تأكد من أنها مختلفة على كل جهاز.
/etc/clickhouse-server/config.d/macros.xml
التخزين في GCS
disks وpolicies. يحمل الـ disk الذي يجري إعداده أدناه الاسم gcs، وهو من type s3. ويكون النوع s3 لأن ClickHouse يتعامل مع حاوية GCS كما لو أنه حاوية AWS S3. ستحتاج إلى نسختين من هذا الإعداد، واحدة لكل عقدة من عقد ClickHouse server.
يجب إجراء عمليات الاستبدال التالية في الإعداد أدناه.
تختلف عمليات الاستبدال هذه بين عقدتي ClickHouse server:
- يجب ضبط
REPLICA 1 BUCKETعلى اسم الـ حاوية الموجود في نفس الـ Region الخاصة بالخادم - يجب تغيير
REPLICA 1 FOLDERإلىreplica_1على أحد الخادمين، وإلىreplica_2على الخادم الآخر
- يجب ضبط
access_key_idعلى HMAC Key الذي تم إنشاؤه سابقًا - يجب ضبط
secret_access_keyعلى HMAC Secret الذي تم إنشاؤه سابقًا
/etc/clickhouse-server/config.d/storage.xml
تشغيل ClickHouse Keeper
التحقّق من حالة ClickHouse Keeper
netcat. على سبيل المثال، يُرجع mntr حالة عنقود ClickHouse Keeper. وإذا شغّلت الأمر على كل عقدة من عقد Keeper، فسترى أن إحداها هي القائد، وأن العقدتين الأخريين تابعتان:
تشغيل ClickHouse server
chnode1 وchnode، شغّل:
التحقق
تحقّق من تهيئة القرص
system.disks سجلات لكل قرص:
- default
- gcs
- cache
تحقّق من أن الجداول التي أُنشئت على العنقود قد أُنشئت أيضًا على كلتا العقدتين
تحقّق من إمكانية إدخال البيانات
تحقّق من أن سياسة التخزين gcs_main مستخدمة للجدول.
تحقّق في Google Cloud Console
storage.xml. وسِّع المجلدات وسترى العديد من الملفات التي تمثل أقسام البيانات.