Paramètres globaux
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.Compression
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
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
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
Variantsont lues comme le type Python correspondant. Les insertions Native sélectionnent un membre en fonction du type de valeur Python. - Lorsque plusieurs membres
Variantcorrespondent au même type Python, encapsulez la valeur avecclickhouse_connect.datatypes.dynamic.typed_variant(value, "TypeName")pour sélectionner explicitement le membre voulu. - Le format de lecture
typeddeVariantrenvoie des objetsTypedVariant(value, type_name)et préserve le type du membre d’origine. Activez-le avecquery_formats={"Variant": "typed"}. - Les valeurs
Dynamicsont lues comme le type Python correspondant. Les insertions sont actuellement envoyées via la représentation String. - Les valeurs
JSONpeuvent ê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,DynamicouJSONrenvoient le type concret de la sous-colonne.
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.