الإعدادات العامة
common ذات المستوى الأعلى:
اضبط إعدادات إنشاء العميل قبل إنشاء العملاء. تُنسخ إعدادات مثل معرّفات الجلسات والاستعلامات المُولَّدة وتعريف المنتج إلى حالة خاصة بكل عميل، لذا لا تؤثر التغييرات العامة اللاحقة في العملاء الحاليين. تختلف إعدادات الربط والإدراج عن ذلك. تُقرأ قيمتا
naive_datetime_binding وdict_parameter_format عند ربط المعلمات. وتُقرأ قيمة naive_datetime_insert عند إجراء تسلسل لعمود إدراج أصلي يحتوي على كائنات datetime من بايثون أو سلاسل ISO لـ DateTime64. تؤثر التغييرات في هذه الإعدادات في العملاء الحاليين. ويستخدم سياق إدراج قابل لإعادة الاستخدام قيمة naive_datetime_insert الحالية لكل عملية إدراج.الضغط
enable_http_compression على ClickHouse server إلى 1، أو يجب أن تكون لدى المستخدم permission لتغيير هذا الإعداد على أساس “لكل query”.
يُتحكَّم في الضغط من خلال الوسيط compress في get_client وget_async_client. تشير القيمة الافتراضية True إلى جميع ترميزات الاستجابة المتاحة، وتضغط insert blocks الخاصة بـ Native باستخدام lz4. اضبط compress=False لتعطيل الضغط، أو مرّر إحدى القيم "lz4" أو "zstd" أو "br" أو "gzip" لطلب طريقة محددة.
لا تستخدم methods الخاصة بالعميل الخام إعداد compress على مستوى client. تُرجع raw_query وraw_stream بيانات غير مضغوطة، بينما يستخدم raw_insert وسيط compression خاصًا به يصف الضغط المطبّق مسبقًا على payload.
يُثبَّت دعم lz4 وzstd مع ClickHouse Connect. في بايثون 3.14، يستخدم zstd وحدة المكتبة القياسية compression.zstd. وتستخدم إصدارات بايثون من 3.10 إلى 3.13 backports.zstd. وحتى إذا كان مفسّر CPython 3.14+ مخصصًا ومبنيًا دون دعم zstd، فيمكن استيراده؛ إذ يُستبعد zstd من methods المتاحة، ولا يظهر error إلا عند طلب zstd صراحةً. أما Brotli فهو اختياري ويجب تثبيته بشكل منفصل قبل استخدام compress="br".
يكون gzip أبطأ عمومًا من lz4 أو zstd في workloads الخاصة بـ ClickHouse.
دعم HTTP وكيل support
HTTP_PROXY وHTTPS_PROXY. تنطبق هذه المتغيرات على جميع العملاء داخل العملية. لتهيئة وكيل لكل عميل على حدة، مرّر http_proxy أو https_proxy إلى get_client أو get_async_client.
يستخدم العميل المتزامن urllib3. لاستخدام وكيل SOCKS، ثبّت PySocks ومرّر urllib3.contrib.socks.SOCKSProxyManager باعتباره الوسيط pool_mgr إلى get_client. لا يدعم العميل غير المتزامن الوسيط pool_mgr.
أنواع البيانات Variant وDynamic وJSON
Variant وDynamic وJSON. وقد أُزيل النوع القديم Object('json') في clickhouse-connect 0.14، وهو غير مدعوم.
ملاحظات الاستخدام
- تُقرأ قيم
Variantباعتبارها نوع بايثون المطابق. وتختار عمليات insert الأصلية عضوًا بناءً على نوع قيمة بايثون. - عندما تتوافق عدة أعضاء في
Variantمع نوع بايثون نفسه، غلّف القيمة باستخدامclickhouse_connect.datatypes.dynamic.typed_variant(value, "TypeName")لتحديد العضو صراحةً. - يعيد تنسيق القراءة
typedلـVariantكائناتTypedVariant(value, type_name)ويحتفظ بنوع العضو الأصلي. فعِّله باستخدامquery_formats={"Variant": "typed"}. - تُقرأ قيم
Dynamicباعتبارها نوع بايثون المطابق. وتُرسَل عمليات insert حاليًا عبر التمثيلString. - يمكن insert قيم
JSONعلى هيئة قواميس بايثون أو سلاسل JSON object. ويعيد تنسيق القراءة الافتراضي قواميس؛ استخدم تنسيق القراءة"string"لإرجاع JSON string. - تُرجع الاستعلامات التي تحدد subcolumn من
VariantأوDynamicأوJSONالنوع الفعلي لذلك الـ subcolumn.
shared-data ضمن أعمدة JSON أو Dynamic أنواعًا لا يستطيع client فك ترميزها بعد. وتُعاد هذه القيم على شكل raw bytes. كما تستخدم هذه الأنواع المعقدة أيضًا مسار التحويل في بايثون الخالص، لذا قد تكون أبطأ من الأنواع scalar المعروفة.