Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

حزم العميل في البروتوكول الأصلي

القيمة الاسم الوصف
0 Hello بداية مصافحة العميل
1 Query طلب استعلام
2 Data كتلة بيانات
3 Cancel إلغاء الاستعلام
4 Ping طلب Ping
5 TableStatus طلب حالة الجدول

يمكن أن تكون Data مضغوطة.

Hello

على سبيل المثال، نستخدم Go Client بالإصدار v1.10 الذي يدعم إصدار البروتوكول 54451، ونريد الاتصال بقاعدة البيانات default باستخدام اسم المستخدم default وكلمة المرور secret.

الحقل النوع القيمة الوصف
client_name String "Go Client" اسم تنفيذ العميل
version_major UVarInt 1 الإصدار الرئيسي للعميل
version_minor UVarInt 10 الإصدار الثانوي للعميل
protocol_version UVarInt 54451 إصدار بروتوكول TCP
database String "default" اسم قاعدة البيانات
username String "default" اسم المستخدم
password String "secret" كلمة المرور

إصدار البروتوكول

إصدار البروتوكول هو إصدار بروتوكول TCP لدى العميل.

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

الإعدادات الافتراضية

يجب تحديد جميع القيم صراحةً، إذ لا توجد أي قيم افتراضية على جانب الخادم. على جانب العميل، استخدم قاعدة البيانات "default"، واسم المستخدم "default"، وكلمة المرور "" (سلسلة فارغة) بوصفها القيم الافتراضية.

الاستعلام

الحقل النوع القيمة الوصف
query_id String 1ff-a123 معرّف الاستعلام، ويمكن أن يكون UUIDv4
client_info ClientInfo انظر النوع بيانات العميل
settings الإعدادات انظر النوع قائمة الإعدادات
secret String secret سرّ بين الخوادم
stage UVarInt 2 التنفيذ حتى مرحلة الاستعلام
compression UVarInt 0 معطّل=0، مفعّل=1
body String SELECT 1 نص الاستعلام

معلومات العميل

الحقل النوع الوصف
query_kind byte None=0, Initial=1, Secondary=2
initial_user String المستخدم الأصلي
initial_query_id String معرّف الاستعلام الأصلي
initial_address String العنوان الأصلي
initial_time Int64 الوقت الأصلي
interface byte TCP=1, HTTP=2
os_user String مستخدم نظام التشغيل
client_hostname String اسم مضيف العميل
client_name String اسم العميل
version_major UVarInt الإصدار الرئيسي للعميل
version_minor UVarInt الإصدار الثانوي للعميل
protocol_version UVarInt إصدار البروتوكول للعميل
quota_key String مفتاح الحصة
distributed_depth UVarInt عمق Distributed
version_patch UVarInt إصدار التصحيح للعميل
otel Bool حقول التتبّع موجودة
trace_id FixedString(16) معرّف التتبّع
span_id FixedString(8) معرّف span
trace_state String حالة التتبّع
trace_flags Byte علامات التتبّع

الإعدادات

الحقل النوع القيمة الوصف
المفتاح String send_logs_level مفتاح الإعداد
القيمة String trace قيمة الإعداد
مهم Bool true يمكن تجاهله أم لا

مُرمَّزة على شكل قائمة، ويشير خلوّ المفتاح والقيمة إلى نهاية القائمة.

المرحلة

القيمة الاسم الوصف
0 FetchColumns يجلب أنواع الأعمدة فقط
1 WithMergeableState حتى الحالة القابلة للدمج
2 Complete حتى الاكتمال التام (من المفترض أن يكون default)

البيانات

الحقل النوع الوصف
info BlockInfo معلومات الكتلة المُرمَّزة
columns UVarInt عدد الأعمدة
rows UVarInt عدد الصفوف
columns []عمود أعمدة تحتوي على بيانات

العمود

الحقل النوع القيمة الوصف
name String foo اسم العمود
type String DateTime64(9) نوع العمود
data bytes ~ بيانات العمود

Cancel

لا تحتوي الحزمة على حمولة. يجب أن يلغي الخادم الاستعلام.

Ping

لا تحتوي الحزمة على حمولة. ينبغي أن يردّ الخادم بـ pong.

Navigation