التثبيت
لتنزيل ClickHouse، نفّذ:تشغيل
إذا كنت قد نزّلت ClickHouse فقط ولم تثبّته، فاستخدم
./clickhouse client بدلًا من clickhouse-client.
للاطلاع على قائمة كاملة بخيارات سطر الأوامر، راجع خيارات سطر الأوامر.
الاتصال بـ ClickHouse Cloud
تتوفر تفاصيل خدمة ClickHouse Cloud الخاصة بك في وحدة تحكم ClickHouse Cloud. حدِّد الخدمة التي تريد الاتصال بها ثم انقر على Connect:اختر Native، وستظهر التفاصيل مع مثال لأمر
clickhouse-client:
تخزين تفاصيل الاتصال في ملف تهيئة
يمكنك تخزين تفاصيل الاتصال بخادم ClickHouse واحد أو أكثر في ملف تهيئة. يكون التنسيق كما يلي:للتركيز على بناء جملة الاستعلام، حُذفت تفاصيل الاتصال (
--host, --port، إلخ) من بقية الأمثلة. تذكّر إضافتها عند استخدام الأوامر.الوضع التفاعلي
استخدام الوضع التفاعلي
لتشغيل ClickHouse في الوضع التفاعلي، ما عليك سوى تنفيذ ما يلي: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أو:qlogoutأوlogout;
الحصول على المساعدة
يمكنك الاطلاع على وثائق أي دالة أو محرك جدول أو نوع البيانات أو تنسيق أو إعداد أو أي عنصر آخر في النظام، من داخل العميل مباشرةً. أدخلhelp متبوعًا باسم (كما تعمل أيضًا الصيغ المكافئة /help وman و/man):
system.documentation. ويُعرَض التوثيق المطابق من Markdown في الطرفية، مع نص عريض/مائل، وجداول، وكتل شيفرة مميّزة بحسب الصياغة. وعندما يكون الاسم مشتركًا بين عدة مكوّنات (على سبيل المثال file، إذ يكون دالة ومحرّك جدول في الوقت نفسه)، تُعرَض جميعها.
عند عدم وجود تطابق تام، يعرض العميل أسماءً مشابهة (مع السماح بالأخطاء الإملائية) والمكوّنات التي تَرِد هذه الكلمة في توثيقها:
help وحده، يُعرض ملخص موجز للاستخدام.
الأوامر
ينفّذ العميل بعض الأوامر التي تبدأ بـ/ بنفسه بدلاً من إرسالها إلى الخادم:
تؤدي كتابة
/ في بداية الإدخال إلى عرض الأوامر كتلميحات hints، وتؤدي كتابة المزيد من أحرف الاسم إلى تضييق القائمة؛ ويُكمل Tab الأمر الجاري كتابته، وهي أيضاً طريقة إكمال الأوامر عند تعطيل التلميحات. لا يُعد إدخال / بمفرده أمراً؛ إذ إنه، كما في Oracle SQL*Plus، يكرر الإدخال الأخير. ويُبلّغ عن اسم الأمر المكتوب بصورة خاطئة، مع عرض الأوامر التي قد تكون المقصودة، بدلاً من تشغيله كاستعلام:
معلومات عن معالجة الاستعلام
عند معالجة استعلام، يعرض العميل ما يلي:- معلومات التقدّم، وتُحدَّث افتراضيًا بما لا يزيد على 10 مرات في الثانية. بالنسبة إلى الاستعلامات السريعة، قد لا يكون هناك وقت كافٍ لعرض التقدّم.
- الاستعلام بعد تنسيقه وبعد التحليل، لأغراض تصحيح الأخطاء.
- النتيجة بالتنسيق المحدد.
- عدد الأسطر في النتيجة، والوقت المنقضي، ومتوسط سرعة معالجة الاستعلام. تشير جميع كميات البيانات إلى بيانات غير مضغوطة.
Ctrl+C.
ومع ذلك، ستظل بحاجة إلى الانتظار قليلًا حتى يُلغي الخادم الطلب.
لا يمكن إلغاء الاستعلام في مراحل معيّنة.
إذا لم تنتظر وضغطت على Ctrl+C مرةً ثانية، فسيخرج العميل.
يتيح عميل ClickHouse تمرير بيانات خارجية (جداول مؤقتة خارجية) لاستخدامها في الاستعلام.
لمزيد من المعلومات، راجع قسم البيانات الخارجية لمعالجة الاستعلام.
Aliases
يمكنك استخدام الـ Aliases التالية من داخل REPL:\l-SHOW DATABASES\d-SHOW TABLES\d <TABLE>-DESCRIBE TABLE <TABLE>\c <DATABASE>-USE <DATABASE>.- تكرار آخر استعلام
\d استكمالاً لاستعلام الـ SHOW TABLES بدلاً من أن يكون اسم جدول - كما في \d FROM system أو \d LIKE 'hits%' - فسيبقى السلوك هو الـ listing. أما الجدول الذي يحمل اسماً مطابقاً لإحدى هذه الـ clauses فيجب وضعه بين علامتَي اقتباس: \d `format`.
اختصارات لوحة المفاتيح
Alt (Option) + Shift + e- افتح المحرر مع الاستعلام الحالي. يمكن تحديد المحرر المراد استخدامه عبر متغير البيئةEDITOR. يُستخدمvimافتراضيًا.Alt (Option) + #- علّق السطر.Ctrl + r- بحث تقريبي في السجل.
وضع الدُفعات
استخدام وضع الدُفعات
بدلاً من استخدام عميل ClickHouse بشكل تفاعلي، يمكنك تشغيله في وضع الدُفعات. في وضع الدُفعات، ينفّذ ClickHouse استعلامًا واحدًا ثم يُنهي التشغيل فورًا - فلا يوجد موجّه أوامر تفاعلي ولا حلقة تكرار. يمكنك تحديد استعلام واحد كما يلي:--query في سطر الأوامر:
stdin:
messages، يمكنك أيضًا إدراج البيانات من سطر الأوامر:
--query، تُضاف أي مدخلات إلى الطلب بعد محرف سطر جديد.
إدراج ملف CSV في خدمة ClickHouse عن بُعد
يوضح هذا المثال كيفية إدراج ملف CSV لمجموعة بيانات تجريبية،cell_towers.csv، في الجدول الموجود cell_towers ضمن قاعدة البيانات default:
أمثلة على إدراج البيانات من سطر الأوامر
هناك عدة طرق لإدراج البيانات من سطر الأوامر. يوضح المثال أدناه كيفية إدراج صفَّين من بيانات CSV في جدول ClickHouse باستخدام وضع الدُفعات:cat <<_EOF كتلة heredoc التي تقرأ كل شيء حتى تصادف _EOF مرة أخرى، ثم تُخرِجه:
cat، ثم تُمرَّر عبر أنبوب إلى clickhouse-client كمدخلات:
TabSeparated.
يمكنك تعيين التنسيق في عبارة FORMAT في الاستعلام كما هو موضح في المثال أعلاه.
الاستعلامات ذات المعلمات
يمكنك تحديد معلمات في الاستعلام وتمرير قيم إليها باستخدام خيارات سطر الأوامر. يؤدي ذلك إلى تجنّب تنسيق الاستعلام بقيم ديناميكية محددة من جهة العميل. على سبيل المثال:بنية الاستعلام
في الاستعلام، ضع القيم التي تريد تعبئتها باستخدام معلمات سطر الأوامر بين أقواس معقوفة بالتنسيق التالي:أمثلة
توليد SQL بالاستعانة بالذكاء الاصطناعي
يتضمن ClickHouse Client مساعدة مدمجة بالذكاء الاصطناعي لتوليد استعلامات SQL من أوصاف بلغة طبيعية. تساعد هذه الميزة المستخدمين على كتابة استعلامات معقدة من دون الحاجة إلى معرفة متعمقة بـ SQL. تعمل المساعدة بالذكاء الاصطناعي تلقائيًا إذا كان أحد متغيرَي البيئةOPENAI_API_KEY أو ANTHROPIC_API_KEY مُعيَّنًا. ولمزيد من التهيئة المتقدمة، راجع قسم التهيئة.
الاستخدام
لاستخدام ميزة توليد SQL بالاستعانة بالذكاء الاصطناعي، ضع البادئة?? في بداية استعلامك باللغة الطبيعية:
- استكشاف مخطط قاعدة بياناتك تلقائيًا
- إنشاء SQL مناسب بناءً على الجداول والأعمدة المكتشفة
- تنفيذ الاستعلام الذي تم إنشاؤه فورًا
مثال
الإعداد
يتطلب توليد SQL بالاستعانة بالذكاء الاصطناعي إعداد موفّر ذكاء اصطناعي في ملف تهيئة عميل ClickHouse لديك. يمكنك استخدام OpenAI أو Anthropic أو أي خدمة واجهة برمجة تطبيقات متوافقة مع OpenAI.آلية احتياطية تعتمد على البيئة
إذا لم يُحدَّد أي إعداد للذكاء الاصطناعي في ملف الإعداد، فسيحاول عميل ClickHouse تلقائيًا استخدام متغيرات البيئة:- يتحقق أولًا من متغير البيئة
OPENAI_API_KEY - إذا لم يجده، يتحقق من متغير البيئة
ANTHROPIC_API_KEY - إذا لم يعثر على أيٍّ منهما، فسيتم تعطيل ميزات الذكاء الاصطناعي
ملف الإعدادات
لمزيد من التحكم في إعدادات الذكاء الاصطناعي، اضبطها في ملف إعدادات عميل 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
- XML
- YAML
استخدام واجهات برمجة التطبيقات المتوافقة مع OpenAI (مثل OpenRouter):
المعلمات
المعلمات المطلوبة
المعلمات المطلوبة
api_key- مفتاح واجهة برمجة التطبيقات الخاص بك لخدمة الذكاء الاصطناعي. يمكن الاستغناء عنه إذا كان معيّنًا عبر متغير بيئة:- OpenAI:
OPENAI_API_KEY - Anthropic:
ANTHROPIC_API_KEY - ملاحظة: تكون الأولوية لمفتاح واجهة برمجة التطبيقات في ملف الإعداد على متغير البيئة
- OpenAI:
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
- OpenAI:
إعدادات الاتصال
إعدادات الاتصال
base_url- نقطة نهاية واجهة برمجة تطبيقات مخصّصة للخدمات المتوافقة مع OpenAI (اختياري)timeout_seconds- مهلة الطلب بالثواني (الافتراضي:30)
استكشاف المخططات
استكشاف المخططات
enable_schema_access- السماح للذكاء الاصطناعي باستكشاف مخططات قاعدة البيانات (الافتراضي:true)max_steps- الحد الأقصى لخطوات استدعاء الأدوات لاستكشاف المخططات (الافتراضي:10)
معلمات التوليد
معلمات التوليد
temperature- يتحكم في درجة العشوائية، 0.0 = حتمي، 1.0 = إبداعي. يُحذف افتراضيًا ولا يُرسل إلى النموذج إلا عند تعيينه صراحةً، لأن بعض النماذج ترفض هذه المعلمة.max_tokens- الحد الأقصى لطول الاستجابة بالرموز (الافتراضي:1000)system_prompt- تعليمات مخصّصة للذكاء الاصطناعي (اختياري)
كيف يعمل
يستخدم مُولِّد SQL المعتمد على الذكاء الاصطناعي عمليةً متعددة الخطوات:- اكتشاف المخطط
- يسرد قواعد البيانات المتاحة
- يكتشف الجداول ضمن قواعد البيانات ذات الصلة
- يفحص بنية الجداول من خلال عبارات
CREATE TABLE
- توليد الاستعلامات
- يتوافق مع طلبك المكتوب بلغة طبيعية
- يستخدم أسماء الجداول والأعمدة الصحيحة
- يطبّق عمليات
JOINوعمليات التجميع المناسبة
- التنفيذ
القيود
- يتطلب اتصالًا نشطًا بالإنترنت
- يخضع استخدام واجهة برمجة التطبيقات لقيود على معدل الاستخدام ولتكاليف يفرضها مزوّد الذكاء الاصطناعي
- قد تتطلب الاستعلامات المعقدة عدة تنقيحات
- لدى الذكاء الاصطناعي وصول للقراءة فقط إلى معلومات المخطط، وليس إلى البيانات الفعلية
الأمان
- لا تُرسَل مفاتيح واجهة برمجة تطبيقات مطلقًا إلى خوادم ClickHouse
- لا يرى الذكاء الاصطناعي سوى معلومات المخطط (أسماء الجداول/الأعمدة والأنواع)، وليس البيانات الفعلية
- تلتزم جميع الاستعلامات المُولَّدة بأذونات قاعدة البيانات الحالية لديك
سلسلة الاتصال
الاستخدام
يدعم عميل ClickHouse أيضًا الاتصال بخادم ClickHouse باستخدام سلسلة اتصال مشابهة لتلك المستخدمة في MongoDB، وPostgreSQL، وMySQL. وصيغتها كما يلي:ملاحظات
إذا تم تحديد اسم المستخدم أو كلمة المرور أو قاعدة البيانات في سلسلة الاتصال، فلا يمكن تحديدها باستخدام--user أو --password أو --database، والعكس صحيح.
يمكن أن يكون مكوّن المضيف إما اسم مضيف أو عنوان IPv4 أو IPv6.
يجب أن تكون عناوين IPv6 بين []:
clickhouse-client.
يمكن استخدام سلسلة الاتصال مع أي عدد من خيارات سطر الأوامر الأخرى، باستثناء --host و--port.
المفاتيح التالية مسموح بها لـ query_parameters:
الترميز بالنسبة المئوية
يجب أن تكون الأحرف غير التابعة لـ ASCII الأمريكي، والمسافات، والأحرف الخاصة في المَعلمات التالية مرمّزة بالنسبة المئوية:
userpasswordhostsdatabasequery 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.
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-client.xml
- XML
- YAML
خيارات متغيرات البيئة
يمكن تعيين اسم المستخدم وكلمة المرور والمضيف من خلال متغيرات البيئةCLICKHOUSE_USER وCLICKHOUSE_PASSWORD وCLICKHOUSE_HOST.
تكون لوسيطات سطر الأوامر --user و--password و--host، أو سلسلة الاتصال (إذا كانت محددة)، أولوية على متغيرات البيئة.
خيارات سطر الأوامر
يمكن تحديد جميع خيارات سطر الأوامر مباشرةً عبر سطر الأوامر أو تعيينها كقيم افتراضية في ملف الإعدادات.الخيارات العامة
خيارات الاتصال
بدلًا من الخيارات
--host و--port و--user و--password، يدعم العميل أيضًا سلاسل الاتصال.