Skip to main content
ClickHouse Connect offre plusieurs options supplémentaires pour des cas d’usage avancés.

Paramètres globaux

Quelques paramètres contrôlent globalement le comportement de ClickHouse Connect. Ils sont accessibles depuis le paquet common de premier niveau :
Configurez les paramètres de création des clients avant de créer ceux-ci. Les paramètres tels que les ID de session et de requête générés, ainsi que l’identification du produit, sont copiés dans l’état propre au client. Les modifications globales ultérieures ne mettent donc pas à jour les clients existants. Les paramètres de liaison et d’insertion fonctionnent différemment. naive_datetime_binding et dict_parameter_format sont lus lors de la liaison des paramètres. naive_datetime_insert est lu lorsqu’une colonne d’insertion au format Native contenant des objets Python datetime ou des chaînes ISO DateTime64 est sérialisée. Les modifications de ces paramètres affectent les clients existants. Un contexte d’insertion réutilisable utilise la valeur actuelle de naive_datetime_insert pour chaque insertion.
Les paramètres globaux suivants sont actuellement définis :

Compression

ClickHouse Connect prend en charge la compression des réponses avec lz4, zstd, brotli, gzip et deflate. Les insertions Native prennent en charge lz4, zstd, brotli et gzip. La compression réduit les transferts réseau en contrepartie d’un temps CPU plus élevé. Pour recevoir des données compressées, le paramètre enable_http_compression du ClickHouse server doit être défini sur 1, ou l’utilisateur doit avoir l’autorisation de modifier ce paramètre requête par requête. La compression est contrôlée par l’argument compress de get_client et get_async_client. La valeur par défaut, True, annonce tous les encodages de réponse disponibles et compresse les blocs d’insertion Native avec lz4. Définissez compress=False pour désactiver la compression, ou passez l’une des valeurs "lz4", "zstd", "br" ou "gzip" pour demander une méthode spécifique. Les méthodes client brutes n’utilisent pas le paramètre compress défini au niveau du client. raw_query et raw_stream renvoient des données non compressées, et raw_insert utilise son propre argument compression pour indiquer la compression déjà appliquée au payload. La prise en charge de lz4 et zstd est installée avec ClickHouse Connect. Avec Python 3.14, zstd utilise le module de bibliothèque standard compression.zstd. Les versions de Python 3.10 à 3.13 utilisent backports.zstd. Un interpréteur CPython 3.14+ personnalisé compilé sans prise en charge de zstd s’importe tout de même ; zstd est alors retiré des méthodes disponibles et une erreur n’est levée que si zstd est explicitement demandé. Brotli est optionnel et doit être installé séparément avant d’utiliser compress="br". gzip est généralement plus lent que lz4 ou zstd pour les charges de travail ClickHouse.

Prise en charge du proxy HTTP

ClickHouse Connect reconnaît les variables d’environnement standard HTTP_PROXY et HTTPS_PROXY. Ces variables s’appliquent à tous les clients du processus. Pour configurer un proxy pour chaque client, passez http_proxy ou https_proxy à get_client ou get_async_client. Le client synchrone utilise urllib3. Pour utiliser un proxy SOCKS, installez PySocks et passez un urllib3.contrib.socks.SOCKSProxyManager comme argument pool_mgr à get_client. pool_mgr n’est pas pris en charge par le client asynchrone.

Types de données Variant, Dynamic et JSON

ClickHouse Connect prend en charge les types Variant, Dynamic et JSON actuellement disponibles dans ClickHouse. Le type legacy Object('json') a été supprimé dans clickhouse-connect 0.14 et n’est pas pris en charge.

Notes d’utilisation

  • Les valeurs Variant sont lues comme le type Python correspondant. Les insertions Native sélectionnent un membre en fonction du type de valeur Python.
  • Lorsque plusieurs membres Variant correspondent au même type Python, encapsulez la valeur avec clickhouse_connect.datatypes.dynamic.typed_variant(value, "TypeName") pour sélectionner explicitement le membre voulu.
  • Le format de lecture typed de Variant renvoie des objets TypedVariant(value, type_name) et préserve le type du membre d’origine. Activez-le avec query_formats={"Variant": "typed"}.
  • Les valeurs Dynamic sont lues comme le type Python correspondant. Les insertions sont actuellement envoyées via la représentation String.
  • Les valeurs JSON peuvent être insérées sous forme de dictionnaires Python ou de chaînes contenant un objet JSON. Le format de lecture par défaut renvoie des dictionnaires ; utilisez le format de lecture "string" pour renvoyer des chaînes JSON.
  • Les requêtes qui sélectionnent une sous-colonne Variant, Dynamic ou JSON renvoient le type concret de la sous-colonne.
Certaines valeurs stockées dans la zone de données partagées des colonnes JSON ou Dynamic utilisent des types que le client ne peut pas encore décoder. Ces valeurs sont renvoyées sous forme d’octets bruts. Ces types complexes utilisent également le chemin de conversion en pur Python ; ils peuvent donc être plus lents que les types scalaires établis.
Dernière modification le 14 août 2026