Saltar al contenido principal
Cambios relevantes para los servicios de ClickHouse Cloud correspondientes a la versión v24.8.

Cambio incompatible con versiones anteriores

  • Se cambió la serialización binaria del tipo de dato Variant: se añadió el modo compact para evitar escribir el mismo discriminador varias veces en gránulos con una sola variante o solo con valores NULL. Se añadió la configuración de MergeTree use_compact_variant_discriminators_serialization, habilitada de forma predeterminada. Tenga en cuenta que el tipo Variant sigue siendo experimental y que este cambio incompatible con versiones anteriores en la serialización no debería afectarle, a menos que haya estado trabajando con soporte para habilitar esta funcionalidad con anterioridad. #62774 (Kruglov Pavel).
  • Se prohíbe CREATE MATERIALIZED VIEW ... ENGINE Replicated*MergeTree POPULATE AS SELECT ... con bases de datos Replicated. Este PR específico solo aplica a usuarios que todavía usan ReplicatedMergeTree. #63963 (vdimir).
  • La métrica KeeperOutstandingRequets pasó a llamarse KeeperOutstandingRequests. Esto corrige un error tipográfico reportado en #66179. #66206 (Robert Schulze).
  • clickhouse-client y clickhouse-local ahora usan de forma predeterminada el modo multiconsulta (en lugar del modo de consulta única). Por ejemplo, clickhouse-client -q "SELECT 1; SELECT 2" ahora funciona, mientras que antes los usuarios tenían que añadir --multiquery (o -n). La opción --multiquery/-n quedó obsoleta. Las consultas INSERT en sentencias multiconsulta se tratan de forma especial según su cláusula FORMAT: si FORMAT es VALUES (el caso más común), el final de la sentencia INSERT se representa mediante un punto y coma ; al final de la consulta. Para todos los demás formatos (por ejemplo, CSV o JSONEachRow), el final de la sentencia INSERT se representa mediante dos saltos de línea \n\n al final de la consulta. #63898 (wxybear).
  • En versiones anteriores, era posible usar una sintaxis alternativa para los tipos de dato LowCardinality agregando WithDictionary al nombre del tipo de dato. Era una implementación inicial funcional y nunca se documentó ni se expuso públicamente. Ahora está obsoleta. Si ha usado esta sintaxis, debe aplicar ALTER a sus tablas y cambiar el nombre de los tipos de dato a LowCardinality. #66842(Alexey Milovidov).
  • Se corrigieron errores lógicos con Buffer usado con una tabla de destino distribuida. Es un cambio incompatible con versiones anteriores: las consultas que usan Buffer con una tabla de destino distribuida pueden dejar de funcionar si la tabla aparece más de una vez en la consulta (por ejemplo, en una autounión). #67015 (vdimir).
  • En versiones anteriores, llamar a funciones para distribuciones aleatorias basadas en la función gamma (como Chi-Squared, Student y Fisher) con argumentos negativos cercanos a cero provocaba un cálculo prolongado o un bucle infinito. En la nueva versión, llamar a estas funciones con argumentos cero o negativos producirá una excepción. Esto cierra #67297. #67326 (Alexey Milovidov).
  • En versiones anteriores, arrayWithConstant podía ser lento si se le pedía generar arrays muy grandes. En la nueva versión, está limitado a 1 GB por array. Esto cierra #32754. #67741 (Alexey Milovidov).
  • Se corrigió el formato del modificador REPLACE (ya no se permite omitir los paréntesis). #67774 (Azat Khuzhin).

Nueva funcionalidad

  • Se amplió la función tuple para construir tuplas con nombre en la consulta. Se introdujo la función tupleNames para extraer nombres de las tuplas. #54881 (Amos Bird).
  • Soporte de ASOF JOIN para el algoritmo full_sorting_join. Cierra #54493. #55051 (vdimir).
  • Se añadió una nueva función de tabla, fuzzQuery. Esta función permite modificar una cadena de consulta dada con variaciones aleatorias. Ejemplo: SELECT query FROM fuzzQuery(‘SELECT 1’);. #62103 (pufit).
  • Se añadió la nueva función de ventana percent_rank. #62747 (lgbo).
  • Soporte de autenticación JWT en clickhouse-client. #62829 (Konstantin Bogdanov).
  • Se añadieron las funciones SQL changeYear, changeMonth, changeDay, changeHour, changeMinute, changeSecond. Por ejemplo, SELECT changeMonth(toDate(‘2024-06-14’), 7) devuelve la fecha 2024-07-14. #63186 (cucumber95).
  • Se añadió system.error_log, que contiene el historial de valores de error de la tabla system.errors, volcados periódicamente a disco. #65381 (Pablo Marcos).
  • Se añadió la función de agregado groupConcat. Es prácticamente lo mismo que arrayStringConcat( groupArray(column), ’,’). Puede recibir 2 parámetros: un delimitador de cadena y el número de elementos que se procesarán. #65451 (Yarik Briukhovetskyi).
  • Se añadió AzureQueue storage. #65458 (Kseniia Sumarokova).
  • Se añadió un nuevo ajuste para deshabilitar o habilitar la escritura del índice de página en archivos Parquet. #65475 (lgbo).
  • Se añade automáticamente un comodín * al final de la ruta de un directorio con la función de tabla file. #66019 (Zhidong (David) Guo).
  • Se añadió la opción —memory-usage al cliente en modo no interactivo. #66393 (vdimir).
  • Se añadió la columna virtual _etag para el motor de tabla S3. Corrige #65312. #65386 (skyoct)
  • Este pull request introduce el particionamiento de estilo Hive para distintos motores (File, URL, S3, AzureBlobStorage, HDFS). El particionamiento de estilo Hive organiza los datos en subdirectorios particionados, lo que permite consultar y gestionar grandes conjuntos de datos de forma más eficiente. Actualmente, solo crea columnas virtuales con el nombre y los datos correspondientes. El PR de seguimiento introducirá el filtrado de datos adecuado (mejora del rendimiento). #65997 (Yarik Briukhovetskyi).
  • Se añadió la función printf para compatibilidad con spark. #66257 (李扬).
  • Se añadió soporte para leer la geometría MULTILINESTRING en formato WKT mediante la función readWKTLineString. #67647 (Jacob Reckhard).
  • Se añadió un mecanismo de etiquetado (espacio de nombres) para la caché de consultas. Las mismas consultas con etiquetas diferentes se consideran distintas en la caché de consultas. Ejemplo: SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = ‘abc’ and SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = ‘def’ ahora crean entradas distintas en la caché de consultas. #68235(sakulali).
Última modificación el 10 de junio de 2026