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 لتسهيل الاستخدام.
المتطلبات
- macOS (aarch64, x86_64) أو Linux (aarch64, x86_64)
- تتطلب أوامر Cloud مفتاح واجهة برمجة تطبيقات الخاص بـ ClickHouse Cloud
محلي
تثبيت إصدارات 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/ وطبّقه بالاسم عند بدء تشغيل خادم:
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
.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أي تأثير في هذا الوضع.
cloud service start. عيّن CLICKHOUSE_CLOUD_QUERY_HOST لتجاوز مضيف واجهة برمجة تطبيقات الاستعلام المُشتق.
إدارة نقاط نهاية الاستعلام
إدارة نقطة النهاية الخاصة
تهيئة النسخ الاحتياطي
خدمات Postgres
يمكن لـclickhousectl أيضًا إنشاء خدمات Postgres في ClickHouse Cloud وإدارتها، وذلك على غرار أوامر خدمة ClickHouse المذكورة أعلاه. أما GCP فهي في مرحلة معاينة خاصة؛ مرّر --provider gcp مع منطقة GCP وحجم instance.
خيارات إنشاء خدمة 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 تحديث نفسه إلى أحدث إصدار:
القياس عن بُعد
يجمعclickhousectl بيانات استخدام مجهولة الهوية لمساعدتنا على فهم كيفية استخدام واجهة سطر الأوامر. وهي مفعّلة افتراضيًا، لكن لا يُرسل أي شيء قبل إعلامك بذلك: فعند التشغيل لأول مرة، تعرض واجهة سطر الأوامر إشعارًا يوضح ما يُجمع وكيفية إيقافه، ولا ترسل شيئًا. ولا يبدأ الجمع إلا في عمليات التشغيل اللاحقة، لذا تتاح لك دائمًا فرصة إلغاء الاشتراك قبل جمع أي بيانات.
لا يتضمن كل حدث سوى:
- الأمر الذي شُغّل (مثل
local start) وأسماء العلامات المستخدمة — ولا يتضمن مطلقًا قيم العلامات أو الوسيطات الموضعية أو أي إدخال آخر يقدمه المستخدم؛ لذلك لا تُجمع الاستعلامات أو أسماء الجداول أو بيانات الاعتماد أو مسارات الملفات - رمز الخروج (مثل
0،1،2،4) والنتيجة (مثلok،error،cancelled) - اقتراح «هل تقصد» الذي عرضته واجهة سطر الأوامر للأوامر المكتوبة خطأً — لا يُسجّل إلا إذا كان يطابق تمامًا اسم أمر أو علامة موجودة، لذا لا يمكن أن يتضمن مطلقًا ما كتبته
- إصدار
clickhousectlونظام التشغيل والمعمارية، وما إذا كانت واجهة سطر الأوامر قد استُدعيت بواسطة وكيل ذكاء اصطناعي (وأي وكيل) أو ضمن CI
- تشغيل
clickhousectl telemetry disable(لإعادة التفعيل استخدمenable، وللتحقق استخدمstatus) - ضبط متغير البيئة
DO_NOT_TRACK=1
CHCTL_TELEMETRY_DEBUG=1 لطباعة الحمولة الدقيقة إلى stderr دون إرسال أي شيء.