الانتقال إلى المحتوى الرئيسي
يوفّر ClickHouse عميل سطر أوامر أصليًا لتنفيذ استعلامات SQL مباشرةً على خادم ClickHouse. ويدعم كلًا من الوضع التفاعلي (لتنفيذ الاستعلامات مباشرةً) ووضع الدُفعات (للبرامج النصية والأتمتة). يمكن عرض نتائج الاستعلام في الطرفية أو تصديرها إلى ملف، مع دعم جميع تنسيقات إخراج ClickHouse، مثل Pretty وCSV وJSON وغيرها. يوفّر العميل معلومات آنية عن تنفيذ الاستعلام عبر شريط التقدّم، وعدد الصفوف المقروءة، والبايتات المُعالجة، وزمن تنفيذ الاستعلام. كما يدعم كلًا من خيارات سطر الأوامر وملفات التهيئة.

التثبيت

لتنزيل ClickHouse، نفّذ:
ولتثبيته أيضًا، شغّل:
راجع تثبيت ClickHouse للاطلاع على مزيد من خيارات التثبيت. تتوافق الإصدارات المختلفة للعميل والخادم مع بعضها البعض، لكن قد لا تتوفر بعض الميزات في إصدارات العميل الأقدم. نوصي باستخدام الإصدار نفسه لكل من العميل والخادم.

تشغيل

إذا كنت قد نزّلت ClickHouse فقط ولم تثبّته، فاستخدم ./clickhouse client بدلًا من clickhouse-client.
للاتصال بخادم ClickHouse، شغّل:
حدِّد تفاصيل اتصال إضافية حسب الحاجة: للاطلاع على قائمة كاملة بخيارات سطر الأوامر، راجع خيارات سطر الأوامر.

الاتصال بـ ClickHouse Cloud

تتوفر تفاصيل خدمة ClickHouse Cloud الخاصة بك في وحدة تحكم ClickHouse Cloud. حدِّد الخدمة التي تريد الاتصال بها ثم انقر على Connect:

اختر Native، وستظهر التفاصيل مع مثال لأمر clickhouse-client:

تخزين تفاصيل الاتصال في ملف تهيئة

يمكنك تخزين تفاصيل الاتصال بخادم ClickHouse واحد أو أكثر في ملف تهيئة. يكون التنسيق كما يلي:
راجع قسم ملفات التهيئة لمزيد من المعلومات.
للتركيز على بناء جملة الاستعلام، حُذفت تفاصيل الاتصال (--host, --port، إلخ) من بقية الأمثلة. تذكّر إضافتها عند استخدام الأوامر.

الوضع التفاعلي

استخدام الوضع التفاعلي

لتشغيل ClickHouse في الوضع التفاعلي، ما عليك سوى تنفيذ ما يلي:
يؤدي هذا إلى فتح حلقة القراءة-التقييم-الطباعة (REPL)، حيث يمكنك بدء كتابة استعلامات SQL بشكل تفاعلي. وبعد الاتصال، سيظهر لك موجّه يمكنك من خلاله إدخال الاستعلامات:
في الوضع التفاعلي، يكون تنسيق الإخراج الافتراضي هو PrettyCompact. يمكنك تغيير التنسيق في بند FORMAT في الاستعلام أو بتحديد خيار سطر الأوامر --format. لاستخدام Vertical format، يمكنك استخدام --vertical أو إضافة \G في نهاية الاستعلام. في هذا التنسيق، تُطبع كل قيمة في سطر منفصل، وهو ما يكون مناسبًا للجداول العريضة. في الوضع التفاعلي، يُنفَّذ افتراضيًا كل ما تُدخله عند الضغط على Enter. ولا تحتاج إلى فاصلة منقوطة في نهاية الاستعلام. يمكنك تشغيل العميل باستخدام المعامل -m, --multiline. ولإدخال استعلام متعدد الأسطر، أدخل شرطة مائلة عكسية \ قبل محرف سطر جديد. بعد الضغط على Enter، سيُطلب منك إدخال السطر التالي من الاستعلام. ولتنفيذ الاستعلام، أنهِه بفاصلة منقوطة ثم اضغط Enter. يعتمد عميل ClickHouse على replxx (وهو مشابه لـ readline)، لذا فهو يستخدم اختصارات لوحة مفاتيح مألوفة ويحتفظ بسجل الأوامر. ويُكتَب سجل الأوامر افتراضيًا في ~/.clickhouse-client-history. للخروج من العميل، اضغط Ctrl+D، أو أدخل أحد الخيارات التالية بدلًا من الاستعلام:
  • exit أو exit;
  • quit أو quit;
  • q أو Q أو :q
  • logout أو logout;

معلومات عن معالجة الاستعلام

عند معالجة استعلام، يعرض العميل ما يلي:
  1. معلومات التقدّم، وتُحدَّث افتراضيًا بما لا يزيد على 10 مرات في الثانية. بالنسبة إلى الاستعلامات السريعة، قد لا يكون هناك وقت كافٍ لعرض التقدّم.
  2. الاستعلام بعد تنسيقه وبعد التحليل، لأغراض تصحيح الأخطاء.
  3. النتيجة بالتنسيق المحدد.
  4. عدد الأسطر في النتيجة، والوقت المنقضي، ومتوسط سرعة معالجة الاستعلام. تشير جميع كميات البيانات إلى بيانات غير مضغوطة.
يمكنك إلغاء استعلام طويل بالضغط على Ctrl+C. ومع ذلك، ستظل بحاجة إلى الانتظار قليلًا حتى يُلغي الخادم الطلب. لا يمكن إلغاء الاستعلام في مراحل معيّنة. إذا لم تنتظر وضغطت على Ctrl+C مرةً ثانية، فسيخرج العميل. يتيح عميل ClickHouse تمرير بيانات خارجية (جداول مؤقتة خارجية) لاستخدامها في الاستعلام. لمزيد من المعلومات، راجع قسم البيانات الخارجية لمعالجة الاستعلام.

الأسماء المستعارة

يمكنك استخدام الأسماء المستعارة التالية من داخل بيئة REPL:
  • \l - SHOW DATABASES
  • \d - SHOW TABLES
  • \c <DATABASE> - USE DATABASE
  • . - كرّر آخر استعلام

اختصارات لوحة المفاتيح

  • Alt (Option) + Shift + e - افتح المحرر مع الاستعلام الحالي. يمكن تحديد المحرر المراد استخدامه عبر متغير البيئة EDITOR. يُستخدم vim افتراضيًا.
  • Alt (Option) + # - علّق السطر.
  • Ctrl + r - بحث تقريبي في السجل.
تتوفر القائمة الكاملة بجميع اختصارات لوحة المفاتيح المتاحة في replxx.
لضبط عمل مفتاح Meta ‏(Option) بشكل صحيح على MacOS:iTerm2: انتقل إلى Preferences -> Profile -> Keys -> Left Option key ثم انقر على Esc+

وضع الدُفعات

استخدام وضع الدُفعات

بدلاً من استخدام عميل ClickHouse بشكل تفاعلي، يمكنك تشغيله في وضع الدُفعات. في وضع الدُفعات، ينفّذ ClickHouse استعلامًا واحدًا ثم يُنهي التشغيل فورًا - فلا يوجد موجّه أوامر تفاعلي ولا حلقة تكرار. يمكنك تحديد استعلام واحد كما يلي:
يمكنك أيضًا استخدام الخيار --query في سطر الأوامر:
يمكنك تمرير استعلام عبر stdin:
بافتراض وجود جدول باسم messages، يمكنك أيضًا إدراج البيانات من سطر الأوامر:
عند تحديد --query، تُضاف أي مدخلات إلى الطلب بعد محرف سطر جديد.

إدراج ملف CSV في خدمة ClickHouse عن بُعد

يوضح هذا المثال كيفية إدراج ملف CSV لمجموعة بيانات تجريبية، cell_towers.csv، في الجدول الموجود cell_towers ضمن قاعدة البيانات default:

أمثلة على إدراج البيانات من سطر الأوامر

هناك عدة طرق لإدراج البيانات من سطر الأوامر. يوضح المثال أدناه كيفية إدراج صفَّين من بيانات CSV في جدول ClickHouse باستخدام وضع الدُفعات:
في المثال أدناه، يبدأ cat <<_EOF كتلة heredoc التي تقرأ كل شيء حتى تصادف _EOF مرة أخرى، ثم تُخرِجه:
في المثال أدناه، تُعرَض محتويات الملف file.csv على stdout باستخدام cat، ثم تُمرَّر عبر أنبوب إلى clickhouse-client كمدخلات:
في وضع الدُفعات، يكون تنسيق البيانات الافتراضي هو TabSeparated. يمكنك تعيين التنسيق في عبارة FORMAT في الاستعلام كما هو موضح في المثال أعلاه.

الاستعلامات ذات المعلمات

يمكنك تحديد معلمات في الاستعلام وتمرير قيم إليها باستخدام خيارات سطر الأوامر. يؤدي ذلك إلى تجنّب تنسيق الاستعلام بقيم ديناميكية محددة من جهة العميل. على سبيل المثال:
يمكن أيضًا تعيين المعلمات ضمن جلسة تفاعلية:

بنية الاستعلام

في الاستعلام، ضع القيم التي تريد تعبئتها باستخدام معلمات سطر الأوامر بين أقواس معقوفة بالتنسيق التالي:

أمثلة

توليد SQL بالاستعانة بالذكاء الاصطناعي

يتضمن ClickHouse Client مساعدة مدمجة بالذكاء الاصطناعي لتوليد استعلامات SQL من أوصاف بلغة طبيعية. تساعد هذه الميزة المستخدمين على كتابة استعلامات معقدة من دون الحاجة إلى معرفة متعمقة بـ SQL. تعمل المساعدة بالذكاء الاصطناعي تلقائيًا إذا كان أحد متغيرَي البيئة OPENAI_API_KEY أو ANTHROPIC_API_KEY مُعيَّنًا. ولمزيد من التهيئة المتقدمة، راجع قسم التهيئة.

الاستخدام

لاستخدام ميزة توليد SQL بالاستعانة بالذكاء الاصطناعي، ضع البادئة ?? في بداية استعلامك باللغة الطبيعية:
سيقوم الذكاء الاصطناعي بما يلي:
  1. استكشاف مخطط قاعدة بياناتك تلقائيًا
  2. إنشاء SQL مناسب بناءً على الجداول والأعمدة المكتشفة
  3. تنفيذ الاستعلام الذي تم إنشاؤه فورًا

مثال

الإعداد

يتطلب توليد SQL بالاستعانة بالذكاء الاصطناعي إعداد موفّر ذكاء اصطناعي في ملف تهيئة عميل ClickHouse لديك. يمكنك استخدام OpenAI أو Anthropic أو أي خدمة واجهة برمجة تطبيقات متوافقة مع OpenAI.

آلية احتياطية تعتمد على البيئة

إذا لم يُحدَّد أي إعداد للذكاء الاصطناعي في ملف الإعداد، فسيحاول عميل ClickHouse تلقائيًا استخدام متغيرات البيئة:
  1. يتحقق أولًا من متغير البيئة OPENAI_API_KEY
  2. إذا لم يجده، يتحقق من متغير البيئة ANTHROPIC_API_KEY
  3. إذا لم يعثر على أيٍّ منهما، فسيتم تعطيل ميزات الذكاء الاصطناعي
يتيح ذلك إعدادًا سريعًا من دون الحاجة إلى ملفات إعداد:

ملف الإعدادات

لمزيد من التحكم في إعدادات الذكاء الاصطناعي، اضبطها في ملف إعدادات عميل ClickHouse الموجود في:
  • $XDG_CONFIG_HOME/clickhouse/config.xml (أو ~/.config/clickhouse/config.xml إذا لم يتم تعيين XDG_CONFIG_HOME) (بتنسيق XML)
  • $XDG_CONFIG_HOME/clickhouse/config.yaml (أو ~/.config/clickhouse/config.yaml إذا لم يتم تعيين XDG_CONFIG_HOME) (بتنسيق YAML)
  • ~/.clickhouse-client/config.xml (بتنسيق XML، الموقع القديم)
  • ~/.clickhouse-client/config.yaml (بتنسيق YAML، الموقع القديم)
  • أو حدِّد موقعًا مخصصًا باستخدام --config-file

استخدام واجهات برمجة التطبيقات المتوافقة مع OpenAI (مثل OpenRouter):
أمثلة على الحد الأدنى من التهيئة:

المعلمات

  • api_key - مفتاح واجهة برمجة التطبيقات الخاص بك لخدمة الذكاء الاصطناعي. يمكن الاستغناء عنه إذا كان معيّنًا عبر متغير بيئة:
    • OpenAI: OPENAI_API_KEY
    • Anthropic: ANTHROPIC_API_KEY
    • ملاحظة: تكون الأولوية لمفتاح واجهة برمجة التطبيقات في ملف الإعداد على متغير البيئة
  • provider - مزوّد الذكاء الاصطناعي: openai أو anthropic
    • إذا لم يتم تحديده، فسيُستخدم الرجوع التلقائي استنادًا إلى متغيرات البيئة المتاحة
  • model - النموذج المراد استخدامه (الافتراضي: خاص بالمزوّد)
    • OpenAI: gpt-4o, gpt-4, gpt-3.5-turbo, إلخ.
    • Anthropic: claude-3-5-sonnet-20241022, claude-3-opus-20240229, إلخ.
    • OpenRouter: استخدم تسمية النماذج الخاصة به، مثل anthropic/claude-3.5-sonnet
  • base_url - نقطة نهاية واجهة برمجة تطبيقات مخصّصة للخدمات المتوافقة مع OpenAI (اختياري)
  • timeout_seconds - مهلة الطلب بالثواني (الافتراضي: 30)
  • enable_schema_access - السماح للذكاء الاصطناعي باستكشاف مخططات قاعدة البيانات (الافتراضي: true)
  • max_steps - الحد الأقصى لخطوات استدعاء الأدوات لاستكشاف المخططات (الافتراضي: 10)
  • temperature - يتحكم في درجة العشوائية، 0.0 = حتمي، 1.0 = إبداعي (الافتراضي: 0.0)
  • max_tokens - الحد الأقصى لطول الاستجابة بالرموز (الافتراضي: 1000)
  • system_prompt - تعليمات مخصّصة للذكاء الاصطناعي (اختياري)

كيف يعمل

يستخدم مُولِّد SQL المعتمد على الذكاء الاصطناعي عمليةً متعددة الخطوات:
  1. اكتشاف المخطط
يستخدم الذكاء الاصطناعي أدوات مدمجة لاستكشاف قاعدة بياناتك:
  • يسرد قواعد البيانات المتاحة
  • يكتشف الجداول ضمن قواعد البيانات ذات الصلة
  • يفحص بنية الجداول من خلال عبارات CREATE TABLE
  1. توليد الاستعلامات
استنادًا إلى المخطط المكتشف، يُنشئ الذكاء الاصطناعي SQL بحيث:
  • يتوافق مع طلبك المكتوب بلغة طبيعية
  • يستخدم أسماء الجداول والأعمدة الصحيحة
  • يطبّق عمليات JOIN وعمليات التجميع المناسبة
  1. التنفيذ
يُنفَّذ SQL المُنشأ تلقائيًا وتُعرَض النتائج

القيود

  • يتطلب اتصالًا نشطًا بالإنترنت
  • يخضع استخدام واجهة برمجة التطبيقات لقيود على معدل الاستخدام ولتكاليف يفرضها مزوّد الذكاء الاصطناعي
  • قد تتطلب الاستعلامات المعقدة عدة تنقيحات
  • لدى الذكاء الاصطناعي وصول للقراءة فقط إلى معلومات المخطط، وليس إلى البيانات الفعلية

الأمان

  • لا تُرسَل مفاتيح واجهة برمجة تطبيقات مطلقًا إلى خوادم ClickHouse
  • لا يرى الذكاء الاصطناعي سوى معلومات المخطط (أسماء الجداول/الأعمدة والأنواع)، وليس البيانات الفعلية
  • تلتزم جميع الاستعلامات المُولَّدة بأذونات قاعدة البيانات الحالية لديك

سلسلة الاتصال

الاستخدام

يدعم عميل ClickHouse أيضًا الاتصال بخادم ClickHouse باستخدام سلسلة اتصال مشابهة لتلك المستخدمة في MongoDB، وPostgreSQL، وMySQL. وصيغتها كما يلي:

ملاحظات

إذا تم تحديد اسم المستخدم أو كلمة المرور أو قاعدة البيانات في سلسلة الاتصال، فلا يمكن تحديدها باستخدام --user أو --password أو --database، والعكس صحيح. يمكن أن يكون مكوّن المضيف إما اسم مضيف أو عنوان IPv4 أو IPv6. يجب أن تكون عناوين IPv6 بين []:
يمكن أن تحتوي سلاسل الاتصال على عدة مضيفين. سيحاول عميل ClickHouse الاتصال بهذه المضيفات حسب الترتيب (من اليسار إلى اليمين). وبمجرد إنشاء الاتصال، لن تُجرى أي محاولة للاتصال بالمضيفات المتبقية. يجب تحديد سلسلة الاتصال باعتبارها الوسيط الأول لـ clickHouse-client. يمكن استخدام سلسلة الاتصال مع أي عدد من خيارات سطر الأوامر الأخرى، باستثناء --host و--port. المفاتيح التالية مسموح بها لـ query_parameters: الترميز بالنسبة المئوية يجب أن تكون الأحرف غير التابعة لـ ASCII الأمريكي، والمسافات، والأحرف الخاصة في المَعلمات التالية مرمّزة بالنسبة المئوية:
  • user
  • password
  • hosts
  • database
  • query parameters

أمثلة

اتصل بـ localhost على المنفذ 9000 ونفّذ الاستعلام SELECT 1.
اتصل بـ localhost كمستخدم john باستخدام كلمة المرور secret، والمضيف 127.0.0.1 والمنفذ 9000
اتصل بـlocalhost باسم المستخدم default، وبالمضيف ذي عنوان IPv6 [::1] وعلى المنفذ 9000.
اتصل بـ localhost على المنفذ 9000 باستخدام وضع متعدد الأسطر.
اتصل بـ localhost باستخدام المنفذ 9000 باسم المستخدم default.
اتصل بـ localhost على المنفذ 9000، واستخدم قاعدة البيانات my_database كقاعدة بيانات افتراضية.
اتصل بـ localhost على المنفذ 9000، واجعل قاعدة البيانات الافتراضية my_database كما هي محددة في سلسلة الاتصال، مع استخدام اتصال آمن عبر المعامل المختصر s.
اتصل بالمضيف الافتراضي باستخدام المنفذ الافتراضي، والمستخدم default، وقاعدة البيانات الافتراضية.
اتصل بالمضيف الافتراضي باستخدام المنفذ الافتراضي، كمستخدم my_user ومن دون كلمة مرور.
اتصل بـ localhost باستخدام عنوان البريد الإلكتروني كاسم المستخدم. تُرمَّز العلامة @ بترميز النسبة المئوية إلى %40.
اتصل بأحد هذين المضيفين: 192.168.1.15، 192.168.1.25.

تنسيق معرّف الاستعلام

في الوضع التفاعلي، يعرض عميل ClickHouse معرّف الاستعلام لكل استعلام. وبشكل افتراضي، يكون تنسيق المعرّف كما يلي:
يمكن تحديد تنسيق مخصّص في ملف إعدادات ضمن وسم query_id_formats. ويُستبدل العنصر النائب {query_id} بمعرّف الاستعلام في سلسلة التنسيق. ويمكن استخدام عدة سلاسل تنسيق داخل هذا الوسم. يمكن استخدام هذه الميزة لإنشاء عناوين URL لتسهيل تنميط الاستعلامات. مثال
مع التهيئة أعلاه، يظهر معرّف الاستعلام بالتنسيق التالي:

ملفات الإعدادات

يستخدم عميل ClickHouse أول ملف موجود من بين ما يلي:
  • ملف تم تحديده باستخدام المعلمة -c [ -C, --config, --config-file ].
  • ./clickhouse-client.[xml|yaml|yml]
  • $XDG_CONFIG_HOME/clickhouse/config.[xml|yaml|yml] (أو ~/.config/clickhouse/config.[xml|yaml|yml] إذا لم يتم تعيين XDG_CONFIG_HOME)
  • ~/.clickhouse-client/config.[xml|yaml|yml]
  • /etc/clickhouse-client/config.[xml|yaml|yml]
اطّلع على نموذج ملف التهيئة في مستودع ClickHouse: clickhouse-client.xml

خيارات متغيرات البيئة

يمكن تعيين اسم المستخدم وكلمة المرور والمضيف من خلال متغيرات البيئة CLICKHOUSE_USER وCLICKHOUSE_PASSWORD وCLICKHOUSE_HOST. تكون لوسيطات سطر الأوامر --user و--password و--host، أو سلسلة الاتصال (إذا كانت محددة)، أولوية على متغيرات البيئة.

خيارات سطر الأوامر

يمكن تحديد جميع خيارات سطر الأوامر مباشرةً عبر سطر الأوامر أو تعيينها كقيم افتراضية في ملف الإعدادات.

الخيارات العامة

خيارات الاتصال

بدلًا من الخيارات --host و--port و--user و--password، يدعم العميل أيضًا سلاسل الاتصال.

خيارات الاستعلام

إعدادات الاستعلام

يمكن تحديد إعدادات الاستعلام كخيارات لسطر الأوامر في الـ client، على سبيل المثال:
راجع الإعدادات للاطلاع على قائمة الإعدادات.

خيارات التنسيق

تفاصيل التنفيذ

آخر تعديل في ٢ يوليو ٢٠٢٦