Глобальные настройки
common:
Настройте параметры создания клиентов до их создания. Такие параметры, как генерируемые ID сеанса и запроса, а также идентификатор продукта, копируются в состояние конкретного клиента, поэтому последующие глобальные изменения не применяются к существующим клиентам. Параметры привязки и вставки работают иначе. Значения
naive_datetime_binding и dict_parameter_format считываются при привязке параметров. Значение naive_datetime_insert считывается при сериализации нативного столбца для вставки, содержащего объекты Python datetime или строки ISO DateTime64. Изменения этих параметров влияют на существующих клиентов. Контекст вставки, пригодный для повторного использования, использует текущее значение naive_datetime_insert для каждой вставки.Сжатие
enable_http_compression должен быть установлен в 1, либо у пользователя должно быть разрешение изменять этот параметр для отдельных запросов.
Сжатием управляет аргумент compress у get_client и get_async_client. Значение по умолчанию, True, объявляет все доступные кодировки ответов и сжимает блоки нативной вставки с помощью lz4. Установите compress=False, чтобы отключить сжатие, или передайте одно из значений "lz4", "zstd", "br" или "gzip", чтобы запросить конкретный метод.
Низкоуровневые методы client не используют клиентскую настройку compress. raw_query и raw_stream возвращают несжатые данные, а raw_insert принимает собственный аргумент compression, описывающий сжатие, уже применённое к полезной нагрузке.
Поддержка lz4 и zstd устанавливается вместе с ClickHouse Connect. В Python 3.14 zstd использует модуль стандартной библиотеки compression.zstd. В Python 3.10–3.13 используется backports.zstd. Пользовательский интерпретатор CPython 3.14+, собранный без поддержки zstd, всё равно импортируется; zstd исключается из списка доступных методов, а ошибка возникает только при явном запросе zstd. Поддержка Brotli не является обязательной и должна быть установлена отдельно перед использованием compress="br".
Для рабочих нагрузок ClickHouse gzip обычно медленнее, чем lz4 или zstd.
Поддержка HTTP-прокси
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считываются как соответствующий тип Python. При нативной вставке элемент выбирается по типу значения Python. - Если нескольким элементам
Variantсоответствует один и тот же тип Python, оберните значение с помощьюclickhouse_connect.datatypes.dynamic.typed_variant(value, "TypeName"), чтобы явно выбрать нужный элемент. - Формат чтения
typedдляVariantвозвращает объектыTypedVariant(value, type_name)и сохраняет исходный тип элемента. Чтобы включить его, используйтеquery_formats={"Variant": "typed"}. - Значения
Dynamicсчитываются как соответствующий тип Python. В настоящее время вставки отправляются в строковом представлении. - Значения
JSONможно вставлять как словари Python или JSON-строки, содержащие объекты. Формат чтения по умолчанию возвращает словари; чтобы возвращать JSON-строки, используйте формат чтения"string". - Запросы, выбирающие подстолбец
Variant,DynamicилиJSON, возвращают конкретный тип этого подстолбца.
shared-data столбцов JSON или Dynamic, используют типы, которые клиент пока не может декодировать. Такие значения возвращаются как raw bytes. Для этих сложных типов также используется путь преобразования на pure Python, поэтому они могут работать медленнее, чем обычные скалярные типы.