> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-86180b7b.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# registro de cambios de v24.5 para Cloud

> Registro de cambios de la versión rápida v24.5

Cambios relevantes para los servicios de ClickHouse Cloud de la versión v24.5.

<div id="breaking-changes">
  ## Cambios incompatibles
</div>

* Cambiar el nombre de la columna de `duration_ms` a `duration_microseconds` en la tabla `system.zookeeper` para reflejar que la duración se mide con resolución de microsegundos. [#60774](https://github.com/ClickHouse/ClickHouse/pull/60774) (Duc Canh Le).

* No permitir establecer `max_parallel_replicas` en 0, ya que no tiene sentido. Establecerlo en 0 podría provocar errores lógicos inesperados. Cierra #60140. [#61201](https://github.com/ClickHouse/ClickHouse/pull/61201) (Kruglov Pavel).

* Eliminar la compatibilidad con la consulta `INSERT WATCH` (parte de la funcionalidad experimental `LIVE VIEW`). [#62382](https://github.com/ClickHouse/ClickHouse/pull/62382) (Alexey Milovidov).

* Se desaconseja el uso de las funciones `neighbor`, `runningAccumulate`, `runningDifferenceStartingWithFirstValue` y `runningDifference` (porque son propensas a errores). En su lugar, deben usarse funciones de ventana adecuadas. Para volver a habilitarlas, establezca `allow_deprecated_error_prone_window_functions=1`. [#63132](https://github.com/ClickHouse/ClickHouse/pull/63132) (Nikita Taranov).

<div id="backward-incompatible-changes">
  ## Cambios incompatibles con versiones anteriores
</div>

* En la nueva versión de ClickHouse, las funciones geoDistance, greatCircleDistance y greatCircleAngle usarán el tipo de datos de coma flotante de doble precisión de 64 bits para los cálculos internos y como tipo de retorno si todos los argumentos son Float64. Esto resuelve el #58476. En versiones anteriores, la función siempre usaba Float32. Puede volver al comportamiento anterior configurando geo\_distance\_returns\_float64\_on\_float64\_arguments en false o estableciendo compatibility en 24.2 o una versión anterior. [#61848](https://github.com/ClickHouse/ClickHouse/pull/61848) (Alexey Milovidov).

* Las consultas a system.columns funcionarán más rápido si hay una gran cantidad de columnas, pero no se tiene concedido SHOW TABLES sobre muchas bases de datos o tablas. Tenga en cuenta que, en versiones anteriores, si concede SHOW COLUMNS a columnas individuales sin conceder SHOW TABLES a las tablas correspondientes, la tabla system.columns mostrará esas columnas, pero en la nueva versión omitirá la tabla por completo. Se eliminan los mensajes de registro de nivel trace "Access granted" y "Access denied", que ralentizaban las consultas. [#63439](https://github.com/ClickHouse/ClickHouse/pull/63439) (Alexey Milovidov).

* Se corrige un fallo en largestTriangleThreeBuckets. Esto cambia el comportamiento de esta función y hace que ignore los NaN de la serie proporcionada. Por lo tanto, el conjunto de resultados puede diferir del de versiones anteriores. [#62646](https://github.com/ClickHouse/ClickHouse/pull/62646) (Raúl Marín).

<div id="new-features">
  ## Nuevas características
</div>

* El nuevo analizador está habilitado de forma predeterminada en los nuevos servicios.

* Permite eliminar varias tablas a la vez, por ejemplo con drop table a,b,c;. [#58705](https://github.com/ClickHouse/ClickHouse/pull/58705) (zhongyuankai).

* Ahora es posible analizar CRLF con el formato TSV mediante la configuración input\_format\_tsv\_crlf\_end\_of\_line. Cierra #56257. [#59747](https://github.com/ClickHouse/ClickHouse/pull/59747) (Shaun Struwig).

* El motor de tabla ahora puede otorgarse y esto no afectará al comportamiento de los usuarios existentes. [#60117](https://github.com/ClickHouse/ClickHouse/pull/60117) (jsc0218).

* Añade el formato Form para leer y escribir un único registro en formato application/x-www-form-urlencoded. [#60199](https://github.com/ClickHouse/ClickHouse/pull/60199) (Shaun Struwig).

* Se añadió la opción de comprimir en CROSS JOIN. [#60459](https://github.com/ClickHouse/ClickHouse/pull/60459) (p1rattttt).

* Nueva configuración input\_format\_force\_null\_for\_omitted\_fields que obliga a usar valores NULL en los campos omitidos. [#60887](https://github.com/ClickHouse/ClickHouse/pull/60887) (Constantine Peresypkin).

* Se admite `join` con condiciones de desigualdad en las que intervienen columnas de las tablas izquierda y derecha. p. ej., `t1.y < t2.y`. Para habilitarlo, SET allow\_experimental\_join\_condition = 1. [#60920](https://github.com/ClickHouse/ClickHouse/pull/60920) (lgbo).

* Se añade una nueva función, getClientHTTPHeader. Esto cierra #54665. En coautoría con @lingtaolf. [#61820](https://github.com/ClickHouse/ClickHouse/pull/61820) (Alexey Milovidov).

* Por comodidad, SELECT \* FROM numbers() funcionará igual que SELECT \* FROM system.numbers, sin límite. [#61969](https://github.com/ClickHouse/ClickHouse/pull/61969) (YenchangChan).

* Ahora es posible modificar la configuración de la tabla memory mediante ALTER MODIFY SETTING. ALTER TABLE memory MODIFY SETTING min\_rows\_to\_keep = 100, max\_rows\_to\_keep = 1000;. [#62039](https://github.com/ClickHouse/ClickHouse/pull/62039) (zhongyuankai).

* El analizador admite CTE recursivas. [#62074](https://github.com/ClickHouse/ClickHouse/pull/62074) (Maksim Kita).

* Antes, nuestro almacenamiento S3 y la función de tabla S3 no admitían seleccionar datos de archivos comprimidos. Creé una solución que permite iterar por los archivos dentro de archivos comprimidos en S3. [#62259](https://github.com/ClickHouse/ClickHouse/pull/62259) (Daniil Ivanik).

* Compatibilidad con la función condicional clamp. [#62377](https://github.com/ClickHouse/ClickHouse/pull/62377) (skyoct).

* Se añade el formato de salida npy. [#62430](https://github.com/ClickHouse/ClickHouse/pull/62430) (豪肥肥).

* Compatibilidad del analizador con la cláusula QUALIFY. Cierra #47819. [#62619](https://github.com/ClickHouse/ClickHouse/pull/62619) (Maksim Kita).

* Se añadió el parámetro de consulta `role` a la interfaz HTTP. Funciona de forma similar a SET ROLE x: aplica el rol antes de ejecutar la sentencia. Esto permite superar una limitación de la interfaz HTTP, ya que no se permiten varias sentencias y no es posible enviar a la vez SET ROLE x y la propia sentencia. También es posible establecer varios roles de esta manera; por ejemplo, ?role=x\&role=y, que equivale a SET ROLE x, y. [#62669](https://github.com/ClickHouse/ClickHouse/pull/62669) (Serge Klochkov).

* Se añade SYSTEM UNLOAD PRIMARY KEY. [#62738](https://github.com/ClickHouse/ClickHouse/pull/62738) (Pablo Marcos).

* Se añadieron las funciones SQL generateUUIDv7, generateUUIDv7ThreadMonotonic y generateUUIDv7NonMonotonic (con distintos compromisos entre monotonicidad y rendimiento) para generar UUIDs de versión 7, también conocidos como UUIDs basados en timestamp con un componente aleatorio. También se añadió la nueva función UUIDToNum para extraer bytes de un UUID y la nueva función UUIDv7ToDateTime para extraer el componente de timestamp de un UUID de versión 7. [#62852](https://github.com/ClickHouse/ClickHouse/pull/62852) (Alexey Petrunyaka).

* Raw como sinónimo de TSVRaw. [#63394](https://github.com/ClickHouse/ClickHouse/pull/63394) (Unalian).

* Se añadió la posibilidad de realizar un cross join en un archivo temporal si el tamaño supera los límites. [#63432](https://github.com/ClickHouse/ClickHouse/pull/63432) (p1rattttt).

<div id="performance-improvements">
  ## Mejoras del rendimiento
</div>

* Omitir la fusión de los bloques de proyección recién creados durante los INSERT. [#59405](https://github.com/ClickHouse/ClickHouse/pull/59405) (Nikita Taranov).

* Reducir la sobrecarga de las mutaciones para los SELECT (v2). [#60856](https://github.com/ClickHouse/ClickHouse/pull/60856) (Azat Khuzhin).

* Mejoras en el pushdown de filtros de JOIN mediante conjuntos equivalentes. [#61216](https://github.com/ClickHouse/ClickHouse/pull/61216) (Maksim Kita).

* Añadir una nueva pasada del analizador para optimizar IN con un único valor. [#61564](https://github.com/ClickHouse/ClickHouse/pull/61564) (LiuNeng).

* Procesar las funciones de cadena XXXUTF8 en modo ASCII si las cadenas de entrada contienen solo caracteres ASCII. Inspirado en apache/doris#29799. Aceleración general de 1.07x\~1.62x. Tenga en cuenta que el uso máximo de memoria se redujo en algunos casos. [#61632](https://github.com/ClickHouse/ClickHouse/pull/61632) (李扬).

* Se habilitó de forma predeterminada el codificador rápido de Parquet (output\_format\_parquet\_use\_custom\_encoder). [#62088](https://github.com/ClickHouse/ClickHouse/pull/62088) (Michael Kolupaev).

* Mejorar JSONEachRowRowInputFormat omitiendo todos los campos restantes cuando ya se hayan leído todos los campos requeridos. [#62210](https://github.com/ClickHouse/ClickHouse/pull/62210) (lgbo).

* Las funciones splitByChar y splitByRegexp se aceleraron significativamente. [#62392](https://github.com/ClickHouse/ClickHouse/pull/62392) (李扬).

* Mejorar el insert select trivial desde archivos en las table functions file/s3/hdfs/url/.... Añadir la configuración independiente max\_parsing\_threads para controlar el número de hilos usados en paralelo para el análisis. [#62404](https://github.com/ClickHouse/ClickHouse/pull/62404) (Kruglov Pavel).

* Añadir compatibilidad con un búfer de escritura en paralelo para AzureBlobStorage, gestionado mediante la configuración azure\_allow\_parallel\_part\_upload. [#62534](https://github.com/ClickHouse/ClickHouse/pull/62534) (SmitaRKulkarni).

* Las funciones to\_utc\_timestamp y from\_utc\_timestamp ahora son aproximadamente 2x más rápidas. [#62583](https://github.com/ClickHouse/ClickHouse/pull/62583) (KevinyhZou).

* Las funciones parseDateTimeOrNull, parseDateTimeOrZero, parseDateTimeInJodaSyntaxOrNull y parseDateTimeInJodaSyntaxOrZero ahora se ejecutan significativamente más rápido (10x - 1000x) cuando la entrada contiene principalmente valores que no se pueden analizar. [#62634](https://github.com/ClickHouse/ClickHouse/pull/62634) (LiuNeng).

* Cambiar el comportamiento de HostResolver en caso de fallo para conservar solo un registro por IP [#62652](https://github.com/ClickHouse/ClickHouse/pull/62652) (Anton Ivashkin).

* Añadir la nueva configuración prefer\_merge\_sort\_block\_bytes para controlar el uso de memoria y acelerar 2 veces la ordenación durante la fusión cuando hay muchas columnas. [#62904](https://github.com/ClickHouse/ClickHouse/pull/62904) (LiuNeng).

* Optimización de QueryPlan para convertir OUTER JOIN en INNER JOIN si el filtro después de JOIN siempre filtra los valores predeterminados. La optimización puede controlarse con la configuración query\_plan\_convert\_outer\_join\_to\_inner\_join, habilitada de forma predeterminada. [#62907](https://github.com/ClickHouse/ClickHouse/pull/62907) (Maksim Kita).

* Habilitar optimize\_rewrite\_sum\_if\_to\_count\_if de forma predeterminada. [#62929](https://github.com/ClickHouse/ClickHouse/pull/62929) (Raúl Marín).

* Microoptimizaciones para el nuevo analizador. [#63429](https://github.com/ClickHouse/ClickHouse/pull/63429) (Raúl Marín).

* El análisis de índices funcionará si DateTime se compara con DateTime64. Esto cierra #63441. [#63443](https://github.com/ClickHouse/ClickHouse/pull/63443) (Alexey Milovidov).

* Acelerar un poco (alrededor de 1.5 veces) los índices de tipo set eliminando basura. [#64098](https://github.com/ClickHouse/ClickHouse/pull/64098) (Alexey Milovidov).

<div id="improvements">
  # Mejoras
</div>

* Eliminar la configuración optimize\_monotonous\_functions\_in\_order\_by, ya que se está convirtiendo en un no-op. [#63004](https://github.com/ClickHouse/ClickHouse/pull/63004) (Raúl Marín).

* Los Map ahora pueden tener Float32, Float64, Array(T), Map(K,V) y Tuple(T1, T2, ...) como claves. Cierra #54537. [#59318](https://github.com/ClickHouse/ClickHouse/pull/59318) (李扬).

* Se añade un WriteBuffer asíncrono para AzureBlobStorage, similar a S3. [#59929](https://github.com/ClickHouse/ClickHouse/pull/59929) (SmitaRKulkarni).

* Cadenas multilínea con preservación de bordes y cambio del ancho de columna. [#59940](https://github.com/ClickHouse/ClickHouse/pull/59940) (Volodyachan).

* Hace que RabbitMQ marque con `nack` los mensajes defectuosos. Cierra #45350. [#60312](https://github.com/ClickHouse/ClickHouse/pull/60312) (Kseniia Sumarokova).

* Se añade una configuración, first\_day\_of\_week, que afecta al primer día de la semana que consideran las funciones toStartOfInterval(..., INTERVAL ... WEEK). Esto permite mantener la coherencia con la función toStartOfWeek, que usa el domingo como primer día de la semana de forma predeterminada. [#60598](https://github.com/ClickHouse/ClickHouse/pull/60598) (Jordi Villar).

* Se agregó la columna virtual persistente \_block\_offset, que almacena el número original de la fila dentro del bloque asignado durante la inserción. La persistencia de la columna \_block\_offset se puede habilitar mediante la opción enable\_block\_offset\_column. Se agregó la columna virtual \_part\_data\_version, que contiene el número mínimo de bloque o la versión de mutación de la parte. La columna virtual persistente \_block\_number ya no se considera Experimental. [#60676](https://github.com/ClickHouse/ClickHouse/pull/60676) (Anton Popov).

* Las funciones date\_diff y age ahora calculan su resultado con precisión de nanosegundos en lugar de microsegundos. Ahora también admiten nanosecond (o nanoseconds o ns) como posible valor para el parámetro unit. [#61409](https://github.com/ClickHouse/ClickHouse/pull/61409) (Austin Kothig).

* Ahora, durante las fusiones, no se cargan los marks de las partes wide. [#61551](https://github.com/ClickHouse/ClickHouse/pull/61551) (Anton Popov).

* Habilitar output\_format\_pretty\_row\_numbers de forma predeterminada. Mejora la usabilidad. [#61791](https://github.com/ClickHouse/ClickHouse/pull/61791) (Alexey Milovidov).

* La barra de progreso funcionará para consultas triviales con LIMIT en system.zeros, system.zeros\_mt (ya funciona para system.numbers y system.numbers\_mt) y la función de tabla generateRandom. Además, si el número total de registros es mayor que el límite max\_rows\_to\_read, lanzará una excepción antes. Esto cierra #58183. [#61823](https://github.com/ClickHouse/ClickHouse/pull/61823) (Alexey Milovidov).

* Se añade TRUNCATE ALL TABLES. [#61862](https://github.com/ClickHouse/ClickHouse/pull/61862) (豪肥肥).

* Se añade una configuración, input\_format\_json\_throw\_on\_bad\_escape\_sequence; al desactivarla, se pueden guardar secuencias de escape incorrectas en formatos de entrada JSON. [#61889](https://github.com/ClickHouse/ClickHouse/pull/61889) (Kruglov Pavel).

* Se corrigió la gramática de "a" a "the" en el mensaje de advertencia. Solo hay un motor Atomic, por lo que debería ser "to the new Atomic engine" en lugar de "to a new Atomic engine". [#61952](https://github.com/ClickHouse/ClickHouse/pull/61952) (shabroo).

* Se corrige un error lógico al deshacer una transacción de inserción con quorum. [#61953](https://github.com/ClickHouse/ClickHouse/pull/61953) (Han Fei).

* Inferir automáticamente tipos de columnas Nullable a partir del esquema de Apache Arrow. [#61984](https://github.com/ClickHouse/ClickHouse/pull/61984) (Maksim Kita).

* Permite cancelar la fusión paralela de estados de agregación durante la agregación. Ejemplo: uniqExact. [#61992](https://github.com/ClickHouse/ClickHouse/pull/61992) (Maksim Kita).

* La fuente del diccionario con INVALIDATE\_QUERY no se recarga dos veces al iniciarse. [#62050](https://github.com/ClickHouse/ClickHouse/pull/62050) (vdimir).

* OPTIMIZE FINAL para ReplicatedMergeTree ahora esperará a que terminen las fusiones activas en ese momento y luego volverá a intentar programar una fusión final. Esto lo alineará más con el comportamiento habitual de MergeTree. [#62067](https://github.com/ClickHouse/ClickHouse/pull/62067) (Nikita Taranov).

* Al leer datos de un archivo de texto de Hive, se utilizaba la primera línea del archivo para ajustar la cantidad de campos de entrada, y a veces la cantidad de campos de esa primera línea no coincide con la definida en la tabla de Hive; por ejemplo, la tabla de Hive está definida con 3 columnas, como test\_tbl(a Int32, b Int32, c Int32), pero la primera línea del archivo de texto solo tiene 2 campos. En esta situación, los campos de entrada se ajustan a 2, y si la siguiente línea del archivo de texto tiene 3 campos, el tercer campo no se puede leer y en su lugar se le asigna el valor predeterminado 0, lo cual no es correcto. [#62086](https://github.com/ClickHouse/ClickHouse/pull/62086) (KevinyhZou).

* El resaltado sintáctico mientras se escribe en el cliente funcionará a nivel de sintaxis (anteriormente, funcionaba a nivel del lexer). [#62123](https://github.com/ClickHouse/ClickHouse/pull/62123) (Alexey Milovidov).

* Se corrige un problema por el que, al agregar un `= 1` o `= 0` redundante después de una expresión booleana que involucra la clave primaria, no se utiliza el índice primario. Por ejemplo, tanto `SELECT * FROM <table> WHERE <primary-key> IN (<value>) = 1` como `SELECT * FROM <table> WHERE <primary-key> NOT IN (<value>) = 0` realizan un escaneo completo de la tabla, aunque se podría utilizar el índice primario. [#62142](https://github.com/ClickHouse/ClickHouse/pull/62142) (josh-hildred).

* Se añadió la configuración lightweight\_deletes\_sync (valor predeterminado: 2 - esperar a todas las réplicas de forma síncrona). Es similar a la configuración mutations\_sync, pero solo afecta al comportamiento de las eliminaciones ligeras. [#62195](https://github.com/ClickHouse/ClickHouse/pull/62195) (Anton Popov).

* Distinguir entre booleanos y enteros al interpretar valores para ajustes personalizados: SET custom\_a = true; SET custom\_b = 1;. [#62206](https://github.com/ClickHouse/ClickHouse/pull/62206) (Vitaly Baranov).

* Admite el acceso a S3 mediante endpoints de interfaz de AWS Private Link. Cierra #60021, #31074 y #53761. [#62208](https://github.com/ClickHouse/ClickHouse/pull/62208) (Arthur Passos).

* El cliente debe enviar el header 'Keep-Alive: timeout=X' al servidor. Si un cliente recibe una respuesta del servidor con ese header, debe usar el valor proporcionado por el servidor. Además, es preferible que el cliente no use una connection que esté a punto de expirar, para evitar una condición de carrera al cerrar la connection. [#62249](https://github.com/ClickHouse/ClickHouse/pull/62249) (Sema Checherinda).

* Se añadieron las unidades de nanosegundos, microsegundos y milisegundos para date\_trunc. [#62335](https://github.com/ClickHouse/ClickHouse/pull/62335) (Misz606).

* La caché de consultas ya no guarda los resultados de consultas a tablas del sistema (system.*, information\_schema.*, INFORMATION\_SCHEMA.\*). [#62376](https://github.com/ClickHouse/ClickHouse/pull/62376) (Robert Schulze).

* La consulta MOVE PARTITION TO TABLE puede retrasarse o generar la excepción TOO\_MANY\_PARTS para evitar superar los límites del número de partes. Se aplican los mismos ajustes y límites que para la consulta INSERT (consulte max\_parts\_in\_total, parts\_to\_delay\_insert, parts\_to\_throw\_insert, inactive\_parts\_to\_throw\_insert, inactive\_parts\_to\_delay\_insert, max\_avg\_part\_size\_for\_too\_many\_parts, min\_delay\_to\_insert\_ms y el ajuste max\_delay\_to\_insert). [#62420](https://github.com/ClickHouse/ClickHouse/pull/62420) (Sergei Trifonov).

* Hacer que transform siempre devuelva la primera coincidencia. [#62518](https://github.com/ClickHouse/ClickHouse/pull/62518) (Raúl Marín).

* Se evita evaluar las expresiones DEFAULT de la tabla al ejecutar RESTORE. [#62601](https://github.com/ClickHouse/ClickHouse/pull/62601) (Vitaly Baranov).

* Permitir usar una clave de cuota con un esquema de autenticación distinto en las solicitudes HTTP. [#62842](https://github.com/ClickHouse/ClickHouse/pull/62842) (Kseniia Sumarokova).

* Cerrar la sesión cuando se alcance el valid\_until del usuario. [#63046](https://github.com/ClickHouse/ClickHouse/pull/63046) (Konstantin Bogdanov).
