mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-18 05:32:52 +00:00
cd14f9ebcb
* split up select.md * array-join.md basic refactoring * distinct.md basic refactoring * format.md basic refactoring * from.md basic refactoring * group-by.md basic refactoring * having.md basic refactoring * additional index.md refactoring * into-outfile.md basic refactoring * join.md basic refactoring * limit.md basic refactoring * limit-by.md basic refactoring * order-by.md basic refactoring * prewhere.md basic refactoring * adjust operators/index.md links * adjust sample.md links * adjust more links * adjust operatots links * fix some links * adjust aggregate function article titles * basic refactor of remaining select clauses * absolute paths in make_links.sh * run make_links.sh * remove old select.md locations * translate docs/es * translate docs/fr * translate docs/fa * remove old operators.md location * change operators.md links * adjust links in docs/es * adjust links in docs/es * minor texts adjustments * wip * update machine translations to use new links * fix changelog * es build fixes * get rid of some select.md links * temporary adjust ru links * temporary adjust more ru links * improve curly brace handling * adjust ru as well * fa build fix * ru link fixes * zh link fixes * temporary disable part of anchor checks
129 KiB
129 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 72537a2d52 |
78 | 2018 |
Lanzamiento de ClickHouse 18.16
¿Qué puedes encontrar en Neodigit
Corrección de errores:
- Se corrigió un error que provocaba problemas con la actualización de diccionarios con el origen ODBC. #3825, #3829
- La compilación JIT de funciones agregadas ahora funciona con columnas LowCardinality. #3838
Mejora:
- Se agregó el
low_cardinality_allow_in_native_format
configuración (habilitada por defecto). Cuando se deshabilita, las columnas LowCardinality se convertirán en columnas ordinarias para las consultas SELECT y se esperarán columnas ordinarias para las consultas INSERT. #3879
Mejoras de construcción:
- Correcciones para compilaciones en macOS y ARM.
¿Qué puedes encontrar en Neodigit
Novedad:
DEFAULT
Las expresiones se evalúan en busca de campos faltantes al cargar datos en formatos de entrada semiestructurados (JSONEachRow
,TSKV
). La función está habilitada coninsert_sample_with_metadata
configuración. #3555- El
ALTER TABLE
consulta ahora tiene elMODIFY ORDER BY
acción para cambiar la clave de ordenación al agregar o eliminar una columna de tabla. Esto es útil para las tablasMergeTree
familia que realizan tareas adicionales al fusionarse basándose en esta clave de ordenación, comoSummingMergeTree
,AggregatingMergeTree
y así sucesivamente. #3581 #3755 - Para las tablas en el
MergeTree
familia, ahora puede especificar una clave de clasificación diferente (ORDER BY
) e índice (PRIMARY KEY
). La clave de ordenación puede ser más larga que el índice. #3581 - Se agregó el
hdfs
función de la tabla y elHDFS
para importar y exportar datos a HDFS. Más información - Funciones añadidas para trabajar con base64:
base64Encode
,base64Decode
,tryBase64Decode
. Alejandro Krasheninnikov - Ahora puede usar un parámetro para configurar la precisión del
uniqCombined
función de agregado (seleccione el número de celdas HyperLogLog). #3406 - Se agregó el
system.contributors
tabla que contiene los nombres de todos los que hicieron compromete en ClickHouse. #3452 - Se agregó la capacidad de omitir la partición para el
ALTER TABLE ... FREEZE
consulta para hacer una copia de seguridad de todas las particiones a la vez. #3514 - Añadir
dictGet
ydictGetOrDefault
funciones que no requieren especificar el tipo de valor de retorno. El tipo se determina automáticamente a partir de la descripción del diccionario. Amos pájaro - Ahora puede especificar comentarios para una columna en la descripción de la tabla y cambiarla usando
ALTER
. #3377 - La lectura es compatible para
Join
tablas de escribir con teclas simples. Amos pájaro - Ahora puede especificar las opciones
join_use_nulls
,max_rows_in_join
,max_bytes_in_join
, yjoin_overflow_mode
al crear unJoin
tabla de tipo. Amos pájaro - Se agregó el
joinGet
función que le permite utilizar unJoin
tipo de tabla como un diccionario. Amos pájaro - Se agregó el
partition_key
,sorting_key
,primary_key
, ysampling_key
columnas a lasystem.tables
tabla con el fin de proporcionar información sobre las claves de la tabla. #3609 - Se agregó el
is_in_partition_key
,is_in_sorting_key
,is_in_primary_key
, yis_in_sampling_key
columnas a lasystem.columns
tabla. #3609 - Se agregó el
min_time
ymax_time
columnas a lasystem.parts
tabla. Estas columnas se rellenan cuando la clave de partición es una expresión que consiste enDateTime
columna. Emmanuel Donin de Rosière
Corrección de errores:
- Correcciones y mejoras de rendimiento para el
LowCardinality
tipo de datos.GROUP BY
utilizarLowCardinality(Nullable(...))
. Obtener los valores deextremes
. Procesamiento de funciones de orden superior.LEFT ARRAY JOIN
. DistribuidoGROUP BY
. Funciones que devuelvenArray
. Ejecución deORDER BY
. Escribir aDistributed
tablas (nicelulu). Compatibilidad con versiones anteriores paraINSERT
consultas de clientes antiguos que implementan elNative
protocolo. Soporte paraLowCardinality
paraJOIN
. Rendimiento mejorado cuando se trabaja en un solo flujo. #3823 #3803 #3799 #3769 #3744 #3681 #3651 #3649 #3641 #3632 #3568 #3523 #3518 - Corregido cómo el
select_sequential_consistency
opción funciona. Anteriormente, cuando se habilitaba esta configuración, a veces se devolvía un resultado incompleto después de comenzar a escribir en una nueva partición. #2863 - Las bases de datos se especifican correctamente al ejecutar DDL
ON CLUSTER
consultas yALTER UPDATE/DELETE
. #3772 #3460 - Las bases de datos se especifican correctamente para las subconsultas dentro de una VIEW. #3521
- Se ha corregido un error en
PREWHERE
conFINAL
paraVersionedCollapsingMergeTree
. 7167bfd7 - Ahora puedes usar
KILL QUERY
para cancelar consultas que aún no se han iniciado porque están esperando a que se bloquee la tabla. #3517 - Se corrigieron los cálculos de fecha y hora si los relojes se movían hacia atrás a la medianoche (esto sucede en Irán, y sucedió en Moscú de 1981 a 1983). Anteriormente, esto llevaba a que la hora se restableciera un día antes de lo necesario, y también causaba un formato incorrecto de la fecha y la hora en formato de texto. #3819
- Se corrigieron errores en algunos casos de
VIEW
y subconsultas que omiten la base de datos. Invierno Zhang - Se corrigió una condición de carrera al leer simultáneamente desde un
MATERIALIZED VIEW
y eliminar unMATERIALIZED VIEW
debido a no bloquear el interiorMATERIALIZED VIEW
. #3404 #3694 - Corregido el error
Lock handler cannot be nullptr.
#3689 - Procesamiento de consultas fijo cuando el
compile_expressions
la opción está habilitada (está habilitada por defecto). Expresiones constantes no deterministas como elnow
función ya no están desplegados. #3457 - Se corrigió un bloqueo al especificar un argumento de escala no constante en
toDecimal32/64/128
función. - Se corrigió un error al intentar insertar una matriz con
NULL
elementos en elValues
formato en una columna de tipoArray
sinNullable
(siinput_format_values_interpret_expressions
= 1). #3487 #3503 - Se corrigió el registro continuo de errores en
DDLWorker
si ZooKeeper no está disponible. 8f50c620 - Se corrigió el tipo de retorno para
quantile*
funciones deDate
yDateTime
de argumentos. #3580 - Se corrigió el
WITH
cláusula si especifica un alias simple sin expresiones. #3570 - Se corrigió el procesamiento de consultas con subconsultas con nombre y nombres de columna calificados cuando
enable_optimize_predicate_expression
está habilitado. Invierno Zhang - Corregido el error
Attempt to attach to nullptr thread group
cuando se trabaja con vistas materializadas. Marek Vavruša - Se corrigió un bloqueo al pasar ciertos argumentos incorrectos a la
arrayReverse
función. 73e3a7b6 - Se corrigió el desbordamiento del búfer en el
extractURLParameter
función. Rendimiento mejorado. Se agregó el procesamiento correcto de cadenas que contienen cero bytes. Método de codificación de datos: - Desbordamiento de búfer fijo en el
lowerUTF8
yupperUTF8
función. Se eliminó la capacidad de ejecutar estas funciones sobreFixedString
argumentos de tipo. #3662 - Se corrigió una rara condición de carrera al eliminar
MergeTree
tabla. #3680 - Se corrigió una condición de carrera al leer desde
Buffer
tablas y realizar simultáneamenteALTER
oDROP
en las tablas de destino. #3719 - Se corrigió una segfault si el
max_temporary_non_const_columns
se excedió el límite. #3788
Mejora:
- El servidor no escribe los archivos de configuración procesados
/etc/clickhouse-server/
directorio. En su lugar, los guarda en elpreprocessed_configs
directorio dentropath
. Esto significa que el/etc/clickhouse-server/
directorio no tiene acceso de escritura para elclickhouse
usuario, lo que mejora la seguridad. #2443 - El
min_merge_bytes_to_use_direct_io
La opción está establecida en 10 GiB de forma predeterminada. Una combinación que forma partes grandes de tablas de la familia MergeTree se realizará enO_DIRECT
modo, que evita el desalojo excesivo de la caché de la página. #3504 - Se inicia el servidor acelerado cuando hay un gran número de tablas. #3398
- Se agregó un grupo de conexiones y HTTP
Keep-Alive
para conexiones entre réplicas. #3594 - Si la sintaxis de la consulta no es válida,
400 Bad Request
el código se devuelve en elHTTP
interfaz (500 se devolvió anteriormente). 31bc680a - El
join_default_strictness
opción se establece enALL
por defecto para la compatibilidad. 120e2cbe - Se eliminó el registro a
stderr
de lare2
biblioteca para expresiones regulares no válidas o complejas. #3723 - Añadido para el
Kafka
motor de tabla: comprueba si hay suscripciones antes de comenzar a leer de Kafka; la configuración kafka_max_block_size para la tabla. Marek Vavruša - El
cityHash64
,farmHash64
,metroHash64
,sipHash64
,halfMD5
,murmurHash2_32
,murmurHash2_64
,murmurHash3_32
, ymurmurHash3_64
funciones ahora funcionan para cualquier número de argumentos y para argumentos en forma de tuplas. #3451 #3519 - El
arrayReverse
función ahora funciona con cualquier tipo de matrices. 73e3a7b6 - Se ha añadido un parámetro opcional: el tamaño de la ranura
timeSlots
función. Kirill Shvakov - Para
FULL
yRIGHT JOIN
, elmax_block_size
configuración se utiliza para un flujo de datos no unidos de la tabla de la derecha. Amos pájaro - Se agregó el
--secure
parámetro de línea de comandos enclickhouse-benchmark
yclickhouse-performance-test
para habilitar TLS. #3688 #3690 - Conversión de tipo cuando la estructura de un
Buffer
type table no coincide con la estructura de la tabla de destino. Vitaly Baranov - Se agregó el
tcp_keep_alive_timeout
opción para habilitar los paquetes keep-alive después de la inactividad durante el intervalo de tiempo especificado. #3441 - Eliminado cotización innecesaria de valores para la clave de partición en el
system.parts
tabla si consiste en una sola columna. #3652 - La función de módulo funciona para
Date
yDateTime
tipos de datos. #3385 - Sinónimos añadidos para el
POWER
,LN
,LCASE
,UCASE
,REPLACE
,LOCATE
,SUBSTR
, yMID
función. #3774 #3763 Algunos nombres de funciones no distinguen entre mayúsculas y minúsculas por su compatibilidad con el estándar SQL. Azúcar sintáctico añadidoSUBSTRING(expr FROM start FOR length)
por compatibilidad con SQL. #3804 - Se agregó la capacidad de
mlock
páginas de memoria correspondientes aclickhouse-server
código ejecutable para evitar que se vea obligado a salir de la memoria. Esta función está deshabilitada de forma predeterminada. #3553 - Rendimiento mejorado al leer desde
O_DIRECT
(con elmin_bytes_to_use_direct_io
opción activada). #3405 - Rendimiento mejorado del
dictGet...OrDefault
función para un argumento de clave constante y un argumento predeterminado no constante. Amos pájaro - El
firstSignificantSubdomain
función ahora procesa los dominiosgov
,mil
, yedu
. Igor Hatarist Rendimiento mejorado. #3628 - Posibilidad de especificar variables de entorno personalizadas para iniciar
clickhouse-server
utilizando elSYS-V init.d
secuencia de comandos definiendoCLICKHOUSE_PROGRAM_ENV
en/etc/default/clickhouse
. Pavlo Bashynskyi - Corrija el código de retorno para el script init de clickhouse-server. #3516
- El
system.metrics
ahora tiene elVersionInteger
métrica, ysystem.build_options
tiene la línea añadidaVERSION_INTEGER
, que contiene la forma numérica de la versión de ClickHouse, como18016000
. #3644 - Eliminado la capacidad de comparar el
Date
escriba con un número para evitar posibles errores comodate = 2018-12-17
, donde las comillas alrededor de la fecha se omiten por error. #3687 - Se corrigió el comportamiento de las funciones con estado como
rowNumberInAllBlocks
. Anteriormente generaron un resultado que era un número mayor debido al inicio durante el análisis de consultas. Amos pájaro - Si el
force_restore_data
no se puede eliminar, se muestra un mensaje de error. Amos pájaro
Mejoras de construcción:
- Actualizado el
jemalloc
biblioteca, que corrige una posible pérdida de memoria. Amos pájaro - Perfilado con
jemalloc
está habilitado de forma predeterminada para depurar compilaciones. 2cc82f5c - Se agregó la capacidad de ejecutar pruebas de integración cuando solo
Docker
está instalado en el sistema. #3650 - Se agregó la prueba de expresión fuzz en consultas SELECT. #3442
- Se agregó una prueba de esfuerzo para confirmaciones, que realiza pruebas funcionales en paralelo y en orden aleatorio para detectar más condiciones de carrera. #3438
- Se mejoró el método para iniciar clickhouse-server en una imagen de Docker. Método de codificación de datos:
- Para una imagen de Docker, se agregó soporte para inicializar bases de datos utilizando
/docker-entrypoint-initdb.d
directorio. Konstantin Lebedev - Correcciones para construye en ARM. #3709
Cambios incompatibles hacia atrás:
- Eliminado la capacidad de comparar el
Date
escriba con un número. En lugar detoDate('2018-12-18') = 17883
, debe usar la conversión de tipo explícita= toDate(17883)
#3687
Lanzamiento de ClickHouse 18.14
¿Qué puedes encontrar en Neodigit
Corrección de errores:
- Se corrigió un error que provocaba problemas con la actualización de diccionarios con el origen ODBC. #3825, #3829
- Las bases de datos se especifican correctamente al ejecutar DDL
ON CLUSTER
consulta. #3460 - Se corrigió una segfault si el
max_temporary_non_const_columns
se excedió el límite. #3788
Mejoras de construcción:
- Correcciones para construye en ARM.
Somos una empresa especializada en el desarrollo de soluciones tecnológicas
Corrección de errores:
- Corregido el error en
dictGet...
función para diccionarios de tiporange
, si uno de los argumentos es constante y otro no lo es. #3751 - Se corrigió el error que causaba mensajes
netlink: '...': attribute type 1 has an invalid length
para imprimirse en el registro del kernel de Linux, eso estaba sucediendo solo en versiones suficientemente frescas del kernel de Linux. #3749 - Segfault fijo en la función
empty
para argumento deFixedString
tipo. Método de codificación de datos: - Se corrigió la asignación excesiva de memoria al usar un gran valor de
max_query_size
configuración (un fragmento de memoria demax_query_size
bytes fue preasignado a la vez). #3720
Crear cambios:
- Compilación fija con las bibliotecas LLVM / Clang de la versión 7 de los paquetes del sistema operativo (estas bibliotecas se utilizan para la compilación de consultas en tiempo de ejecución). #3582
Somos una empresa especializada en el desarrollo de soluciones tecnológicas
Corrección de errores:
- Se corrigieron casos en los que el proceso de puente ODBC no terminaba con el proceso del servidor principal. #3642
- Inserción síncrona fija en el
Distributed
tabla con una lista de columnas que difiere de la lista de columnas de la tabla remota. #3673 - Se corrigió una rara condición de carrera que podía provocar un bloqueo al soltar una tabla MergeTree. #3643
- Se corrigió un punto muerto de consulta en caso de que la creación del hilo de consulta fallara con el
Resource temporarily unavailable
error. #3643 - Análisis fijo del
ENGINE
cláusula cuando elCREATE AS table
se utilizó la sintaxis y elENGINE
cláusula se especificó antes de laAS table
(el error resultó en ignorar el motor especificado). #3692
Somos una empresa especializada en el desarrollo de soluciones tecnológicas
Corrección de errores:
- El tamaño del fragmento de memoria se sobreestimó al deserializar la columna de tipo
Array(String)
que conduce a “Memory limit exceeded” error. El problema apareció en la versión 18.12.13. #3589
¿Qué puedes encontrar en Neodigit
Corrección de errores:
- Fijo
ON CLUSTER
consultas cuando el clúster está configurado como seguro (indicador<secure>
). #3599
Crear cambios:
- Problemas solucionados (llvm-7 del sistema, macos) #3582
Somos una empresa especializada en el desarrollo de soluciones tecnológicas
Corrección de errores:
- Se corrigió el
Block structure mismatch in MergingSorted stream
error. #3162 - Fijo
ON CLUSTER
consultas en caso de que se hayan activado las conexiones seguras en la configuración del clúster (el<secure>
bandera). #3465 - Se corrigió un error en las consultas que utilizaban
SAMPLE
,PREWHERE
y columnas de alias. #3543 - Se corrigió un raro
unknown compression method
error cuando elmin_bytes_to_use_direct_io
se habilitó la configuración. 3544
Mejoras de rendimiento:
- Regresión de rendimiento fija de consultas con
GROUP BY
de columnas de tipo UInt16 o Date cuando se ejecuta en procesadores AMD EPYC. Igor Lapko - Regresión de rendimiento fija de las consultas que procesan cadenas largas. #3530
Mejoras de construcción:
Somos una empresa especializada en el desarrollo de soluciones tecnológicas
Corrección de errores:
- Se corrigió un bloqueo al unir dos subconsultas sin nombre. #3505
- Se corrigió la generación de consultas incorrectas (con un vacío
WHERE
cláusula) al consultar bases de datos externas. hotid - Se corrigió usando un valor de tiempo de espera incorrecto en los diccionarios ODBC. Marek Vavruša
Somos una empresa especializada en el desarrollo de soluciones tecnológicas
Corrección de errores:
- Corregido el error
Block structure mismatch in UNION stream: different number of columns
en consultas LIMIT. #2156 - Se corrigieron errores al fusionar datos en tablas que contienen matrices dentro de estructuras anidadas. #3397
- Se corrigieron los resultados de la consulta incorrecta si el
merge_tree_uniform_read_distribution
la configuración está deshabilitada (está habilitada por defecto). #3429 - Se corrigió un error en las inserciones en una tabla distribuida en formato nativo. #3411
Somos una empresa especializada en el desarrollo de soluciones tecnológicas
- El
compile_expressions
configuración (compilación JIT de expresiones) está deshabilitada de forma predeterminada. #3410 - El
enable_optimize_predicate_expression
configuración está deshabilitada de forma predeterminada.
¿Qué puedes encontrar en Neodigit
Novedad:
- El
WITH CUBE
modificador paraGROUP BY
(la sintaxis alternativaGROUP BY CUBE(...)
también está disponible). #3172 - Se agregó el
formatDateTime
función. Alexandr Krasheninnikov - Se agregó el
JDBC
motor de mesa yjdbc
función de tabla (requiere la instalación de clickhouse-jdbc-bridge). Alexandr Krasheninnikov - Funciones añadidas para trabajar con el número de semana ISO:
toISOWeek
,toISOYear
,toStartOfISOYear
, ytoDayOfYear
. #3146 - Ahora puedes usar
Nullable
de columnas paraMySQL
yODBC
tabla. #3362 - Las estructuras de datos anidadas se pueden leer como objetos anidados en
JSONEachRow
formato. Se agregó elinput_format_import_nested_json
configuración. Veloman Yunkan - El procesamiento paralelo está disponible para muchos
MATERIALIZED VIEW
s al insertar datos. Ver elparallel_view_processing
configuración. Marek Vavruša - Se agregó el
SYSTEM FLUSH LOGS
consulta (vacíos de registro forzados a tablas del sistema comoquery_log
) #3321 - Ahora puedes usar predefinidos
database
ytable
macros al declararReplicated
tabla. #3251 - Se agregó la capacidad de leer
Decimal
valores de tipo en notación de ingeniería (indicando potencias de diez). #3153
Experimental Características:
- Optimización de la cláusula GROUP BY para
LowCardinality data types.
#3138 - Cálculo optimizado de expresiones para
LowCardinality data types.
#3200
Mejora:
- Consumo de memoria significativamente reducido para consultas con
ORDER BY
yLIMIT
. Ver elmax_bytes_before_remerge_sort
configuración. #3205 - En ausencia de
JOIN
(LEFT
,INNER
, …),INNER JOIN
se supone. #3147 - Los asteriscos calificados funcionan correctamente en consultas con
JOIN
. Invierno Zhang - El
ODBC
El motor de tabla elige correctamente el método para citar identificadores en el dialecto SQL de una base de datos remota. Alexandr Krasheninnikov - El
compile_expressions
configuración (compilación JIT de expresiones) está habilitada de forma predeterminada. - Comportamiento fijo para DROP DATABASE / TABLA SI EXISTE simultáneamente y CREATE DATABASE / TABLA SI NO EXISTE. Anteriormente, un
CREATE DATABASE ... IF NOT EXISTS
consulta podría devolver el mensaje de error “File … already exists” y elCREATE TABLE ... IF NOT EXISTS
yDROP TABLE IF EXISTS
las consultas podrían volverTable ... is creating or attaching right now
. #3101 - Las expresiones LIKE e IN con una mitad derecha constante se pasan al servidor remoto al realizar consultas desde tablas MySQL u ODBC. #3182
- Las comparaciones con expresiones constantes en una cláusula WHERE se pasan al servidor remoto al realizar consultas desde tablas MySQL y ODBC. Anteriormente, solo se pasaban las comparaciones con constantes. #3182
- Cálculo correcto del ancho de fila en el terminal para
Pretty
formatos, incluyendo cadenas con jeroglíficos. Amos pájaro. ON CLUSTER
se puede especificar paraALTER UPDATE
consulta.- Rendimiento mejorado para leer datos en
JSONEachRow
formato. #3332 - Sinónimos añadidos para el
LENGTH
yCHARACTER_LENGTH
funciones de compatibilidad. ElCONCAT
la función ya no distingue entre mayúsculas y minúsculas. #3306 - Se agregó el
TIMESTAMP
sinónimo de laDateTime
tipo. #3390 - Siempre hay espacio reservado para query_id en los registros del servidor, incluso si la línea de registro no está relacionada con una consulta. Esto hace que sea más fácil analizar los registros de texto del servidor con herramientas de terceros.
- El consumo de memoria de una consulta se registra cuando supera el siguiente nivel de un número entero de gigabytes. #3205
- Se agregó el modo de compatibilidad para el caso cuando la biblioteca cliente que usa el protocolo nativo envía menos columnas por error de lo que el servidor espera para la consulta INSERT. Este escenario fue posible cuando se utiliza la biblioteca clickhouse-cpp. Anteriormente, este escenario hacía que el servidor se bloqueara. #3171
- En una expresión WHERE definida por el usuario en
clickhouse-copier
, ahora puede usar unpartition_key
alias (para filtrado adicional por partición de tabla de origen). Esto es útil si el esquema de partición cambia durante la copia, pero solo cambia ligeramente. #3166 - El flujo de trabajo del
Kafka
el motor se ha movido a un grupo de subprocesos en segundo plano para reducir automáticamente la velocidad de lectura de datos a altas cargas. Marek Vavruša. - Soporte para lectura
Tuple
yNested
de estructuras comostruct
en elCap'n'Proto format
. Marek Vavruša - La lista de dominios de nivel superior
firstSignificantSubdomain
función ahora incluye el dominiobiz
. disminución - En la configuración de diccionarios externos,
null_value
se interpreta como el valor del tipo de datos predeterminado. #3330 - Soporte para el
intDiv
yintDivOrZero
funciones paraDecimal
. b48402e8 - Soporte para el
Date
,DateTime
,UUID
, yDecimal
tipos como una clave para elsumMap
función de agregado. #3281 - Soporte para el
Decimal
tipo de datos en diccionarios externos. #3324 - Soporte para el
Decimal
tipo de datos enSummingMergeTree
tabla. #3348 - Añadido especializaciones para
UUID
enif
. #3366 - Reducido el número de
open
yclose
llamadas al sistema al leer desde unMergeTree table
. #3283 - A
TRUNCATE TABLE
consulta se puede ejecutar en cualquier réplica (la consulta se pasa a la réplica líder). Kirill Shvakov
Corrección de errores:
- Se corrigió un problema con
Dictionary
tablas pararange_hashed
diccionario. Este error se produjo en la versión 18.12.17. #1702 - Se corrigió un error al cargar
range_hashed
diccionarios (el mensajeUnsupported type Nullable (...)
). Este error se produjo en la versión 18.12.17. #3362 - Se corrigieron errores en el
pointInPolygon
función debido a la acumulación de cálculos inexactos para polígonos con un gran número de vértices ubicados cerca uno del otro. #3331 #3341 - Si después de fusionar partes de datos, la suma de comprobación de la parte resultante difiere del resultado de la misma fusión en otra réplica, el resultado de la fusión se elimina y la parte de datos se descarga de la otra réplica (este es el comportamiento correcto). Pero después de descargar la parte de datos, no se pudo agregar al conjunto de trabajo debido a un error de que la parte ya existe (porque la parte de datos se eliminó con cierto retraso después de la fusión). Esto llevó a intentos cíclicos de descargar los mismos datos. #3194
- Se corrigió el cálculo incorrecto del consumo total de memoria por consultas (debido a un cálculo incorrecto, el
max_memory_usage_for_all_queries
la configuración funcionó incorrectamente y elMemoryTracking
métrica tenía un valor incorrecto). Este error se produjo en la versión 18.12.13. Marek Vavruša - Se corrigió la funcionalidad de
CREATE TABLE ... ON CLUSTER ... AS SELECT ...
Este error se produjo en la versión 18.12.13. #3247 - Se corrigió la preparación innecesaria de estructuras de datos para
JOIN
s en el servidor que inicia la consulta siJOIN
sólo se realiza en servidores remotos. #3340 - Se corrigieron errores en el
Kafka
engine: interbloqueos después de las excepciones al comenzar a leer datos, y se bloquea al finalizar Marek Vavruša. - Para
Kafka
mesas, el opcionalschema
no se aprobó el parámetro (el esquema delCap'n'Proto
formato). Vojtech Splichal - Si el conjunto de servidores ZooKeeper tiene servidores que aceptan la conexión pero luego la cierran inmediatamente en lugar de responder al protocolo de enlace, ClickHouse elige conectar otro servidor. Anteriormente, esto produjo el error
Cannot read all data. Bytes read: 0. Bytes expected: 4.
y el servidor no pudo iniciarse. Nombre de la red inalámbrica (SSID): - Si el conjunto de servidores ZooKeeper contiene servidores para los que la consulta DNS devuelve un error, estos servidores se ignoran. 17b8e209
- Conversión de tipo fijo entre
Date
yDateTime
al insertar datos en elVALUES
formato (siinput_format_values_interpret_expressions = 1
). Anteriormente, la conversión se realizaba entre el valor numérico del número de días en tiempo de Época Unix y la marca de tiempo Unix, lo que dio lugar a resultados inesperados. #3229 - Conversión de tipo corregida entre
Decimal
y números enteros. #3211 - Se corrigieron errores en el
enable_optimize_predicate_expression
configuración. Invierno Zhang - Se ha corregido un error de análisis en formato CSV con números de coma flotante si se utiliza un separador CSV no predeterminado, como por ejemplo
;
#3155 - Se corrigió el
arrayCumSumNonNegative
(no acumula valores negativos si el acumulador es menor que cero). Aleksey Studnev - Corregido cómo
Merge
las tablas funcionan encima deDistributed
cuando se utilizaPREWHERE
. #3165 - Corrección de errores en el
ALTER UPDATE
consulta. - Se corrigieron errores en el
odbc
función de tabla que apareció en la versión 18.12. #3197 - Se corrigió el funcionamiento de las funciones agregadas con
StateArray
combinadores. #3188 - Se corrigió un bloqueo al dividir un
Decimal
valor por cero. Método de codificación de datos: - Salida fija de tipos para operaciones usando
Decimal
y argumentos enteros. #3224 - Corregido el segfault durante
GROUP BY
enDecimal128
. Método de codificación de datos: - El
log_query_threads
configuración (información de registro sobre cada subproceso de ejecución de la consulta) ahora sólo tiene efecto silog_queries
opción (información de registro sobre consultas) se establece en 1. Desde ellog_query_threads
la opción está habilitada de forma predeterminada, la información sobre los subprocesos se registró previamente incluso si el registro de consultas estaba deshabilitado. #3241 - Se corrigió un error en la operación distribuida de la función de agregado de cuantiles (el mensaje de error
Not found column quantile...
). Método de codificación de datos: - Se corrigió el problema de compatibilidad al trabajar en un clúster de servidores de la versión 18.12.17 y servidores anteriores al mismo tiempo. Para consultas distribuidas con claves GROUP BY de longitud fija y no fija, si había una gran cantidad de datos para agregar, los datos devueltos no siempre se agregaron completamente (dos filas diferentes contenían las mismas claves de agregación). #3254
- Manejo fijo de sustituciones en
clickhouse-performance-test
, si la consulta contiene sólo una parte de las sustituciones declaradas en la prueba. #3263 - Se corrigió un error al usar
FINAL
conPREWHERE
. #3298 - Se corrigió un error al usar
PREWHERE
sobre las columnas que se agregaron duranteALTER
. #3298 - Se agregó un cheque por la ausencia de
arrayJoin
paraDEFAULT
yMATERIALIZED
expresiones. Previamente,arrayJoin
llevado a un error al insertar datos. #3337 - Se agregó un cheque por la ausencia de
arrayJoin
en unaPREWHERE
clausula. Anteriormente, esto llevó a mensajes comoSize ... doesn't match
oUnknown compression method
al ejecutar consultas. #3357 - Se corrigió el segfault que podía ocurrir en casos raros después de la optimización que reemplazaba las cadenas AND de las evaluaciones de igualdad con la expresión IN correspondiente. Bienvenido a WordPress.
- Correcciones menores a
clickhouse-benchmark
: anteriormente, la información del cliente no se enviaba al servidor; ahora el número de consultas ejecutadas se calcula con mayor precisión al apagar y para limitar el número de iteraciones. #3351 #3352
Cambios incompatibles hacia atrás:
- Eliminado el
allow_experimental_decimal_type
opcion. ElDecimal
tipo de datos está disponible para su uso predeterminado. #3329
Lanzamiento de ClickHouse 18.12
Somos una empresa especializada en el desarrollo de soluciones tecnológicas
Novedad:
invalidate_query
(la capacidad de especificar una consulta para comprobar si es necesario actualizar un diccionario externo)clickhouse
fuente. #3126- Se agregó la capacidad de usar
UInt*
,Int*
, yDateTime
tipos de datos (junto con elDate
tipo) como unrange_hashed
clave de diccionario externa que define los límites de los rangos. AhoraNULL
se puede utilizar para designar un rango abierto. Vasily Nemkov - El
Decimal
tipo ahora soportavar*
ystddev*
funciones agregadas. #3129 - El
Decimal
tipo ahora soporta funciones matemáticas (exp
,sin
y así sucesivamente.) #3129 - El
system.part_log
ahora tiene elpartition_id
columna. #3089
Corrección de errores:
Merge
ahora funciona correctamente enDistributed
tabla. Invierno Zhang- Incompatibilidad fija (dependencia innecesaria del
glibc
versión) que hizo imposible ejecutar ClickHouse enUbuntu Precise
y versiones anteriores. La incompatibilidad surgió en la versión 18.12.13. #3130 - Se corrigieron errores en el
enable_optimize_predicate_expression
configuración. Invierno Zhang - Se corrigió un problema menor con compatibilidad con versiones anteriores que aparecía al trabajar con un clúster de réplicas en versiones anteriores a 18.12.13 y al mismo tiempo crear una nueva réplica de una tabla en un servidor con una versión más reciente (que se muestra en el mensaje
Can not clone replica, because the ... updated to new ClickHouse version
, lo cual es lógico, pero no debería suceder). #3122
Cambios incompatibles hacia atrás:
- El
enable_optimize_predicate_expression
opción está habilitada por defecto (que es bastante optimista). Si se producen errores de análisis de consultas relacionados con la búsqueda de los nombres de columna, establezcaenable_optimize_predicate_expression
a 0. Invierno Zhang
Somos una empresa especializada en el desarrollo de soluciones tecnológicas
Novedad:
- Añadido soporte para
ALTER UPDATE
consulta. #3035 - Se agregó el
allow_ddl
opción, que restringe el acceso del usuario a consultas DDL. #3104 - Se agregó el
min_merge_bytes_to_use_direct_io
opción paraMergeTree
los motores, que le permite establecer un umbral para el tamaño total de la fusión (cuando está por encima del umbral, los archivos de partes de datos se manejarán usando O_DIRECT). #3117 - El
system.merges
tabla del sistema ahora contiene elpartition_id
columna. #3099
Mejora
- Si una parte de datos permanece sin cambios durante la mutación, no se descarga mediante réplicas. #3103
- Autocompletar está disponible para nombres de configuraciones cuando se trabaja con
clickhouse-client
. #3106
Corrección de errores:
- Se agregó una verificación para los tamaños de las matrices que son elementos de
Nested
escriba campos al insertar. #3118 - Se corrigió un error al actualizar los diccionarios externos con el
ODBC
fuente yhashed
almacenamiento. Este error se produjo en la versión 18.12.13. - Se corrigió un bloqueo al crear una tabla temporal a partir de una consulta con un
IN
condición. Invierno Zhang - Se corrigió un error en las funciones agregadas para matrices que pueden tener
NULL
elemento. Invierno Zhang
Somos una empresa especializada en el desarrollo de soluciones tecnológicas
Novedad:
- Se agregó el
DECIMAL(digits, scale)
tipo de datos (Decimal32(scale)
,Decimal64(scale)
,Decimal128(scale)
). Para habilitarlo, use la configuraciónallow_experimental_decimal_type
. #2846 #2970 #3008 #3047 - Nuevo
WITH ROLLUP
modificador paraGROUP BY
(sintaxis alternativa:GROUP BY ROLLUP(...)
). #2948 - En consultas con JOIN, el carácter estrella se expande a una lista de columnas en todas las tablas, de acuerdo con el estándar SQL. Puede restaurar el comportamiento anterior configurando
asterisk_left_columns_only
a 1 en el nivel de configuración del usuario. Invierno Zhang - Se agregó soporte para JOIN con funciones de tabla. Invierno Zhang
- Autocompletar presionando Tab en clickhouse-cliente. Sergey Shcherbin
- Ctrl + C en clickhouse-client borra una consulta que se ingresó. #2877
- Se agregó el
join_default_strictness
ajuste (valores:"
,'any'
,'all'
). Esto le permite no especificarANY
oALL
paraJOIN
. #2982 - Cada línea del registro del servidor relacionada con el procesamiento de consultas muestra el ID de consulta. #2482
- Ahora puede obtener registros de ejecución de consultas en clickhouse-client (use el
send_logs_level
configuración). Con el procesamiento de consultas distribuidas, los registros se conectan en cascada desde todos los servidores. #2482 - El
system.query_log
ysystem.processes
(SHOW PROCESSLIST
) las tablas ahora tienen información sobre todas las configuraciones modificadas al ejecutar una consulta (la estructura anidadaSettings
datos). Se agregó ellog_query_settings
configuración. #2482 - El
system.query_log
ysystem.processes
las tablas ahora muestran información sobre el número de subprocesos que participan en la ejecución de la consulta (consultethread_numbers
columna). #2482 - Añadir
ProfileEvents
contadores que miden el tiempo dedicado a leer y escribir a través de la red y a leer y escribir en el disco, el número de errores de red y el tiempo dedicado a esperar cuando el ancho de banda de la red es limitado. #2482 - Añadir
ProfileEvents
contadores que contienen las métricas del sistema de rusage (puede usarlas para obtener información sobre el uso de CPU en el espacio de usuario y el kernel, errores de página y modificadores de contexto), así como métricas de taskstats (utilícelas para obtener información sobre el tiempo de espera de E / S, el tiempo de espera de CPU y la cantidad de datos leídos #2482 - El
ProfileEvents
los contadores se aplican globalmente y para cada consulta, así como para cada subproceso de ejecución de consulta, lo que le permite perfilar el consumo de recursos por consulta en detalle. #2482 - Se agregó el
system.query_thread_log
tabla, que contiene información sobre cada subproceso de ejecución de consultas. Se agregó ellog_query_threads
configuración. #2482 - El
system.metrics
ysystem.events
las tablas ahora tienen documentación incorporada. #3016 - Se agregó el
arrayEnumerateDense
función. Amos pájaro - Se agregó el
arrayCumSumNonNegative
yarrayDifference
función. Aleksey Studnev - Se agregó el
retention
función de agregado. Sundy Li - Ahora puede agregar (fusionar) estados de funciones agregadas utilizando el operador más y multiplicar los estados de funciones agregadas por una constante no negativa. #3062 #3034
- Las tablas de la familia MergeTree ahora tienen la columna virtual
_partition_id
. #3089
Experimental Características:
- Se agregó el
LowCardinality(T)
tipo de datos. Este tipo de datos crea automáticamente un diccionario local de valores y permite el procesamiento de datos sin desempaquetar el diccionario. #2830 - Se agregó un caché de funciones compiladas por JIT y un contador para el número de usos antes de compilar. Para compilar expresiones JIT, habilite la
compile_expressions
configuración. #2990 #3077
Mejora:
- Se ha solucionado el problema con la acumulación ilimitada del registro de replicación cuando hay réplicas abandonadas. Se agregó un modo de recuperación efectivo para réplicas con un largo retraso.
- Rendimiento mejorado de
GROUP BY
con múltiples campos de agregación cuando uno de ellos es cadena y los otros son de longitud fija. - Rendimiento mejorado al usar
PREWHERE
y con transferencia implícita de expresiones enPREWHERE
. - Rendimiento de análisis mejorado para formatos de texto (
CSV
,TSV
). Amos pájaro #2980 - Mejora del rendimiento de las cadenas de lectura y matrices en formatos binarios. Amos pájaro
- Mayor rendimiento y menor consumo de memoria para consultas a
system.tables
ysystem.columns
cuando hay un gran número de tablas en un solo servidor. #2953 - Se corrigió un problema de rendimiento en el caso de una gran secuencia de consultas que resultaban en un error (el
_dl_addr
la función es visible enperf top
, pero el servidor no está usando mucha CPU). #2938 - Las condiciones se lanzan a la vista (cuando
enable_optimize_predicate_expression
está habilitado). Invierno Zhang - Mejoras en la funcionalidad del
UUID
tipo de datos. #3074 #2985 - El
UUID
tipo de datos es compatible con los diccionarios de The-Alchemist. #2822 - El
visitParamExtractRaw
funciona correctamente con estructuras anidadas. Invierno Zhang - Cuando el
input_format_skip_unknown_fields
la configuración está habilitada, los campos de objetoJSONEachRow
se omiten correctamente. BlahGeek - Para un
CASE
expresión con condiciones, ahora puede omitirELSE
, que es equivalente aELSE NULL
. #2920 - El tiempo de espera de la operación ahora se puede configurar cuando se trabaja con ZooKeeper. urykhy
- Puede especificar un desplazamiento para
LIMIT n, m
comoLIMIT n OFFSET m
. #2840 - Puede usar el
SELECT TOP n
sintaxis como una alternativa paraLIMIT
. #2840 - Aumentó el tamaño de la cola para escribir en las tablas del sistema, por lo que
SystemLog parameter queue is full
el error no ocurre tan a menudo. - El
windowFunnel
La función de agregado ahora admite eventos que cumplen múltiples condiciones. Amos pájaro - Las columnas duplicadas se pueden usar en un
USING
cláusula paraJOIN
. #3006 Pretty
los formatos ahora tienen un límite en la alineación de columnas por ancho. Utilice eloutput_format_pretty_max_column_pad_width
configuración. Si un valor es más amplio, aún se mostrará en su totalidad, pero las otras celdas de la tabla no serán demasiado anchas. #3003- El
odbc
función de tabla ahora le permite especificar el nombre de la base de datos / esquema. Amos pájaro - Se agregó la capacidad de usar un nombre de usuario especificado en el
clickhouse-client
archivo de configuración. Vladimir Kozbin - El
ZooKeeperExceptions
se ha dividido en tres contadores:ZooKeeperUserExceptions
,ZooKeeperHardwareExceptions
, yZooKeeperOtherExceptions
. ALTER DELETE
las consultas funcionan para vistas materializadas.- Se agregó aleatorización al ejecutar el hilo de limpieza periódicamente para
ReplicatedMergeTree
para evitar picos de carga periódicos cuando hay un gran número deReplicatedMergeTree
tabla. - Soporte para
ATTACH TABLE ... ON CLUSTER
consulta. #3025
Corrección de errores:
- Se corrigió un problema con
Dictionary
tablas (lanza elSize of offsets doesn't match size of column
oUnknown compression method
salvedad). Este error apareció en la versión 18.10.3. #2913 - Se ha corregido un error al fusionar
CollapsingMergeTree
tablas si una de las partes de datos está vacía (estas partes se forman durante la fusión oALTER DELETE
si se han eliminado todos los datos), yvertical
se utilizó el algoritmo para la fusión. #3049 - Se corrigió una condición de carrera durante
DROP
oTRUNCATE
paraMemory
tablas con una simultáneaSELECT
, lo que podría conducir a bloqueos del servidor. Este error apareció en la versión 1.1.54388. #3038 - Se corrigió la posibilidad de pérdida de datos al insertar en
Replicated
tablas si elSession is expired
se devuelve un error (la pérdida de datos puede ser detectada por elReplicatedDataLoss
métrica). Este error se produjo en la versión 1.1.54378. #2939 #2949 #2964 - Se corrigió una falla seg durante
JOIN ... ON
. #3000 - Se corrigió el error de búsqueda de nombres de columna cuando el
WHERE
la expresión consiste completamente en un nombre de columna completo, comoWHERE table.column
. #2994 - Se corrigió el “Not found column” error que se produjo al ejecutar consultas distribuidas si se solicita una sola columna que consta de una expresión IN con una subconsulta desde un servidor remoto. #3087
- Se corrigió el
Block structure mismatch in UNION stream: different number of columns
error que se produjo para las consultas distribuidas si uno de los fragmentos es local y el otro no, y la optimización del movimiento aPREWHERE
se activa. #2226 #3037 #3055 #3065 #3073 #3090 #3093 - Se corrigió el
pointInPolygon
función para ciertos casos de polígonos no convexos. #2910 - Se corrigió el resultado incorrecto al comparar
nan
con enteros. #3024 - Se corrigió un error en el
zlib-ng
biblioteca que podría conducir a segfault en casos raros. #2854 - Se corrigió una pérdida de memoria al insertar en una tabla con
AggregateFunction
columnas, si el estado de la función agregada no es simple (asigna memoria por separado), y si una sola solicitud de inserción da como resultado múltiples bloques pequeños. #3084 - Se corrigió una condición de carrera al crear y eliminar la misma
Buffer
oMergeTree
mesa simultáneamente. - Se corrigió la posibilidad de una segfault al comparar tuplas formadas por ciertos tipos no triviales, como tuplas. #2989
- Se corrigió la posibilidad de un segfault al ejecutar ciertos
ON CLUSTER
consulta. Invierno Zhang - Se corrigió un error en el
arrayDistinct
función paraNullable
elementos de matriz. #2845 #2937 - El
enable_optimize_predicate_expression
opción ahora soporta correctamente casos conSELECT *
. Invierno Zhang - Se corrigió el segfault al reinicializar la sesión de ZooKeeper. #2917
- Se corrigió el bloqueo de potencial cuando se trabajaba con ZooKeeper.
- Se corrigió el código incorrecto para agregar estructuras de datos anidadas en un
SummingMergeTree
. - Al asignar memoria para estados de funciones agregadas, la alineación se tiene en cuenta correctamente, lo que permite utilizar operaciones que requieren alineación al implementar estados de funciones agregadas. Más información
Corrección de seguridad:
- Uso seguro de las fuentes de datos ODBC. La interacción con los controladores ODBC utiliza un
clickhouse-odbc-bridge
proceso. Los errores en los controladores ODBC de terceros ya no causan problemas con la estabilidad del servidor o vulnerabilidades. #2828 #2879 #2886 #2893 #2921 - Se corrigió la validación incorrecta de la ruta del archivo en el
catBoostPool
función de la tabla. #2894 - El contenido de las tablas del sistema (
tables
,databases
,parts
,columns
,parts_columns
,merges
,mutations
,replicas
, yreplication_queue
) se filtran de acuerdo con el acceso configurado por el usuario a las bases de datos (allow_databases
). Invierno Zhang
Cambios incompatibles hacia atrás:
- En consultas con JOIN, el carácter estrella se expande a una lista de columnas en todas las tablas, de acuerdo con el estándar SQL. Puede restaurar el comportamiento anterior configurando
asterisk_left_columns_only
a 1 en el nivel de configuración del usuario.
Crear cambios:
- La mayoría de las pruebas de integración ahora se pueden ejecutar mediante confirmación.
- Las comprobaciones de estilo de código también se pueden ejecutar mediante confirmación.
- El
memcpy
la implementación se elige correctamente cuando se construye en CentOS7 / Fedora. Etienne Champetier - Al usar clang para compilar, algunas advertencias de
-Weverything
se han añadido, además de la-Wall-Wextra -Werror
. #2957 - La depuración de la compilación utiliza el
jemalloc
opción de depuración. - La interfaz de la biblioteca para interactuar con ZooKeeper se declara abstracta. #2950
Lanzamiento de ClickHouse 18.10
¿Qué puedes encontrar en Neodigit
Novedad:
- HTTPS se puede utilizar para la replicación. #2760
- Se agregaron las funciones
murmurHash2_64
,murmurHash3_32
,murmurHash3_64
, ymurmurHash3_128
además de la existentemurmurHash2_32
. #2791 - Compatibilidad con tipos Nullable en el controlador ODBC de ClickHouse (
ODBCDriver2
formato de salida). #2834 - Soporte para
UUID
en las columnas clave.
Mejora:
- Los clústeres se pueden quitar sin reiniciar el servidor cuando se eliminan de los archivos de configuración. #2777
- Los diccionarios externos se pueden quitar sin reiniciar el servidor cuando se eliminan de los archivos de configuración. #2779
- Añadir
SETTINGS
soporte para elKafka
motor de mesa. Alejandro Marshalov - Mejoras para el
UUID
tipo de datos (aún no completo). #2618 - Soporte para piezas vacías después de fusiones en el
SummingMergeTree
,CollapsingMergeTree
yVersionedCollapsingMergeTree
motor. #2815 - Se eliminan los registros antiguos de mutaciones completadas (
ALTER DELETE
). #2784 - Se agregó el
system.merge_tree_settings
tabla. Kirill Shvakov - El
system.tables
la tabla ahora tiene columnas de dependencia:dependencies_database
ydependencies_table
. Invierno Zhang - Se agregó el
max_partition_size_to_drop
opción de configuración. #2782 - Se agregó el
output_format_json_escape_forward_slashes
opcion. Alejandro Bocharov - Se agregó el
max_fetch_partition_retries_count
configuración. #2831 - Se agregó el
prefer_localhost_replica
configuración para deshabilitar la preferencia de una réplica local e ir a una réplica local sin interacción entre procesos. #2832 - El
quantileExact
devoluciones de la función agregadanan
en el caso de la agregación en un vacíoFloat32
oFloat64
establecer. Sundy Li
Corrección de errores:
- Se eliminó el escape innecesario de los parámetros de cadena de conexión para ODBC, lo que hizo imposible establecer una conexión. Este error se produjo en la versión 18.6.0.
- Se corrigió la lógica para el procesamiento
REPLACE PARTITION
comandos en la cola de replicación. Si hay dosREPLACE
comandos para la misma partición, la lógica incorrecta podría hacer que uno de ellos permanezca en la cola de replicación y no se ejecute. #2814 - Se corrigió un error de fusión cuando todas las partes de datos estaban vacías (partes que se formaron a partir de una fusión o de
ALTER DELETE
si se han eliminado todos los datos). Este error apareció en la versión 18.1.0. #2930 - Se corrigió un error para concurrente
Set
oJoin
. Amos pájaro - Se corrigió el
Block structure mismatch in UNION stream: different number of columns
error que ocurrió paraUNION ALL
consultas dentro de una subconsulta si una de lasSELECT
queries contiene nombres de columna duplicados. Invierno Zhang - Se corrigió una pérdida de memoria si se producía una excepción al conectarse a un servidor MySQL.
- Se corrigió el código de respuesta incorrecto de clickhouse-cliente en caso de un error de consulta.
- Se corrigió el comportamiento incorrecto de las vistas materializadas que contenían DISTINCT. #2795
Cambios incompatibles hacia atrás
- Se ha eliminado el soporte para consultas CHECK TABLE para tablas distribuidas.
Crear cambios:
- El asignador ha sido reemplazado:
jemalloc
ahora se utiliza en lugar detcmalloc
. En algunos escenarios, esto aumenta la velocidad hasta un 20%. Sin embargo, hay consultas que se han ralentizado hasta en un 20%. El consumo de memoria se ha reducido en aproximadamente un 10% en algunos escenarios, con una estabilidad mejorada. Con cargas altamente competitivas, el uso de CPU en el espacio de usuario y en el sistema muestra solo un ligero aumento. #2773 - Uso de libressl desde un submódulo. #1983 #2807
- Uso de unixodbc desde un submódulo. #2789
- Uso de mariadb-connector-c desde un submódulo. #2785
- Se agregaron archivos de prueba funcionales al repositorio que dependen de la disponibilidad de los datos de prueba (por el momento, sin los datos de prueba en sí).
Lanzamiento de ClickHouse 18.6
¿Qué puedes encontrar en Neodigit
Novedad:
- Se agregó soporte para expresiones ON para la sintaxis JOIN ON:
JOIN ON Expr([table.]column ...) = Expr([table.]column, ...) [AND Expr([table.]column, ...) = Expr([table.]column, ...) ...]
La expresión debe ser una cadena de igualdad unida por el operador AND. Cada lado de la igualdad puede ser una expresión arbitraria sobre las columnas de una de las tablas. Se admite el uso de nombres de columna completos (table.name
,database.table.name
,table_alias.name
,subquery_alias.name
) para la tabla correcta. #2742 - HTTPS se puede habilitar para la replicación. #2760
Mejora:
- El servidor pasa el componente de parche de su versión al cliente. Los datos sobre el componente de la versión del parche se encuentran en
system.processes
yquery_log
. #2646
Lanzamiento de ClickHouse 18.5
¿Qué puedes encontrar en Neodigit
Novedad:
- Se agregó la función hash
murmurHash2_32
#2756.
Mejora:
- Ahora puedes usar el
from_env
#2741 atributo para establecer valores en archivos de configuración a partir de variables de entorno. - Se agregaron versiones que no distinguen entre mayúsculas y minúsculas del
coalesce
,ifNull
, ynullIf functions
#2752.
Corrección de errores:
- Se corrigió un posible error al iniciar una réplica #2759.
Lanzamiento de ClickHouse 18.4
¿Qué puedes encontrar en Neodigit
Novedad:
- Tablas de sistema añadidas:
formats
,data_type_families
,aggregate_function_combinators
,table_functions
,table_engines
,collations
#2721. - Se agregó la capacidad de usar una función de tabla en lugar de una tabla como argumento de un
remote
ocluster table function
#2708. - Soporte para
HTTP Basic
autenticación en el protocolo de replicación #2727. - El
has
función ahora permite buscar un valor numérico en una matriz deEnum
valor Maxim Khrisanfov. - Soporte para agregar separadores de mensajes arbitrarios al leer desde
Kafka
Amos pájaro.
Mejora:
- El
ALTER TABLE t DELETE WHERE
La consulta no reescribe partes de datos que no se vieron afectadas por la condición WHERE #2694. - El
use_minimalistic_checksums_in_zookeeper
opción paraReplicatedMergeTree
tables está habilitada de forma predeterminada. Esta configuración se agregó en la versión 1.1.54378, 16-04-2018. Las versiones que son anteriores a 1.1.54378 ya no se pueden instalar. - Soporte para correr
KILL
yOPTIMIZE
consultas que especificanON CLUSTER
Invierno Zhang.
Corrección de errores:
- Corregido el error
Column ... is not under an aggregate function and not in GROUP BY
para la agregación con una expresión IN. Este error apareció en la versión 18.1.0. (bbdd780b) - Se ha corregido un error en el
windowFunnel aggregate function
Invierno Zhang. - Se ha corregido un error en el
anyHeavy
función agregada (a2101df2) - Se corrigió el bloqueo del servidor al usar el
countArray()
función de agregado.
Cambios incompatibles hacia atrás:
- Parámetros para
Kafka
el motor fue cambiado deKafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_schema, kafka_num_consumers])
aKafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_row_delimiter, kafka_schema, kafka_num_consumers])
. Si sus tablas usankafka_schema
okafka_num_consumers
parámetros, debe editar manualmente los archivos de metadatospath/metadata/database/table.sql
y añadirkafka_row_delimiter
parámetro con''
valor.
Lanzamiento de ClickHouse 18.1
¿Qué puedes encontrar en Neodigit
Novedad:
- Soporte para el
ALTER TABLE t DELETE WHERE
consulta para tablas MergeTree no replicadas (#2634). - Soporte para tipos arbitrarios para el
uniq*
familia de funciones agregadas (#2010). - Soporte para tipos arbitrarios en operadores de comparación (#2026).
- El
users.xml
archivo permite establecer una máscara de subred en el formato10.0.0.1/255.255.255.0
. Esto es necesario para usar máscaras para redes IPv6 con ceros en el medio (#2637). - Se agregó el
arrayDistinct
función (#2670). - El motor SummingMergeTree ahora puede funcionar con columnas de tipo AggregateFunction (Constantin S. Pan).
Mejora:
- Se ha cambiado el esquema de numeración para las versiones de lanzamiento. Ahora la primera parte contiene el año de lanzamiento (A.D., zona horaria de Moscú, menos 2000), la segunda parte contiene el número de cambios importantes (aumentos para la mayoría de las versiones) y la tercera parte es la versión del parche. Las versiones siguen siendo compatibles con versiones anteriores, a menos que se indique lo contrario en el registro de cambios.
- Conversiones más rápidas de números de coma flotante a una cadena (Amos pájaro).
- Si se omitieron algunas filas durante una inserción debido a errores de análisis (esto es posible con el
input_allow_errors_num
yinput_allow_errors_ratio
configuración activada), el número de filas omitidas ahora se escribe en el registro del servidor (Leonardo Cecchi).
Corrección de errores:
- Se corrigió el comando TRUNCATE para tablas temporales (Amos pájaro).
- Se corrigió un punto muerto raro en la biblioteca de cliente ZooKeeper que se producía cuando había un error de red al leer la respuesta (c315200).
- Se corrigió un error durante un CAST a Nullable tipos (#1322).
- Se corrigió el resultado incorrecto de la
maxIntersection()
función cuando los límites de los intervalos coincidieron (Miguel Furmur). - Se corrigió la transformación incorrecta de la cadena de expresión OR en un argumento de función (Más información).
- Se corrigió la degradación del rendimiento para las consultas que contenían
IN (subquery)
expresiones dentro de otra subconsulta (#2571). - Se corrigió la incompatibilidad entre servidores con diferentes versiones en consultas distribuidas
CAST
función que no está en letras mayúsculas (fe8c4d6). - Se agregaron citas faltantes de identificadores para consultas a un DBMS externo (#2635).
Cambios incompatibles hacia atrás:
- La conversión de una cadena que contiene el número cero a DateTime no funciona. Ejemplo:
SELECT toDateTime('0')
. Esta es también la razón por la queDateTime DEFAULT '0'
no funciona en tablas, así como<null_value>0</null_value>
en los diccionarios. Solución: reemplazar0
con0000-00-00 00:00:00
.
Lanzamiento de ClickHouse 1.1
¿Qué puedes encontrar en Neodigit
Novedad:
- Se agregó el
histogram
función agregada (Mikhail Surin). - Ahora
OPTIMIZE TABLE ... FINAL
se puede utilizar sin especificar particiones paraReplicatedMergeTree
(Amos pájaro).
Corrección de errores:
- Se corrigió un problema con un tiempo de espera muy pequeño para los sockets (un segundo) para leer y escribir al enviar y descargar datos replicados, lo que hacía imposible descargar partes más grandes si hay una carga en la red o el disco (resultó en intentos cíclicos para descargar partes). Este error se produjo en la versión 1.1.54388.
- Se corrigieron problemas al usar chroot en ZooKeeper si insertaba bloques de datos duplicados en la tabla.
- El
has
la función ahora funciona correctamente para una matriz con elementos Nullable (#2115). - El
system.tables
la tabla ahora funciona correctamente cuando se usa en consultas distribuidas. Elmetadata_modification_time
yengine_full
Las columnas ahora no son virtuales. Se corrigió un error que se producía si solo se consultaban estas columnas desde la tabla. - Se corrigió cómo un vacío
TinyLog
la tabla funciona después de insertar un bloque de datos vacío (#2563). - El
system.zookeeper
table funciona si el valor del nodo en ZooKeeper es NULL.
¿Qué puedes encontrar en Neodigit
Novedad:
- Las consultas se pueden enviar en
multipart/form-data
formato (en elquery
campo), que es útil si también se envían datos externos para el procesamiento de consultas (Olga Hvostikova). - Se agregó la capacidad de habilitar o deshabilitar el procesamiento de comillas simples o dobles al leer datos en formato CSV. Puede configurar esto en el
format_csv_allow_single_quotes
yformat_csv_allow_double_quotes
configuración (Amos pájaro). - Ahora
OPTIMIZE TABLE ... FINAL
se puede utilizar sin especificar la partición para variantes no replicadas deMergeTree
(Amos pájaro).
Mejora:
- Rendimiento mejorado, consumo de memoria reducido y seguimiento correcto del consumo de memoria con el uso del operador IN cuando se podría usar un índice de tabla (#2584).
- Se eliminó la comprobación redundante de las sumas de comprobación al agregar una parte de datos. Esto es importante cuando hay un gran número de réplicas, porque en estos casos el número total de comprobaciones fue igual a N^2.
- Añadido soporte para
Array(Tuple(...))
los argumentos para elarrayEnumerateUniq
función (#2573). - Añadir
Nullable
soporte para elrunningDifference
función (#2594). - Mejora del rendimiento del análisis de consultas cuando hay un gran número de expresiones (#2572).
- Selección más rápida de partes de datos para la fusión en
ReplicatedMergeTree
tabla. Recuperación más rápida de la sesión ZooKeeper (#2597). - El
format_version.txt
archivo paraMergeTree
tables se vuelve a crear si falta, lo que tiene sentido si ClickHouse se inicia después de copiar la estructura de directorios sin archivos (Películas De Sexo).
Corrección de errores:
- Se corrigió un error al trabajar con ZooKeeper que podría hacer imposible recuperar la sesión y los estados de solo lectura de las tablas antes de reiniciar el servidor.
- Se ha corregido un error al trabajar con ZooKeeper que podría hacer que los nodos antiguos no se eliminen si se interrumpe la sesión.
- Se corrigió un error en el
quantileTDigest
función para argumentos Float (este error se introdujo en la versión 1.1.54388) (Mikhail Surin). - Se corrigió un error en el índice de las tablas MergeTree si la columna de clave principal se encuentra dentro de la función para convertir tipos entre enteros con signo y sin signo del mismo tamaño (#2603).
- Segfault fijo si
macros
se usan pero no están en el archivo de configuración (#2570). - Se corrigió el cambio a la base de datos predeterminada al volver a conectar el cliente (#2583).
- Se corrigió un error que ocurría cuando el
use_index_for_in_with_subqueries
la configuración estaba deshabilitada.
Corrección de seguridad:
- El envío de archivos ya no es posible cuando se conecta a MySQL (
LOAD DATA LOCAL INFILE
).
¿Qué puedes encontrar en Neodigit
Novedad:
- Soporte para el
ALTER TABLE t DELETE WHERE
consulta para tablas replicadas. Se agregó elsystem.mutations
para realizar un seguimiento del progreso de este tipo de consultas. - Soporte para el
ALTER TABLE t [REPLACE|ATTACH] PARTITION
consulta para tablas *MergeTree. - Soporte para el
TRUNCATE TABLE
consulta (Invierno Zhang) - Varios nuevos
SYSTEM
consultas para tablas replicadas (RESTART REPLICAS
,SYNC REPLICA
,[STOP|START] [MERGES|FETCHES|SENDS REPLICATED|REPLICATION QUEUES]
). - Se agregó la capacidad de escribir en una tabla con el motor MySQL y la función de tabla correspondiente (sundy-li).
- Se agregó el
url()
función de la tabla y elURL
motor de mesa (Alejandro Sapin). - Se agregó el
windowFunnel
función agregada (sundy-li). - Nuevo
startsWith
yendsWith
funciones para cadenas (Vadim Plakhtinsky). - El
numbers()
función de tabla ahora le permite especificar el desplazamiento (Invierno Zhang). - La contraseña para
clickhouse-client
se puede introducir de forma interactiva. - Los registros del servidor ahora se pueden enviar a syslog (Alejandro Krasheninnikov).
- Compatibilidad con el inicio de sesión en diccionarios con una fuente de biblioteca compartida (Alejandro Sapin).
- Soporte para delimitadores CSV personalizados (Ivan Zhukov)
- Se agregó el
date_time_input_format
configuración. Si cambia esta configuración a'best_effort'
, DateTime valores se leerán en una amplia gama de formatos. - Se agregó el
clickhouse-obfuscator
utilidad para la ofuscación de datos. Ejemplo de uso: publicación de datos utilizados en pruebas de rendimiento.
Experimental Características:
- Se agregó la capacidad de calcular
and
solo donde se necesitan (Anastasia Tsarkova) - La compilación JIT a código nativo ya está disponible para algunas expresiones (pyos).
Corrección de errores:
- Los duplicados ya no aparecen para una consulta con
DISTINCT
yORDER BY
. - Consultas con
ARRAY JOIN
yarrayFilter
ya no devuelve un resultado incorrecto. - Se corrigió un error al leer una columna de matriz desde una estructura anidada (#2066).
- Se corrigió un error al analizar consultas con una cláusula HAVING como
HAVING tuple IN (...)
. - Se ha corregido un error al analizar consultas con alias recursivos.
- Se corrigió un error al leer desde ReplacingMergeTree con una condición en PREWHERE que filtra todas las filas (#2525).
- La configuración del perfil de usuario no se aplicó al usar sesiones en la interfaz HTTP.
- Se corrigió cómo se aplican los ajustes desde los parámetros de línea de comandos en clickhouse-local.
- La biblioteca de cliente ZooKeeper ahora usa el tiempo de espera de sesión recibido del servidor.
- Se ha corregido un error en la biblioteca de cliente ZooKeeper cuando el cliente esperaba la respuesta del servidor más tiempo que el tiempo de espera.
- Poda fija de piezas para consultas con condiciones en columnas de clave de partición (#2342).
- Las fusiones ahora son posibles después
CLEAR COLUMN IN PARTITION
(#2315). - Se ha corregido la asignación de tipos en la función de tabla ODBC (sundy-li).
- Las comparaciones de tipos se han fijado para
DateTime
con y sin la zona horaria (Alejandro Bocharov). - Análisis sintáctico fijo y formato del
CAST
operador. - Inserción fija en una vista materializada para el motor de tabla distribuida (Babacar Diassé).
- Se corrigió una condición de carrera al escribir datos desde el
Kafka
motor a vistas materializadas (Información adicional). - SSRF fijo en la función de tabla remota ().
- Comportamiento de salida fijo de
clickhouse-client
en modo multilínea (#2510).
Mejora:
- Las tareas en segundo plano de las tablas replicadas ahora se realizan en un grupo de subprocesos en lugar de en subprocesos separados (Silviu Caragea).
- Mejora del rendimiento de compresión LZ4.
- Análisis más rápido para consultas con un gran número de JOIN y subconsultas.
- La caché DNS ahora se actualiza automáticamente cuando hay demasiados errores de red.
- Las inserciones de tabla ya no se producen si la inserción en una de las vistas materializadas no es posible porque tiene demasiadas partes.
- Se ha corregido la discrepancia en los contadores de eventos
Query
,SelectQuery
, yInsertQuery
. - Expresiones como
tuple IN (SELECT tuple)
se permiten si los tipos de tupla coinciden. - Un servidor con tablas replicadas puede iniciarse incluso si no ha configurado ZooKeeper.
- Al calcular el número de núcleos de CPU disponibles, ahora se tienen en cuenta los límites en cgroups (Más información).
- Se agregó chown para los directorios de configuración en el archivo de configuración systemd (Mikhail Shiryaev).
Crear cambios:
- El compilador gcc8 se puede usar para compilaciones.
- Se agregó la capacidad de construir llvm desde el submódulo.
- La versión de la biblioteca librdkafka se ha actualizado a v0.11.4.
- Se agregó la capacidad de usar la biblioteca libcpuid del sistema. La versión de la biblioteca se ha actualizado a 0.4.0.
- Se corrigió la compilación usando la biblioteca vectorclass (Babacar Diassé).
- Cmake ahora genera archivos para ninja de forma predeterminada (como cuando se usa
-G Ninja
). - Se agregó la capacidad de usar la biblioteca libtinfo en lugar de libtermcap (Nuestros Servicios).
- Se corrigió un conflicto de archivos de encabezado en Fedora Rawhide (#2520).
Cambios incompatibles hacia atrás:
- Eliminado escapar en
Vertical
yPretty*
formatea y elimina elVerticalRaw
formato. - Si los servidores con la versión 1.1.54388 (o posterior) y los servidores con una versión anterior se utilizan simultáneamente en una consulta distribuida y la consulta tiene
cast(x, 'Type')
expresión sinAS
palabra clave y no tiene la palabracast
en mayúsculas, se lanzará una excepción con un mensaje comoNot found column cast(0, 'UInt8') in block
. Solución: actualice el servidor en todo el clúster.
¿Qué puedes encontrar en Neodigit
Corrección de errores:
- Se corrigió un error que en algunos casos causaba que las operaciones de ZooKeeper se bloquearan.
¿Qué puedes encontrar en Neodigit
Corrección de errores:
- Se corrigió una desaceleración de la cola de replicación si una tabla tiene muchas réplicas.
¿Qué puedes encontrar en Neodigit
Corrección de errores:
- Se corrigió una fuga de nodos en ZooKeeper cuando ClickHouse pierde la conexión con el servidor ZooKeeper.
¿Qué puedes encontrar en Neodigit
Novedad:
- Se agregó la función de tabla
file(path, format, structure)
. Un ejemplo de lectura de bytes de/dev/urandom
:ln -s /dev/urandom /var/lib/clickhouse/user_files/random``clickhouse-client -q "SELECT * FROM file('random', 'RowBinary', 'd UInt8') LIMIT 10"
.
Mejora:
- Las subconsultas se pueden envolver en
()
para mejorar la legibilidad de las consultas. Por ejemplo:(SELECT 1) UNION ALL (SELECT 1)
. - Simple
SELECT
consultas de lasystem.processes
no están incluidos en elmax_concurrent_queries
limite.
Corrección de errores:
- Corregido el comportamiento incorrecto del
IN
operador cuando seleccione deMATERIALIZED VIEW
. - Se corrigió el filtrado incorrecto por índice de partición en expresiones como
partition_key_column IN (...)
. - Se corrigió la imposibilidad de ejecutar
OPTIMIZE
consulta sobre réplica no líder siREANAME
se realizó sobre la mesa. - Se corrigió el error de autorización al ejecutar
OPTIMIZE
oALTER
consultas en una réplica que no sea de líder. - Congelación fija de
KILL QUERY
. - Se corrigió un error en la biblioteca de cliente ZooKeeper que provocaba la pérdida de observaciones, la congelación de la cola DDL distribuida y ralentizaciones en la cola de replicación si no estaba vacía
chroot
prefijo se utiliza en la configuración ZooKeeper.
Cambios incompatibles hacia atrás:
- Se eliminó el soporte para expresiones como
(a, b) IN (SELECT (a, b))
(puede usar la expresión equivalente(a, b) IN (SELECT a, b)
). En versiones anteriores, estas expresiones conducían aWHERE
filtrado o errores causados.
¿Qué puedes encontrar en Neodigit
Novedad:
- El nivel de registro se puede cambiar sin reiniciar el servidor.
- Se agregó el
SHOW CREATE DATABASE
consulta. - El
query_id
se puede pasar aclickhouse-client
(elBroom). - Nueva configuración:
max_network_bandwidth_for_all_users
. - Añadido soporte para
ALTER TABLE ... PARTITION ...
paraMATERIALIZED VIEW
. - Se agregó información sobre el tamaño de las partes de datos en forma sin comprimir en la tabla del sistema.
- Soporte de cifrado de servidor a servidor para tablas distribuidas (
<secure>1</secure>
en la configuración de réplica en<remote_servers>
). - Configuración del nivel de tabla para el
ReplicatedMergeTree
familia con el fin de minimizar la cantidad de datos almacenados en Zookeeper: :use_minimalistic_checksums_in_zookeeper = 1
- Configuración del
clickhouse-client
pedir. De forma predeterminada, los nombres de servidor ahora se envían al mensaje. El nombre para mostrar del servidor se puede cambiar. También se envía en elX-ClickHouse-Display-Name
Encabezado HTTP (Kirill Shvakov). - Múltiples separados por comas
topics
se puede especificar para elKafka
motor (Tobias Adamson) - Cuando una consulta es detenida por
KILL QUERY
oreplace_running_query
el cliente recibe elQuery was canceled
excepción en lugar de un resultado incompleto.
Mejora:
ALTER TABLE ... DROP/DETACH PARTITION
las consultas se ejecutan en la parte frontal de la cola de replicación.SELECT ... FINAL
yOPTIMIZE ... FINAL
se puede utilizar incluso cuando la tabla tiene una única parte de datos.- A
query_log
se recrea sobre la marcha si se eliminó manualmente (Kirill Shvakov). - El
lengthUTF8
funciona más rápido (zhang2014). - Rendimiento mejorado de los insertos síncronos en
Distributed
tabla (insert_distributed_sync = 1
) cuando hay una gran cantidad de fragmentos. - El servidor acepta el
send_timeout
yreceive_timeout
configuraciones del cliente y las aplica cuando se conecta al cliente (se aplican en orden inverso: el socket del servidorsend_timeout
se establece en elreceive_timeout
valor recibido del cliente, y viceversa). - Recuperación de bloqueos más robusta para la inserción asincrónica en
Distributed
tabla. - El tipo de devolución del
countEqual
función cambiada deUInt32
aUInt64
(谢磊).
Corrección de errores:
- Se corrigió un error con
IN
cuando el lado izquierdo de la expresión esNullable
. - Ahora se devuelven los resultados correctos cuando se usan tuplas con
IN
cuando algunos de los componentes de la tupla están en el índice de la tabla. - El
max_execution_time
limit ahora funciona correctamente con consultas distribuidas. - Se corrigieron errores al calcular el tamaño de las columnas compuestas en el
system.columns
tabla. - Se corrigió un error al crear una tabla temporal
CREATE TEMPORARY TABLE IF NOT EXISTS.
- Corregidos errores en
StorageKafka
(##2075) - Se corrigieron fallos del servidor por argumentos no válidos de ciertas funciones agregadas.
- Se corrigió el error que impedía el
DETACH DATABASE
consulta de detener las tareas en segundo plano paraReplicatedMergeTree
tabla. Too many parts
es menos probable que ocurra al insertar en vistas materializadas agregadas (## 2084).- Se corrigió el manejo recursivo de sustituciones en la configuración si una sustitución debe ir seguida de otra sustitución en el mismo nivel.
- Se ha corregido la sintaxis en el archivo de metadatos al crear un
VIEW
que usa una consulta conUNION ALL
. SummingMergeTree
ahora funciona correctamente para la suma de estructuras de datos anidadas con una clave compuesta.- Se corrigió la posibilidad de una condición de carrera al elegir el líder para
ReplicatedMergeTree
tabla.
Crear cambios:
- La compilación admite
ninja
en lugar demake
y usosninja
de forma predeterminada para la creación de versiones. - Paquetes renombrados:
clickhouse-server-base
enclickhouse-common-static
;clickhouse-server-common
enclickhouse-server
;clickhouse-common-dbg
enclickhouse-common-static-dbg
. Para instalar, utiliceclickhouse-server clickhouse-client
. Los paquetes con los nombres antiguos aún se cargarán en los repositorios por compatibilidad con versiones anteriores.
Cambios incompatibles hacia atrás:
- Se eliminó la interpretación especial de una expresión IN si se especifica una matriz en el lado izquierdo. Anteriormente, la expresión
arr IN (set)
se interpretó como “at least onearr
element belongs to theset
”. Para obtener el mismo comportamiento en la nueva versión, escribaarrayExists(x -> x IN (set), arr)
. - Deshabilitado el uso incorrecto de la opción de socket
SO_REUSEPORT
, que se habilitó incorrectamente de forma predeterminada en la biblioteca Poco. Tenga en cuenta que en Linux ya no hay ninguna razón para especificar simultáneamente las direcciones::
y0.0.0.0
for listen – use just::
, que permite escuchar la conexión tanto a través de IPv4 como IPv6 (con los ajustes de configuración predeterminados del kernel). También puede volver al comportamiento de versiones anteriores especificando<listen_reuse_port>1</listen_reuse_port>
en la configuración.
Somos una empresa especializada en el desarrollo de soluciones tecnológicas
Novedad:
- Se agregó el
system.macros
tabla y actualización automática de macros cuando se cambia el archivo de configuración. - Se agregó el
SYSTEM RELOAD CONFIG
consulta. - Se agregó el
maxIntersections(left_col, right_col)
función de agregado, que devuelve el número máximo de intervalos de intersección simultáneamente[left; right]
. ElmaxIntersectionsPosition(left, right)
función devuelve el comienzo de la “maximum” intervalo. (Miguel Furmur).
Mejora:
- Al insertar datos en un
Replicated
se hacen menos solicitudes paraZooKeeper
(y la mayoría de los errores de nivel de usuario han desaparecido delZooKeeper
registro). - Se agregó la capacidad de crear alias para conjuntos de datos. Ejemplo:
WITH (1, 2, 3) AS set SELECT number IN set FROM system.numbers LIMIT 10
.
Corrección de errores:
- Se corrigió el
Illegal PREWHERE
error al leer de las tablas Merge paraDistributed
tabla. - Se agregaron correcciones que le permiten iniciar clickhouse-server en contenedores Docker solo para IPv4.
- Se corrigió una condición de carrera al leer desde el sistema
system.parts_columns tables.
- Se eliminó el doble almacenamiento en búfer durante una inserción síncrona en un
Distributed
tabla, lo que podría haber causado que la conexión agotara el tiempo de espera. - Se corrigió un error que causaba esperas excesivamente largas para una réplica no disponible antes de comenzar un
SELECT
consulta. - Se corrigieron fechas incorrectas en el
system.parts
tabla. - Se corrigió un error que hacía imposible insertar datos en un
Replicated
mesa sichroot
no estaba vacío en la configuración delZooKeeper
Cluster. - Se corrigió el algoritmo de fusión vertical para un vacío
ORDER BY
tabla. - Se restauró la capacidad de usar diccionarios en consultas a tablas remotas, incluso si estos diccionarios no están presentes en el servidor del solicitante. Esta funcionalidad se perdió en la versión 1.1.54362.
- Restauró el comportamiento para consultas como
SELECT * FROM remote('server2', default.table) WHERE col IN (SELECT col2 FROM default.table)
cuando el lado derecho de laIN
debe utilizar un control remotodefault.table
en lugar de uno local. Este comportamiento se rompió en la versión 1.1.54358. - Se eliminó el registro de nivel de error extraño de
Not found column ... in block
.
¿Qué puedes encontrar en Neodigit
Novedad:
- Agregación sin
GROUP BY
para un conjunto vacío (comoSELECT count(*) FROM table WHERE 0
) ahora devuelve un resultado con una fila con valores nulos para funciones agregadas, de acuerdo con el estándar SQL. Para restaurar el comportamiento anterior (devolver un resultado vacío), establezcaempty_result_for_aggregation_by_empty_set
a 1. - Añadido tipo de conversión para
UNION ALL
. Se permiten diferentes nombres de alias enSELECT
posiciones enUNION ALL
, de acuerdo con el estándar SQL. - Las expresiones arbitrarias se admiten en
LIMIT BY
clausula. Anteriormente, solo era posible usar columnas resultantes deSELECT
. - Un índice de
MergeTree
se utiliza cuandoIN
se aplica a una tupla de expresiones de las columnas de la clave principal. Ejemplo:WHERE (UserID, EventDate) IN ((123, '2000-01-01'), ...)
(Anastasiya Tsarkova). - Se agregó el
clickhouse-copier
herramienta para copiar entre clústeres y resharding datos (beta). - Se agregaron funciones hash consistentes:
yandexConsistentHash
,jumpConsistentHash
,sumburConsistentHash
. Se pueden usar como una clave de fragmentación para reducir la cantidad de tráfico de red durante los subsiguientes reshardings. - Funciones añadidas:
arrayAny
,arrayAll
,hasAny
,hasAll
,arrayIntersect
,arrayResize
. - Se agregó el
arrayCumSum
(Javi Santana). - Se agregó el
parseDateTimeBestEffort
,parseDateTimeBestEffortOrZero
, yparseDateTimeBestEffortOrNull
funciones para leer el DateTime de una cadena que contiene texto en una amplia variedad de formatos posibles. - Los datos se pueden volver a cargar parcialmente de diccionarios externos durante la actualización (cargar sólo los registros en los que el valor del campo especificado mayor que en la descarga anterior) (Arsen Hakobyan).
- Se agregó el
cluster
función de la tabla. Ejemplo:cluster(cluster_name, db, table)
. Elremote
función de tabla puede aceptar el nombre del clúster como el primer argumento, si se especifica como un identificador. - El
remote
ycluster
las funciones de la tabla se pueden utilizar enINSERT
consulta. - Se agregó el
create_table_query
yengine_full
columnas virtuales a lasystem.tables
tabla . Elmetadata_modification_time
columna es virtual. - Se agregó el
data_path
ymetadata_path
columnas asystem.tables
ysystem.databases
tablas, y añadió elpath
columna a lasystem.parts
ysystem.parts_columns
tabla. - Se agregó información adicional sobre fusiones en el
system.part_log
tabla. - Se puede utilizar una clave de partición arbitraria para
system.query_log
(Kirill Shvakov). - El
SHOW TABLES
consulta ahora también muestra tablas temporales. Se agregaron tablas temporales y elis_temporary
columna asystem.tables
(zhang2014). - Añadir
DROP TEMPORARY TABLE
yEXISTS TEMPORARY TABLE
consultas (zhang2014). - Soporte para
SHOW CREATE TABLE
para tablas temporales (zhang2014). - Se agregó el
system_profile
parámetro de configuración para los ajustes utilizados por los procesos internos. - Soporte para carga
object_id
como un atributo enMongoDB
diccionarios (Pavel Litvinenko). - Lectura
null
como el valor predeterminado al cargar datos para un diccionario externo con elMongoDB
fuente (Pavel Litvinenko). - Lectura
DateTime
valores en elValues
formato de una marca de tiempo Unix sin comillas simples. - La conmutación por error se admite en
remote
funciones de tabla para los casos en que a algunas de las réplicas les falta la tabla solicitada. - Los valores de configuración se pueden anular en la línea de comandos al ejecutar
clickhouse-server
. Ejemplo:clickhouse-server -- --logger.level=information
. - Implementado el
empty
función de unFixedString
argumento: la función devuelve 1 si la cadena consta completamente de bytes nulos (zhang2014). - Se agregó el
listen_try
parámetro de configuración para escuchar al menos una de las direcciones de escucha sin salir, si algunas de las direcciones no se pueden escuchar (útil para sistemas con soporte deshabilitado para IPv4 o IPv6). - Se agregó el
VersionedCollapsingMergeTree
motor de mesa. - Soporte para filas y tipos numéricos arbitrarios para el
library
fuente del diccionario. MergeTree
las tablas se pueden usar sin una clave principal (debe especificarORDER BY tuple()
).- A
Nullable
tipo puede serCAST
a un no-Nullable
escriba si el argumento no esNULL
. RENAME TABLE
se puede realizar paraVIEW
.- Se agregó el
throwIf
función. - Se agregó el
odbc_default_field_size
opción, que le permite extender el tamaño máximo del valor cargado desde una fuente ODBC (por defecto, es 1024). - El
system.processes
mesa ySHOW PROCESSLIST
ahora tienen elis_cancelled
ypeak_memory_usage
columna.
Mejora:
- Los límites y las cuotas sobre el resultado ya no se aplican a los datos intermedios para
INSERT SELECT
consultas o paraSELECT
subconsultas. - Menos desencadenantes falsos de
force_restore_data
al comprobar el estado deReplicated
cuando se inicia el servidor. - Se agregó el
allow_distributed_ddl
opcion. - Las funciones no deterministas no están permitidas en expresiones para
MergeTree
teclas de mesa. - Archivos con sustituciones de
config.d
los directorios se cargan en orden alfabético. - Rendimiento mejorado del
arrayElement
función en el caso de una matriz multidimensional constante con una matriz vacía como uno de los elementos. Ejemplo:[[1], []][x]
. - El servidor se inicia más rápido ahora cuando se utilizan archivos de configuración con sustituciones muy grandes (por ejemplo, listas muy grandes de redes IP).
- Al ejecutar una consulta, las funciones de valor de tabla se ejecutan una vez. Previamente,
remote
ymysql
las funciones de valor de tabla realizaron la misma consulta dos veces para recuperar la estructura de tabla de un servidor remoto. - El
MkDocs
se utiliza el generador de documentación. - Cuando intenta eliminar una columna de tabla que
DEFAULT
/MATERIALIZED
expresiones de otras columnas dependen, se lanza una excepción (zhang2014). - Se agregó la capacidad de analizar una línea vacía en formatos de texto como el número 0 para
Float
tipos de datos. Esta característica estaba disponible anteriormente, pero se perdió en la versión 1.1.54342. Enum
se pueden utilizar enmin
,max
,sum
y algunas otras funciones. En estos casos, utiliza los valores numéricos correspondientes. Esta característica estaba disponible anteriormente, pero se perdió en la versión 1.1.54337.- Añadir
max_expanded_ast_elements
para restringir el tamaño del AST después de expandir recursivamente los alias.
Corrección de errores:
- Fijo casos innecesarios columnas fueron retirados de las subconsultas en error, o no se quitan de subconsultas que contiene
UNION ALL
. - Se corrigió un error en las fusiones para
ReplacingMergeTree
tabla. - Inserciones síncronas fijas en
Distributed
tabla (insert_distributed_sync = 1
). - Segfault fijo para ciertos usos de
FULL
yRIGHT JOIN
con columnas duplicadas en subconsultas. - Segfault fijo para ciertos usos de
replace_running_query
yKILL QUERY
. - Se corrigió el orden de la
source
ylast_exception
columnas en elsystem.dictionaries
tabla. - Se corrigió un error cuando el
DROP DATABASE
la consulta no eliminó el archivo con metadatos. - Se corrigió el
DROP DATABASE
consulta paraDictionary
base. - Se corrigió la baja precisión de
uniqHLL12
yuniqCombined
funciones para cardinalidades superiores a 100 millones de artículos (Alex Bocharov). - Se corrigió el cálculo de valores predeterminados implícitos cuando era necesario para calcular simultáneamente expresiones explícitas predeterminadas en
INSERT
consultas (zhang2014). - Se corrigió un caso raro cuando una consulta a un
MergeTree
la tabla no pudo terminar (chenxing-xc). - Se corrigió un bloqueo que se produjo al ejecutar un
CHECK
consulta paraDistributed
tablas si todos los fragmentos son locales (chenxing.xc). - Se corrigió una ligera regresión de rendimiento con funciones que usan expresiones regulares.
- Se corrigió una regresión de rendimiento al crear matrices multidimensionales a partir de expresiones complejas.
- Se corrigió un error que podía causar un extra
FORMAT
sección para aparecer en una.sql
archivo con metadatos. - Se corrigió un error que causaba la
max_table_size_to_drop
límite para aplicar cuando se intenta eliminar unMATERIALIZED VIEW
mirando una tabla explícitamente especificada. - Se corrigió la incompatibilidad con clientes antiguos (a los clientes antiguos a veces se enviaban datos con el
DateTime('timezone')
tipo, que no entienden). - Se ha corregido un error al leer
Nested
elementos de columna de estructuras que se agregaron usandoALTER
pero que están vacíos para las particiones antiguas, cuando las condiciones para estas columnas se movieron aPREWHERE
. - Se corrigió un error al filtrar tablas por virtual
_table
columnas en consultas aMerge
tabla. - Se corrigió un error al usar
ALIAS
columnas enDistributed
tabla. - Se corrigió un error que hacía imposible la compilación dinámica para consultas con funciones agregadas del
quantile
familia. - Se corrigió una condición de carrera en la canalización de ejecución de consultas que ocurría en casos muy raros al usar
Merge
con un gran número de tablas, y cuando se utilizaGLOBAL
subconsultas. - Se corrigió un bloqueo al pasar matrices de diferentes tamaños a un
arrayReduce
función cuando se utilizan funciones agregadas de múltiples argumentos. - Prohibido el uso de consultas con
UNION ALL
en unaMATERIALIZED VIEW
. - Se corrigió un error durante la inicialización del
part_log
tabla del sistema cuando se inicia el servidor (de forma predeterminada,part_log
está deshabilitado).
Cambios incompatibles hacia atrás:
- Eliminado el
distributed_ddl_allow_replicated_alter
opcion. Este comportamiento está habilitado de forma predeterminada. - Eliminado el
strict_insert_defaults
configuración. Si estaba utilizando esta funcionalidad, escriba enclickhouse-feedback@yandex-team.com
. - Eliminado el
UnsortedMergeTree
motor.
¿Qué puedes encontrar en Neodigit
- Se agregó soporte de macros para definir nombres de clúster en consultas DDL distribuidas y constructores de tablas distribuidas:
CREATE TABLE distr ON CLUSTER '{cluster}' (...) ENGINE = Distributed('{cluster}', 'db', 'table')
. - Ahora consultas como
SELECT ... FROM table WHERE expr IN (subquery)
se procesan utilizando eltable
Indice. - Se ha mejorado el procesamiento de duplicados al insertar en tablas replicadas, por lo que ya no ralentizan la ejecución de la cola de replicación.
¿Qué puedes encontrar en Neodigit
Esta versión contiene correcciones de errores para la versión anterior 1.1.54337:
- Se corrigió una regresión en 1.1.54337: si el usuario predeterminado tiene acceso de solo lectura, entonces el servidor se niega a iniciar con el mensaje
Cannot create database in readonly mode
. - Se corrigió una regresión en 1.1.54337: en sistemas con systemd, los registros siempre se escriben en syslog independientemente de la configuración; el script de vigilancia todavía usa init .d.
- Se corrigió una regresión en 1.1.54337: configuración predeterminada incorrecta en la imagen de Docker.
- Comportamiento no determinista fijo de GraphiteMergeTree (se puede ver en los mensajes de registro
Data after merge is not byte-identical to the data on another replicas
). - Se corrigió un error que podía provocar fusiones inconsistentes después de OPTIMIZE consulta a tablas replicadas (es posible que lo vea en los mensajes de registro
Part ... intersects the previous part
). - Las tablas de búfer ahora funcionan correctamente cuando las columnas MATERIALIZED están presentes en la tabla de destino (por zhang2014).
- Se corrigió un error en la implementación de NULL.
¿Qué puedes encontrar en Neodigit
Novedad:
- Se agregó soporte para el almacenamiento de matrices multidimensionales y tuplas (
Tuple
tipo de datos) en las tablas. - Soporte para funciones de mesa para
DESCRIBE
yINSERT
consulta. Se agregó soporte para subconsultas enDESCRIBE
. Ejemplos:DESC TABLE remote('host', default.hits)
;DESC TABLE (SELECT 1)
;INSERT INTO TABLE FUNCTION remote('host', default.hits)
. Soporte paraINSERT INTO TABLE
además deINSERT INTO
. - Soporte mejorado para zonas horarias. El
DateTime
tipo de datos se puede anotar con la zona horaria que se utiliza para el análisis y el formato en formatos de texto. Ejemplo:DateTime('Europe/Moscow')
. Cuando las zonas horarias se especifican enDateTime
argumentos, el tipo de devolución rastreará la zona horaria y el valor se mostrará como se esperaba. - Se agregaron las funciones
toTimeZone
,timeDiff
,toQuarter
,toRelativeQuarterNum
. EltoRelativeHour
/Minute
/Second
funciones pueden tomar un valor de tipoDate
como argumento. Elnow
nombre de la función distingue entre mayúsculas y minúsculas. - Se agregó el
toStartOfFifteenMinutes
(Kirill Shvakov). - Se agregó el
clickhouse format
herramienta para formatear consultas. - Se agregó el
format_schema_path
configuration parameter (Marek Vavruşa). It is used for specifying a schema inCap'n Proto
formato. Los archivos de esquema solo se pueden ubicar en el directorio especificado. - Se agregó soporte para sustituciones de configuración (
incl
yconf.d
) para la configuración de diccionarios y modelos externos (Pavel Yakunin). - Se agregó una columna con documentación para el
system.settings
(Kirill Shvakov). - Se agregó el
system.parts_columns
tabla con información sobre los tamaños de columna en cada parte de datosMergeTree
tabla. - Se agregó el
system.models
tabla con información sobreCatBoost
modelos de aprendizaje automático. - Se agregó el
mysql
yodbc
función de la tabla y correspondienteMySQL
yODBC
para acceder a bases de datos remotas. Esta funcionalidad se encuentra en la fase beta. - Se agregó la posibilidad de pasar un argumento de tipo
AggregateFunction
para elgroupArray
función agregada (para que pueda crear una matriz de estados de alguna función agregada). - Se eliminaron restricciones en varias combinaciones de combinadores de funciones agregadas. Por ejemplo, puede usar
avgForEachIf
así comoavgIfForEach
funciones agregadas, que tienen diferentes comportamientos. - El
-ForEach
el combinador de funciones agregadas se extiende para el caso de funciones agregadas de múltiples argumentos. - Se agregó soporte para funciones agregadas de
Nullable
argumentos incluso para los casos en que la función devuelve un no-Nullable
resultado (añadido con la contribución de Silviu Caragea). Ejemplo:groupArray
,groupUniqArray
,topK
. - Se agregó el
max_client_network_bandwidth
paraclickhouse-client
(Kirill Shvakov). - Los usuarios con
readonly = 2
setting are allowed to work with TEMPORARY tables (CREATE, DROP, INSERT…) (Kirill Shvakov). - Se agregó soporte para el uso de múltiples consumidores con el
Kafka
motor. Opciones de configuración ampliadas paraKafka
(Marek Vavruša). - Se agregó el
intExp3
yintExp4
función. - Se agregó el
sumKahan
función de agregado. - Se agregaron las funciones * Number* OrNull, donde * Number* es un tipo numérico.
- Añadido soporte para
WITH
para unaINSERT SELECT
consulta (autor: zhang2014). - Configuración añadida:
http_connection_timeout
,http_send_timeout
,http_receive_timeout
. En particular, estos valores se utilizan para descargar partes de datos para la replicación. Cambiar esta configuración permite una conmutación por error más rápida si la red está sobrecargada. - Añadido soporte para
ALTER
para tablas de tipoNull
(Anastasiya Tsarkova). - El
reinterpretAsString
se extiende para todos los tipos de datos que se almacenan contiguamente en la memoria. - Se agregó el
--silent
opción para elclickhouse-local
herramienta. Suprime la información de ejecución de consultas de impresión en stderr. - Se agregó soporte para leer valores de tipo
Date
de texto en un formato donde el mes y / o día del mes se especifica utilizando un solo dígito en lugar de dos dígitos (Amos Bird).
Optimizaciones de rendimiento:
- Rendimiento mejorado de las funciones agregadas
min
,max
,any
,anyLast
,anyHeavy
,argMin
,argMax
de argumentos de cadena. - Mejora del rendimiento de las funciones
isInfinite
,isFinite
,isNaN
,roundToExp2
. - Rendimiento mejorado del análisis y el formato
Date
yDateTime
valores de tipo en formato de texto. - Mejora del rendimiento y la precisión del análisis de números de coma flotante.
- Menor uso de memoria para
JOIN
en el caso cuando las partes izquierda y derecha tienen columnas con nombres idénticos que no están contenidos enUSING
. - Rendimiento mejorado de las funciones agregadas
varSamp
,varPop
,stddevSamp
,stddevPop
,covarSamp
,covarPop
,corr
reduciendo la estabilidad computacional. Las funciones antiguas están disponibles bajo los nombresvarSampStable
,varPopStable
,stddevSampStable
,stddevPopStable
,covarSampStable
,covarPopStable
,corrStable
.
Corrección de errores:
- Deduplicación de datos fija después de ejecutar un
DROP
oDETACH PARTITION
consulta. En la versión anterior, soltar una partición e insertar los mismos datos de nuevo no funcionaba porque los bloques insertados se consideraban duplicados. - Se corrigió un error que podía conducir a una interpretación incorrecta de la
WHERE
cláusula paraCREATE MATERIALIZED VIEW
consultas conPOPULATE
. - Se corrigió un error al usar el
root_path
parámetro en elzookeeper_servers
configuración. - Se corrigieron los resultados inesperados de pasar el
Date
argumento atoStartOfDay
. - Se corrigió el
addMonths
ysubtractMonths
funciones y la aritmética paraINTERVAL n MONTH
en los casos en que el resultado tiene el año anterior. - Se agregó soporte faltante para el
UUID
tipo de datos paraDISTINCT
,JOIN
, yuniq
funciones agregadas y diccionarios externos (Evgeniy Ivanov). Soporte paraUUID
todavía está incompleto. - Fijo
SummingMergeTree
comportamiento en los casos en que las filas suman a cero. - Varias correcciones para el
Kafka
engine (Marek Vavruša). - Corregido el comportamiento incorrecto del
Join
motor de mesa (Amos Bird). - Se corrigió el comportamiento incorrecto del asignador en FreeBSD y OS X.
- El
extractAll
la función ahora admite coincidencias vacías. - Se corrigió un error que bloqueaba el uso de
libressl
en lugar deopenssl
. - Se corrigió el
CREATE TABLE AS SELECT
consulta de tablas temporales. - Se corrigió la no anatomía de la actualización de la cola de replicación. Esto podría provocar que las réplicas no estén sincronizadas hasta que se reinicie el servidor.
- Posible desbordamiento fijo en
gcd
,lcm
ymodulo
(%
(Maks Skorokhod). -preprocessed
los archivos ahora se crean después de cambiarumask
(umask
se puede cambiar en la configuración).- Se corrigió un error en la verificación de antecedentes de las piezas (
MergeTreePartChecker
) cuando se utiliza una clave de partición personalizada. - Análisis fijo de tuplas (valores de la
Tuple
tipo de datos) en formatos de texto. - Mensajes de error mejorados sobre tipos incompatibles pasados a
multiIf
,array
y algunas otras funciones. - Soporte rediseñado para
Nullable
tipo. Se corrigieron errores que podían provocar un bloqueo del servidor. Se corrigieron casi todos los demás errores relacionados conNULL
soporte: conversiones de tipo incorrectas en INSERT SELECT, soporte insuficiente para Nullable en HAVING y PREWHERE,join_use_nulls
modo, tipos anulables como argumentos deOR
operador, etc. - Se corrigieron varios errores relacionados con la semántica interna de los tipos de datos. Ejemplos: suma innecesaria de
Enum
campos de tipo enSummingMergeTree
; alineación deEnum
tipos enPretty
formatos, etc. - Comprueba más estrictamente las combinaciones permitidas de columnas compuestas.
- Se corrigió el desbordamiento al especificar un parámetro muy grande para el
FixedString
tipo de datos. - Se ha corregido un error en el
topK
función de agregado en un caso genérico. - Se agregó la verificación faltante de igualdad de tamaños de matriz en argumentos de variantes narias de funciones agregadas con un
-Array
combinador. - Se ha corregido un error en
--pager
paraclickhouse-client
(autor: ks1322). - Se corrigió la precisión del
exp10
función. - Se corrigió el comportamiento del
visitParamExtract
función para un mejor cumplimiento de la documentación. - Se corrigió el bloqueo cuando se especifican tipos de datos incorrectos.
- Se corrigió el comportamiento de
DISTINCT
en el caso cuando todas las columnas son constantes. - Se corrigió el formato de consulta en el caso de usar el
tupleElement
función con una expresión constante compleja como el índice del elemento de tupla. - Se ha corregido un error en
Dictionary
tablas pararange_hashed
diccionario. - Se corrigió un error que provocaba filas excesivas en el resultado de
FULL
yRIGHT JOIN
(Amós De Aves). - Se corrigió un bloqueo del servidor al crear y eliminar archivos temporales en
config.d
directorios durante la recarga de configuración. - Se corrigió el
SYSTEM DROP DNS CACHE
consulta: la memoria caché se vació pero las direcciones de los nodos del clúster no se actualizaron. - Se corrigió el comportamiento de
MATERIALIZED VIEW
después de ejecutarDETACH TABLE
for the table under the view (Marek Vavruša).
Mejoras de construcción:
- El
pbuilder
herramienta se utiliza para compilaciones. El proceso de compilación es casi completamente independiente del entorno de host de compilación. - Una sola compilación se utiliza para diferentes versiones del sistema operativo. Los paquetes y binarios se han hecho compatibles con una amplia gama de sistemas Linux.
- Se agregó el
clickhouse-test
paquete. Se puede usar para ejecutar pruebas funcionales. - El archivo tarball de origen ahora se puede publicar en el repositorio. Se puede usar para reproducir la compilación sin usar GitHub.
- Se agregó una integración limitada con Travis CI. Debido a los límites en el tiempo de compilación en Travis, solo se prueba la compilación de depuración y se ejecuta un subconjunto limitado de pruebas.
- Añadido soporte para
Cap'n'Proto
en la compilación predeterminada. - Se ha cambiado el formato de las fuentes de documentación de
Restricted Text
aMarkdown
. - Añadido soporte para
systemd
(Vladimir Smirnov). Está deshabilitado por defecto debido a la incompatibilidad con algunas imágenes del sistema operativo y se puede habilitar manualmente. - Para la generación de código dinámico,
clang
ylld
están incrustados en elclickhouse
binario. También se pueden invocar comoclickhouse clang
yclickhouse lld
. - Se eliminó el uso de extensiones GNU del código. Habilitado el
-Wextra
opcion. Al construir conclang
el valor predeterminado eslibc++
en lugar delibstdc++
. - Extraer
clickhouse_parsers
yclickhouse_common_io
bibliotecas para acelerar las compilaciones de varias herramientas.
Cambios incompatibles hacia atrás:
- El formato de las marcas en
Log
tablas de tipos que contienenNullable
columnas se cambió de una manera incompatible con versiones anteriores. Si tiene estas tablas, debe convertirlas a laTinyLog
escriba antes de iniciar la nueva versión del servidor. Para hacer esto, reemplaceENGINE = Log
conENGINE = TinyLog
en el correspondiente.sql
archivo en elmetadata
directorio. Si su tabla no tieneNullable
o si el tipo de su tabla no esLog
, entonces usted no tiene que hacer nada. - Eliminado el
experimental_allow_extended_storage_definition_syntax
configuración. Ahora esta característica está habilitada de forma predeterminada. - El
runningIncome
función fue renombrada arunningDifferenceStartingWithFirstvalue
para evitar confusiones. - Eliminado el
FROM ARRAY JOIN arr
sintaxis cuando ARRAY JOIN se especifica directamente después de FROM sin tabla (Amos Bird). - Eliminado el
BlockTabSeparated
formato que se utilizó únicamente con fines de demostración. - Se ha cambiado el formato de estado para las funciones agregadas
varSamp
,varPop
,stddevSamp
,stddevPop
,covarSamp
,covarPop
,corr
. Si ha almacenado estados de estas funciones agregadas en tablas (utilizandoAggregateFunction
tipo de datos o vistas materializadas con los estados correspondientes), por favor escriba a clickhouse-feedback@yandex-team.com. - En versiones anteriores del servidor había una característica no documentada: si una función agregada depende de parámetros, aún puede especificarla sin parámetros en el tipo de datos AggregateFunction . Ejemplo:
AggregateFunction(quantiles, UInt64)
en lugar deAggregateFunction(quantiles(0.5, 0.9), UInt64)
. Esta característica se perdió. Aunque no estaba documentado, planeamos apoyarlo nuevamente en futuras versiones. - Los tipos de datos de enumeración no se pueden usar en funciones de agregado mínimo / máximo. Esta habilidad se devolverá en la próxima versión.
Tenga en cuenta al actualizar:
- Al realizar una actualización continua en un clúster, en el momento en que algunas de las réplicas ejecutan la versión anterior de ClickHouse y otras ejecutan la nueva versión, la replicación se detiene temporalmente y el mensaje
unknown parameter 'shard'
aparece en el registro. La replicación continuará después de que se actualicen todas las réplicas del clúster. - Si se están ejecutando diferentes versiones de ClickHouse en los servidores de clúster, es posible que las consultas distribuidas que utilizan las siguientes funciones tengan resultados incorrectos:
varSamp
,varPop
,stddevSamp
,stddevPop
,covarSamp
,covarPop
,corr
. Debe actualizar todos los nodos del clúster.