ClickHouse client
client-v2. Il offre une API claire, une base de code plus légère, de meilleures performances et une meilleure prise en charge des formats ClickHouse (principalement RowBinary et Native). JDBC utilisera ce client dans un avenir proche.
Types de données pris en charge
| Type de données | Prise en charge par Client V2 | Prise en charge par Client 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 | ✔ | ✗ |
Prise en charge partielle
- AggregateFunction — Seul
groupBitmapest pris en charge pour les lectures binaires directes. Pour les autres fonctions d’agrégation (min,max,avg, etc.), utilisez les combinateurs-Mergedans votre requête (par exemple,minMerge(),avgMerge()) pour finaliser l’état côté serveur.SELECT * FROM table ...n’est pas pris en charge pour les colonnes de typeAggregateFunction.
Remarques sur les types de données
- Decimal —
SET output_format_decimal_trailing_zeros=1à partir de la version 21.9+ pour plus de cohérence. - Enum — peut être traité à la fois comme une chaîne et comme un entier.
- UInt64 — mappé sur
longdans client-v1.
Fonctionnalités
| Name | Client V2 | Client V1 | Comments |
|---|---|---|---|
| Connexion HTTP | ✔ | ✔ | |
| Compression HTTP (LZ4) | ✔ | ✔ | |
| Compression gérée par l’application | ✔ | ✗ | |
| Compression des réponses du serveur - LZ4 | ✔ | ✔ | |
| Compression des requêtes du client - LZ4 | ✔ | ✔ | |
| HTTPS | ✔ | ✔ | |
| Certificat SSL client (mTLS) | ✔ | ✔ | |
| Proxy HTTP | ✔ | ✔ | |
| SerDe POJO | ✔ | ✗ | |
| Pool de connexions | ✔ | ✔ | Lorsque le client Apache HTTP est utilisé |
| Paramètres nommés | ✔ | ✔ | |
| Nouvelle tentative en cas d’échec | ✔ | ✔ | |
| Basculement | ✗ | ✔ | |
| Équilibrage de charge | ✗ | ✔ | |
| Découverte automatique du serveur | ✗ | ✔ | |
| Commentaire de log | ✔ | ✔ | |
| Rôles de session | ✔ | ✔ | |
| Authentification SSL du client | ✔ | ✔ | |
| Configuration SNI | ✔ | ✗ | |
| Fuseau horaire de la session | ✔ | ✔ |
Compatibilité
- Tous les projets de ce dépôt sont testés avec toutes les versions LTS actives de ClickHouse.
- Politique de prise en charge
- Nous recommandons de mettre régulièrement à jour le client afin de ne pas manquer les correctifs de sécurité et les nouvelles améliorations.
- Si vous rencontrez un problème lors de la migration vers l’API v2, créez une issue et nous vous répondrons !
Journalisation
Logback ou Log4j.
Par exemple, si vous utilisez Maven, vous pouvez ajouter la dépendance suivante à votre fichier pom.xml :
pom.xml
Configurer la journalisation
Logback, vous pouvez configurer la journalisation dans un fichier nommé logback.xml :
logback.xml