الانتقال إلى المحتوى الرئيسي
clickhousectl هو واجهة سطر الأوامر لـ ClickHouse: المحلي والسحابي. باستخدام clickhousectl يمكنك:
  • تثبيت إصدارات ClickHouse المحلية وإدارتها
  • تشغيل خوادم ClickHouse المحلية وإدارتها
  • تشغيل مثيلات Postgres المحلية وإدارتها
  • تنفيذ الاستعلامات على خوادم ClickHouse
  • إعداد ClickHouse Cloud وإنشاء عناقيد ClickHouse مُدارة سحابيًا
  • إنشاء خدمات Postgres في ClickHouse Cloud وإدارتها
  • إدارة موارد ClickHouse Cloud
  • إنشاء ClickPipes لإدخال البيانات وإدارتها (S3, Kafka, Kinesis, Postgres, MySQL, MongoDB, BigQuery)
  • تثبيت ClickHouse agent skills الرسمية في وكلاء البرمجة المدعومين
  • نقل بيئة تطوير ClickHouse المحلية إلى السحابة
يساعد clickhousectl المستخدمين ووكلاء الذكاء الاصطناعي على التطوير باستخدام ClickHouse.

التثبيت

التثبيت السريع

يقوم برنامج التثبيت النصي بتنزيل الإصدار المناسب لنظام التشغيل لديك وتثبيته في ~/.local/bin/clickhousectl. كما يُنشئ تلقائيًا أيضًا اسمًا مستعارًا chctl لتسهيل الاستخدام.

المتطلبات

محلي

تثبيت إصدارات ClickHouse وإدارتها

يقوم clickhousectl بتنزيل الملفات التنفيذية لـ ClickHouse من builds.clickhouse.com، مع الرجوع إلى packages.clickhouse.com (Linux) أو إصدارات GitHub ‏(macOS) إذا لم يكن الإصدار متاحًا هناك.
يقوم local use أيضًا بإنشاء رابط رمزي في ~/.local/bin/clickhouse يشير إلى الملف التنفيذي للإصدار المحدد، بحيث يصبح الأمر clickhouse العادي (مثل clickhouse local وclickhouse client) متاحًا على PATH. مرّر --no-global لتخطي ذلك. إذا كان هناك ملف عادي موجود بالفعل في ذلك المسار، فسيُترك كما هو مع عرض تحذير. كما أن local remove للإصدار الافتراضي النشط يزيل الرابط الرمزي أيضًا.

تخزين الملفات التنفيذية لـ ClickHouse

تُخزَّن الملفات التنفيذية لـ ClickHouse في مستودع عام، بحيث يمكن لعدة مشاريع استخدامها دون تكرار التخزين. وتُخزَّن هذه الملفات في ~/.clickhouse/:

إعداد مشروع

يُهيِّئ init دليل العمل الحالي لديك باستخدام بنية مجلدات قياسية لملفات مشروع ClickHouse وPostgres. وهو أمر اختياري؛ إذ يمكنك استخدام بنية المجلدات الخاصة بك إذا كنت تفضّل ذلك. ينشئ البنية التالية:

تنفيذ الاستعلامات

إنشاء خوادم ClickHouse وإدارتها

ابدأ مثيلات خادم ClickHouse وأدرها. يحصل كل خادم على مجلد بيانات معزول خاص به في .clickhouse/servers/<name>/data/.
تسمية الخادم: بدون --name، يُسمّى الخادم الأول “default”. وإذا كان “default” قيد التشغيل بالفعل، فسيُولَّد اسم عشوائي (مثل “bold-crane”). استخدم --name للحصول على معرّفات ثابتة يمكنك تشغيلها وإيقافها مرارًا. المنافذ: المنافذ الافتراضية هي HTTP 8123 وTCP 9000. وإذا كانت هذه المنافذ مستخدمة بالفعل، فستُخصَّص منافذ متاحة تلقائيًا وتُعرض في المخرجات. استخدم --http-port و--tcp-port لتعيين منافذ محددة صراحةً. إدارة الخوادم العامة: استخدم --global مع list وstop وstop-all للعمل على مستوى جميع المشاريع على مستوى النظام. يعرض server list --global جميع خوادم ClickHouse قيد التشغيل، مع عمود Project يوضّح الدليل الذي ينتمي إليه كل خادم.

ملفات config مخصّصة للخوادم المحلية

تبدأ الخوادم المحلية بإعدادات افتراضية مناسبة، لكنك قد تحتاج أحيانًا إلى تغيير أحد الإعدادات. ضع ملف config في ~/.clickhouse/configs/ وطبّقه بالاسم عند بدء تشغيل خادم:
يُطبَّق الملف المُسمّى فوق الإعدادات الافتراضية المضمّنة في ClickHouse (عبر config.d)، لذلك لا يحتاج إلا إلى تضمين الإعدادات التي تريد تغييرها، ولا حاجة إلى إعادة إنشاء ملف config كامل. يمكن أن تكون الملفات بصيغة .xml أو .yaml أو .yml، ويمكنك الإشارة إليها بالاسم سواء مع الامتداد أو بدونه.

مجلد البيانات الخاص بالمشروع

توجد جميع بيانات الخادم داخل .clickhouse/ في مجلد المشروع:
لكل خادم مُسمّى مجلد بيانات خاص به، لذا تكون الخوادم معزولة تمامًا عن بعضها البعض. تظل البيانات محفوظة بين عمليات إعادة التشغيل. أوقِف الخادم وشغّله بالاسم لمتابعة العمل من حيث توقفت. استخدم clickhousectl local server remove <name> لحذف بيانات الخادم نهائيًا.

تشغيل Postgres محليًا

بالإضافة إلى ClickHouse، يمكن لـ clickhousectl تشغيل مثيلات Postgres محلية وإدارتها. ويعتمد Postgres المحلي على Docker، لذا يجب أن يكون Docker مثبّتًا وقيد التشغيل. ويُعرَّف كل مثيل باسمه وإصداره الرئيسي، لذلك يمكن تشغيل عدة إصدارات من Postgres جنبًا إلى جنب، مع أدلة بيانات منفصلة لكل منها.

المصادقة

قم بالمصادقة إلى ClickHouse Cloud باستخدام مفاتيح واجهة برمجة تطبيقات (موصى بها) أو OAuth (عبر المتصفح). إذا لم يكن لديك حساب ClickHouse Cloud بعد، فإن clickhousectl cloud auth signup يفتح صفحة التسجيل في متصفحك.

مفتاح/سرّ واجهة برمجة تطبيقات (موصى به)

تُعد مفاتيح واجهة برمجة تطبيقات الطريقة الموصى بها للمصادقة، خصوصًا عند تشغيل واجهة سطر الأوامر بواسطة وكيل ذكاء اصطناعي. يمكنك إنشاء مفاتيح واجهة برمجة تطبيقات محددة النطاق تمنح فقط الصلاحيات التي تختارها (للقراءة فقط أو للقراءة/الكتابة)، ويرتبط كل مفتاح بمنظمة واحدة. وهذا يجعلها وسيلة آمنة قائمة على مبدأ أقلّ الامتيازات لمنح واجهة سطر الأوامر حق الوصول.
تُحفَظ بيانات الاعتماد في .clickhouse/credentials.json (ضمن المشروع فقط). يمكنك أيضًا استخدام متغيرات البيئة، سواء كانت مُصدَّرة في جلستك:
أو ضعه في ملف .env ضمن دليل العمل الحالي:
أو مرّر بيانات الاعتماد مباشرةً عبر خيارات سطر الأوامر مع أي أمر:

تسجيل الدخول باستخدام OAuth

سيفتح هذا متصفحك لإجراء المصادقة عبر تدفّق أجهزة OAuth. تُحفَظ الرموز المميّزة في .clickhouse/tokens.json ‏(project-local).
إن وصول OAuth حاليًا للقراءة فقط، ويتيح الوصول إلى جميع المؤسسات التي تنتمي إليها. للحصول على حق الكتابة، أو لحصر نطاق واجهة سطر الأوامر في مؤسسة واحدة، أنشئ مفتاح واجهة برمجة تطبيقات مقيّد النطاق بدلًا من ذلك.

حالة المصادقة وتسجيل الخروج

ترتيب البحث عن بيانات الاعتماد: خيارات واجهة سطر الأوامر > .clickhouse/credentials.json > متغيرات البيئة المُصدَّرة > ملف .env > رموز OAuth.

تصحيح الأخطاء لمعرفة مصدر بيانات الاعتماد المستخدم

مرِّر --debug إلى أي أمر cloud لعرض مصدر بيانات الاعتماد الذي تم تحديده (وURL الخاص بواجهة برمجة التطبيقات) في stderr قبل تشغيل الأمر.

Cloud

أدِر خدمات ClickHouse Cloud عبر واجهة برمجة التطبيقات.

المنظمات

الخدمات

خيارات إنشاء الخدمة

أوضاع مصادقة واجهة برمجة تطبيقات الاستعلام

تُعد cloud service query الطريقة القياسية لتشغيل SQL على خدمة سحابية عبر HTTP، من دون الحاجة إلى ملف clickhouse التنفيذي أو كلمة مرور الخدمة. وهي تعمل مع وضعي بيانات الاعتماد كليهما:
  • مصادقة مفتاح واجهة برمجة تطبيقات (قراءة + كتابة SQL): عند تشغيل cloud service query للمرة الأولى على خدمة لا يتوفر لها مفتاح مخزَّن، فإنه يوفّر endpoint لواجهة برمجة تطبيقات الاستعلام لتلك الخدمة وينشئ مفتاح واجهة برمجة تطبيقات مخصصًا مرتبطًا بها. ويُخزَّن المفتاح (keyId وkeySecret وendpointId) في .clickhouse/credentials.json ضمن service_query_keys.<service-id>. ويقتصر نطاق هذا المفتاح على خدمة واحدة، لذا يمكنه القراءة والكتابة (SELECT وINSERT وDDL) على تلك الخدمة، لكنه لا يمكنه الوصول إلى أي خدمة أخرى في المؤسسة. مرِّر --no-auto-enable لكي يفشل بدلًا من توفيره تلقائيًا.
  • OAuth (cloud auth login): يُشغَّل الاستعلام بهويتك أنت، تمامًا كما في SQL-console على الويب. تكون أذونات SQL الخاصة بك على الخدمة للقراءة فقط عند استخدام OAuth. ولا يتم توفير أو تخزين مفتاح واجهة برمجة تطبيقات الاستعلام في هذا الوضع. وليس للخيار --no-auto-enable أي تأثير في هذا الوضع.
يؤدي الاستعلام عن خدمة idled إلى تنشيطها تلقائيًا في كلا وضعي المصادقة (قد يستغرق الاستعلام الأول دقيقة). أما الخدمة stopped فلا يتم تنشيطها مطلقًا: يفشل الاستعلام مع تلميح لتشغيل cloud service start. عيّن CLICKHOUSE_CLOUD_QUERY_HOST لتجاوز مضيف واجهة برمجة تطبيقات الاستعلام المُشتق.

إدارة نقاط نهاية الاستعلام

إدارة نقطة النهاية الخاصة

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

خدمات Postgres

يمكن لـ clickhousectl أيضًا إنشاء خدمات ClickHouse Cloud Postgres وإدارتها، وذلك على غرار أوامر خدمة ClickHouse المذكورة أعلاه.

خيارات إنشاء خدمة Postgres

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

ClickPipes

أدِر ClickPipes لإدخال البيانات إلى ClickHouse Cloud من مصادر خارجية.

إنشاء ClickPipes

لكل نوع من أنواع المصادر أمرٌ فرعي خاص به ضمن clickpipe create:
استخدم clickhousectl cloud clickpipe create <source> --help للاطّلاع على القائمة الكاملة للخيارات لكل نوع من المصادر.

الأعضاء

الدعوات

المفاتيح

Activity

مخرجات JSON

استخدم الخيار --json لطباعة الاستجابات بتنسيق JSON.
يكتشف clickhousectl تلقائيًا سياقات coding-agent (Claude Code وCursor وCodex وGemini CLI وGoose وDevin وأي أداة تضبط متغير البيئة القياسي AGENT) ويطبع JSON إلى stdout تلقائيًا من دون الحاجة إلى تعيين --json.

رموز الخروج

تتبع رموز الخروج الاصطلاحات المتبعة في واجهة سطر الأوامر gh:

Skills

ثبّت حزمة ClickHouse Agent Skills الرسمية من ClickHouse/agent-skills.

علامات الوضع غير التفاعلي

التحديث الذاتي

يمكن لـ clickhousectl تحديث نفسه إلى أحدث إصدار:
تتحقق واجهة سطر الأوامر أيضًا من التحديثات في الخلفية (بحد أقصى مرة كل 24 ساعة) ويعرض إشعارًا عند توفر إصدار أحدث.
آخر تعديل في ٢ يوليو ٢٠٢٦