عميل ClickHouse
client-v2. وهو يوفّر واجهة برمجة تطبيقات أوضح، وشيفرة مصدرية أخف، وتحسينات أكبر في الأداء، ودعمًا أفضل لتنسيقات ClickHouse (وخاصة RowBinary وNative). وسيستخدم JDBC هذا العميل في المستقبل القريب.
أنواع البيانات المدعومة
| نوع البيانات | دعم عميل V2 | دعم عميل V1 |
|---|---|---|
| Int8 | ✔ | ✔ |
| Int16 | ✔ | ✔ |
| Int32 | ✔ | ✔ |
| Int64 | ✔ | ✔ |
| Int128 | ✔ | ✔ |
| Int256 | ✔ | ✔ |
| UInt8 | ✔ | ✔ |
| UInt16 | ✔ | ✔ |
| UInt32 | ✔ | ✔ |
| UInt64 | ✔ | ✔ |
| UInt128 | ✔ | ✔ |
| UInt256 | ✔ | ✔ |
| Float32 | ✔ | ✔ |
| Float64 | ✔ | ✔ |
| Decimal | ✔ | ✔ |
| Decimal32 | ✔ | ✔ |
| Decimal64 | ✔ | ✔ |
| Decimal128 | ✔ | ✔ |
| Decimal256 | ✔ | ✔ |
| Bool | ✔ | ✔ |
| String | ✔ | ✔ |
| FixedString | ✔ | ✔ |
| Nullable | ✔ | ✔ |
| Date | ✔ | ✔ |
| Date32 | ✔ | ✔ |
| DateTime | ✔ | ✔ |
| DateTime32 | ✔ | ✔ |
| DateTime64 | ✔ | ✔ |
| Interval | ✗ | ✗ |
| Enum | ✔ | ✔ |
| Enum8 | ✔ | ✔ |
| Enum16 | ✔ | ✔ |
| Array | ✔ | ✔ |
| Map | ✔ | ✔ |
| Nested | ✔ | ✔ |
| Tuple | ✔ | ✔ |
| UUID | ✔ | ✔ |
| IPv4 | ✔ | ✔ |
| IPv6 | ✔ | ✔ |
| Object | ✗ | ✔ |
| Point | ✔ | ✔ |
| Nothing | ✔ | ✔ |
| MultiPolygon | ✔ | ✔ |
| Ring | ✔ | ✔ |
| Polygon | ✔ | ✔ |
| SimpleAggregateFunction | ✔ | ✔ |
| AggregateFunction* | ✔ | ✔ |
| Variant | ✔ | ✗ |
| Dynamic | ✔ | ✗ |
| JSON | ✔ | ✗ |
دعم جزئي
- AggregateFunction — لا يُدعم سوى
groupBitmapلعمليات القراءة الثنائية المباشرة. بالنسبة إلى دوال التجميع الأخرى (minوmaxوavgوغيرها)، استخدم combinators من نوع-Mergeفي الاستعلام (مثلminMerge()وavgMerge()) لاستخراج الحالة النهائية على جانب الخادم. لا يدعمSELECT * FROM table ...الأعمدة من النوعAggregateFunction.
ملاحظات حول أنواع البيانات
- Decimal — استخدم
SET output_format_decimal_trailing_zeros=1في 21.9+ للحفاظ على الاتساق. - Enum — يمكن التعامل معه كسلسلة نصية أو كعدد صحيح.
- UInt64 — يُعيَّن إلى
longفي عميل-v1.
الميزات
| Name | Client V2 | Client V1 | Comments |
|---|---|---|---|
| اتصال HTTP | ✔ | ✔ | |
| ضغط HTTP (LZ4) | ✔ | ✔ | |
| ضغط يتحكم فيه التطبيق | ✔ | ✗ | |
| ضغط استجابة الخادم - LZ4 | ✔ | ✔ | |
| ضغط طلب العميل - LZ4 | ✔ | ✔ | |
| HTTPS | ✔ | ✔ | |
| شهادة SSL للعميل (mTLS) | ✔ | ✔ | |
| وكيل HTTP | ✔ | ✔ | |
| POJO SerDe | ✔ | ✗ | |
| مجمّع الاتصالات | ✔ | ✔ | عند استخدام Apache HTTP Client |
| المعلمات المسماة | ✔ | ✔ | |
| إعادة المحاولة عند الفشل | ✔ | ✔ | |
| التبديل الاحتياطي | ✗ | ✔ | |
| موازنة التحميل | ✗ | ✔ | |
| الاكتشاف التلقائي للخادم | ✗ | ✔ | |
| تعليق السجل | ✔ | ✔ | |
| أدوار الجلسة | ✔ | ✔ | |
| مصادقة العميل باستخدام SSL | ✔ | ✔ | |
| إعداد SNI | ✔ | ✗ | |
| المنطقة الزمنية للجلسة | ✔ | ✔ |
التوافق
- تُختبَر جميع المشاريع في هذا المستودع مع جميع إصدارات LTS النشطة من ClickHouse.
- سياسة الدعم
- نوصي بترقية العميل بانتظام حتى لا تفوتك الإصلاحات الأمنية والتحسينات الجديدة.
- إذا واجهت مشكلة في الترحيل إلى واجهة برمجة التطبيقات v2، فأنشئ issue وسنرد عليك!
التسجيل
Logback أو Log4j.
على سبيل المثال، إذا كنت تستخدم Maven، يمكنك إضافة التبعية التالية إلى ملف pom.xml:
pom.xml
تهيئة التسجيل
Logback، فيمكنك تهيئة التسجيل في ملف يُسمى logback.xml:
logback.xml