Saltar al contenido principal

Cliente de ClickHouse

El cliente de Java es una biblioteca que implementa una API propia y abstrae los detalles de la comunicación de red con el servidor ClickHouse. Actualmente, solo admite la interfaz HTTP. La biblioteca proporciona utilidades para trabajar con distintos formatos de ClickHouse y otras funciones relacionadas. El cliente de Java se desarrolló allá por 2015. Su base de código se volvió muy difícil de mantener, la API es confusa y resulta difícil seguir optimizándola. Por eso, en 2024 lo refactorizamos como un nuevo componente, 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

Tipos de datos de ClickHouse
Compatibilidad parcial
  • AggregateFunction — Solo groupBitmap es compatible con lecturas binarias directas. Para otras funciones de agregación (min, max, avg, etc.), use combinadores -Merge en su consulta (por ejemplo, minMerge(), avgMerge()) para resolver el estado del lado del servidor. SELECT * FROM table ... no es compatible con columnas de tipo AggregateFunction.
Notas sobre los tipos de datos
  • DecimalSET output_format_decimal_trailing_zeros=1 en 21.9+ para mantener la coherencia.
  • Enum — puede tratarse tanto como cadena como entero.
  • UInt64 — se asigna a long en client-v1.

Características

Tabla de características de los clientes: El controlador JDBC hereda las mismas características que la implementación de cliente subyacente. Las demás características de JDBC se enumeran en su página.

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

Nuestro cliente de Java usa SLF4J para el logging. Puedes usar cualquier framework de logging compatible con SLF4J, como 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

Esto dependerá del framework de logging que esté usando. Por ejemplo, si está usando Logback, podría configurar el logging en un archivo llamado logback.xml:
logback.xml
Registro de cambios
Última modificación el 2 de julio de 2026