Cliente de ClickHouse
client-v2. Tiene una API clara, una base de código más ligera, mejor rendimiento y una mejor compatibilidad con los formatos de ClickHouse (principalmente RowBinary y Native). JDBC usará este cliente en un futuro próximo.
Tipos de datos compatibles
| Tipo de dato | Compatibilidad con el cliente V2 | Compatibilidad con el cliente 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 | ✔ | ✗ |
Compatibilidad parcial
- AggregateFunction — Solo
groupBitmapes compatible con lecturas binarias directas. Para otras funciones de agregación (min,max,avg, etc.), use combinadores-Mergeen su consulta (por ejemplo,minMerge(),avgMerge()) para resolver el estado del lado del servidor.SELECT * FROM table ...no es compatible con columnas de tipoAggregateFunction.
Notas sobre los tipos de datos
- Decimal —
SET output_format_decimal_trailing_zeros=1en 21.9+ para mantener la coherencia. - Enum — puede tratarse tanto como cadena como entero.
- UInt64 — se asigna a
longen client-v1.
Características
| Nombre | Cliente V2 | Cliente V1 | Comentarios |
|---|---|---|---|
| Conexión HTTP | ✔ | ✔ | |
| Compresión HTTP (LZ4) | ✔ | ✔ | |
| Compresión controlada por la aplicación | ✔ | ✗ | |
| Compresión de la respuesta del servidor - LZ4 | ✔ | ✔ | |
| Compresión de la solicitud del cliente - LZ4 | ✔ | ✔ | |
| HTTPS | ✔ | ✔ | |
| Certificado SSL del cliente (mTLS) | ✔ | ✔ | |
| Proxy HTTP | ✔ | ✔ | |
| POJO SerDe | ✔ | ✗ | |
| Pool de conexiones | ✔ | ✔ | Cuando se usa Apache HTTP Cliente |
| Parámetros con nombre | ✔ | ✔ | |
| Reintento en caso de fallo | ✔ | ✔ | |
| Conmutación por error | ✗ | ✔ | |
| Balanceo de carga | ✗ | ✔ | |
| Detección automática del servidor | ✗ | ✔ | |
| Comentario de log | ✔ | ✔ | |
| Roles de sesión | ✔ | ✔ | |
| Autenticación del cliente mediante SSL | ✔ | ✔ | |
| Configuración de SNI | ✔ | ✗ | |
| Zona horaria de la sesión | ✔ | ✔ |
Compatibilidad
- Todos los proyectos de este repositorio se prueban con todas las versiones LTS activas de ClickHouse.
- Política de soporte
- Recomendamos actualizar el cliente de forma continua para no perder correcciones de seguridad ni nuevas mejoras.
- Si tienes algún problema con la migración a la API v2, abre una incidencia y te responderemos.
Logging
Logback o Log4j.
Por ejemplo, si usas Maven, puedes añadir la siguiente dependencia a tu archivo pom.xml:
pom.xml
Configuración del logging
Logback, podría configurar el logging en un archivo llamado logback.xml:
logback.xml