ClickHouse/docs/es/changelog/2017.md

262 lines
22 KiB
Markdown
Raw Normal View History

### Lanzamiento de ClickHouse 1.1.54327, 2017-12-21 {#clickhouse-release-1-1-54327-2017-12-21}
Esta versión contiene correcciones de errores para la versión anterior 1.1.54318:
- Se corrigió un error con una posible condición de carrera en la replicación que podría conducir a la pérdida de datos. Este problema afecta a las versiones 1.1.54310 y 1.1.54318. Si utiliza una de estas versiones con tablas replicadas, se recomienda encarecidamente la actualización. Este problema se muestra en los registros en mensajes de advertencia como `Part ... from own log doesn't exist.` El problema es relevante incluso si no ve estos mensajes en los registros.
### Lanzamiento de ClickHouse 1.1.54318, 2017-11-30 {#clickhouse-release-1-1-54318-2017-11-30}
Esta versión contiene correcciones de errores para la versión anterior 1.1.54310:
- Se corrigieron las eliminaciones de filas incorrectas durante las fusiones en el motor SummingMergeTree
- Se corrigió una pérdida de memoria en los motores MergeTree no duplicados
- Se corrigió la degradación del rendimiento con inserciones frecuentes en los motores MergeTree
- Se corrigió un problema que provocaba que la cola de replicación dejara de ejecutarse
- Rotación y archivado fijos de los registros del servidor
### Lanzamiento de ClickHouse 1.1.54310, 2017-11-01 {#clickhouse-release-1-1-54310-2017-11-01}
#### Novedad: {#new-features}
- Clave de partición personalizada para la familia MergeTree de motores de tabla.
- [Kafka](https://clickhouse.yandex/docs/es/operations/table_engines/kafka/) motor de mesa.
- Se agregó soporte para cargar [CatBoost](https://catboost.yandex/) modelos y aplicarlos a los datos almacenados en ClickHouse.
- Se agregó soporte para zonas horarias con desplazamientos no enteros de UTC.
- Se agregó soporte para operaciones aritméticas con intervalos de tiempo.
- El intervalo de valores para los tipos Date y DateTime se extiende hasta el año 2105.
- Se agregó el `CREATE MATERIALIZED VIEW x TO y` Consulta (especifica una tabla existente para almacenar los datos de una vista materializada).
- Se agregó el `ATTACH TABLE` Consulta sin argumentos.
- La lógica de procesamiento para columnas anidadas con nombres que terminan en -Map en una tabla SummingMergeTree se extrajo a la función de agregado sumMap. Ahora puede especificar dichas columnas explícitamente.
- El tamaño máximo del diccionario IP trie se incrementa a 128M entradas.
- Se agregó la función getSizeOfEnumType.
- Se agregó la función agregada sumWithOverflow.
- Se agregó soporte para el formato de entrada Cap'n Proto.
- Ahora puede personalizar el nivel de compresión al usar el algoritmo zstd.
#### Cambios incompatibles hacia atrás: {#backward-incompatible-changes}
- No se permite la creación de tablas temporales con un motor que no sea Memoria.
- No se permite la creación explícita de tablas con el motor View o MaterializedView.
- Durante la creación de la tabla, una nueva comprobación comprueba que la expresión de clave de muestreo está incluida en la clave principal.
#### Corrección de errores: {#bug-fixes}
- Se corrigieron bloqueos al insertar sincrónicamente en una tabla distribuida.
- Se corrigió la adición y eliminación no atómica de partes en tablas replicadas.
- Los datos insertados en una vista materializada no están sujetos a una deduplicación innecesaria.
- La ejecución de una consulta en una tabla distribuida para la que la réplica local está rezagada y las réplicas remotas no están disponibles ya no genera ningún error.
- Los usuarios no necesitan permisos de acceso a la `default` base de datos para crear tablas temporales más.
- Se corrigió el bloqueo al especificar el tipo de matriz sin argumentos.
- Se corrigieron bloqueos cuando el volumen del disco que contiene los registros del servidor está lleno.
- Se corrigió un desbordamiento en la función toRelativeWeekNum para la primera semana de la época de Unix.
#### Mejoras de construcción: {#build-improvements}
- Varias bibliotecas de terceros (especialmente Poco) se actualizaron y convirtieron a submódulos de git.
### Lanzamiento de ClickHouse 1.1.54304, 2017-10-19 {#clickhouse-release-1-1-54304-2017-10-19}
#### Novedad: {#new-features-1}
- Soporte TLS en el protocolo nativo (para habilitar, establecer `tcp_ssl_port` es `config.xml` ).
#### Corrección de errores: {#bug-fixes-1}
- `ALTER` para tablas replicadas ahora intenta comenzar a ejecutarse tan pronto como sea posible.
- Se corrigió el bloqueo al leer datos con la configuración `preferred_block_size_bytes=0.`
- Se corrigieron los bloqueos de `clickhouse-client` al presionar `Page Down`
- Interpretación correcta de ciertas consultas complejas con `GLOBAL IN` y `UNION ALL`
- `FREEZE PARTITION` siempre funciona atómicamente ahora.
- Las solicitudes POST vacías ahora devuelven una respuesta con el código 411.
- Se corrigieron errores de interpretación para expresiones como `CAST(1 AS Nullable(UInt8)).`
- Se ha corregido un error al leer `Array(Nullable(String))` las columnas de `MergeTree` tabla.
- Se corrigió el bloqueo al analizar consultas como `SELECT dummy AS dummy, dummy AS b`
- Los usuarios se actualizan correctamente `users.xml`
- Control correcto cuando un diccionario ejecutable devuelve un código de respuesta distinto de cero.
### Lanzamiento de ClickHouse 1.1.54292, 2017-09-20 {#clickhouse-release-1-1-54292-2017-09-20}
#### Novedad: {#new-features-2}
- Se agregó el `pointInPolygon` función para trabajar con coordenadas en un plano de coordenadas.
- Se agregó el `sumMap` función de agregado para calcular la suma de matrices, similar a `SummingMergeTree`.
- Se agregó el `trunc` función. Rendimiento mejorado de las funciones de redondeo (`round`, `floor`, `ceil`, `roundToExp2`) y corrigió la lógica de cómo funcionan. Cambió la lógica del `roundToExp2` función para fracciones y números negativos.
- El archivo ejecutable ClickHouse ahora depende menos de la versión de libc. El mismo archivo ejecutable ClickHouse se puede ejecutar en una amplia variedad de sistemas Linux. Todavía hay una dependencia al usar consultas compiladas (con la configuración `compile = 1` , que no se usa por defecto).
- Se ha reducido el tiempo necesario para la compilación dinámica de consultas.
#### Corrección de errores: {#bug-fixes-2}
- Se corrigió un error que a veces producía `part ... intersects previous part` mensajes y la coherencia de réplica debilitada.
- Se corrigió un error que causaba que el servidor se bloqueara si ZooKeeper no estaba disponible durante el apagado.
- Se eliminó el registro excesivo al restaurar réplicas.
- Se corrigió un error en la implementación de UNION ALL.
- Se ha corregido un error en la función concat que se producía si la primera columna de un bloque tiene el tipo Array.
- El progreso ahora se muestra correctamente en el sistema.fusiones tabla.
### Lanzamiento de ClickHouse 1.1.54289, 2017-09-13 {#clickhouse-release-1-1-54289-2017-09-13}
#### Novedad: {#new-features-3}
- `SYSTEM` consultas para la administración del servidor: `SYSTEM RELOAD DICTIONARY`, `SYSTEM RELOAD DICTIONARIES`, `SYSTEM DROP DNS CACHE`, `SYSTEM SHUTDOWN`, `SYSTEM KILL`.
- Funciones añadidas para trabajar con matrices: `concat`, `arraySlice`, `arrayPushBack`, `arrayPushFront`, `arrayPopBack`, `arrayPopFront`.
- Añadir `root` y `identity` parámetros para la configuración de ZooKeeper. Esto le permite aislar usuarios individuales en el mismo clúster de ZooKeeper.
- Funciones agregadas añadidas `groupBitAnd`, `groupBitOr`, y `groupBitXor` (por compatibilidad, también están disponibles bajo los nombres `BIT_AND`, `BIT_OR`, y `BIT_XOR`).
- Los diccionarios externos se pueden cargar desde MySQL especificando un socket en el sistema de archivos.
- Los diccionarios externos se pueden cargar desde MySQL a través de SSL (`ssl_cert`, `ssl_key`, `ssl_ca` parámetros).
- Se agregó el `max_network_bandwidth_for_user` para restringir el uso general del ancho de banda para consultas por usuario.
- Soporte para `DROP TABLE` para tablas temporales.
- Soporte para lectura `DateTime` valores en formato de marca de tiempo Unix desde el `CSV` y `JSONEachRow` formato.
- Las réplicas rezagadas en las consultas distribuidas ahora se excluyen de forma predeterminada (el umbral predeterminado es de 5 minutos).
- El bloqueo FIFO se usa durante ALTER: una consulta ALTER no se bloquea indefinidamente para consultas que se ejecutan continuamente.
- Opción para establecer `umask` en el archivo de configuración.
- Rendimiento mejorado para consultas con `DISTINCT` .
#### Corrección de errores: {#bug-fixes-3}
- Se ha mejorado el proceso de eliminación de nodos antiguos en ZooKeeper. Anteriormente, los nodos antiguos a veces no se eliminaban si había inserciones muy frecuentes, lo que hacía que el servidor tardara en apagarse, entre otras cosas.
- Se corrigió la aleatorización al elegir hosts para la conexión a ZooKeeper.
- Se corrigió la exclusión de réplicas rezagadas en consultas distribuidas si la réplica es localhost.
- Se corrigió un error por el que una parte de datos en un `ReplicatedMergeTree` la tabla podría estar rota después de correr `ALTER MODIFY` es un elemento en un `Nested` estructura.
- Se corrigió un error que podía causar que las consultas SELECT “hang”.
- Mejoras en las consultas DDL distribuidas.
- Se corrigió la consulta `CREATE TABLE ... AS <materialized view>`.
- Se resolvió el punto muerto en el `ALTER ... CLEAR COLUMN IN PARTITION` Consulta para `Buffer` tabla.
- Se corrigió el valor predeterminado no válido para `Enum` s (0 en lugar del mínimo) cuando se utiliza el `JSONEachRow` y `TSKV` formato.
- Se resolvió la aparición de procesos zombis al usar un diccionario con un `executable` fuente.
- Se corrigió el segfault para la consulta HEAD.
#### Flujo de trabajo mejorado para desarrollar y ensamblar ClickHouse: {#improved-workflow-for-developing-and-assembling-clickhouse}
- Usted puede utilizar `pbuilder` para construir ClickHouse.
- Usted puede utilizar `libc++` es lugar de `libstdc++` para construir en Linux.
- Se agregaron instrucciones para usar herramientas de análisis de código estático: `Coverage`, `clang-tidy`, `cppcheck`.
#### Tenga en cuenta al actualizar: {#please-note-when-upgrading}
- Ahora hay un valor predeterminado más alto para la configuración MergeTree `max_bytes_to_merge_at_max_space_in_pool` (el tamaño total máximo de las partes de datos a fusionar, en bytes): ha aumentado de 100 GiB a 150 GiB. Esto podría dar lugar a grandes fusiones que se ejecutan después de la actualización del servidor, lo que podría provocar una mayor carga en el subsistema de disco. Si el espacio libre disponible en el servidor es inferior al doble de la cantidad total de las fusiones que se están ejecutando, esto hará que todas las demás fusiones dejen de ejecutarse, incluidas las fusiones de pequeñas partes de datos. Como resultado, las consultas INSERT fallarán con el mensaje “Merges are processing significantly slower than inserts.” Descripción `SELECT * FROM system.merges` consulta para supervisar la situación. También puede comprobar el `DiskSpaceReservedForMerge` métrica en el `system.metrics` mesa, o en Grafito. No necesita hacer nada para solucionar esto, ya que el problema se resolverá una vez que finalicen las fusiones grandes. Si encuentra esto inaceptable, puede restaurar el valor anterior para el `max_bytes_to_merge_at_max_space_in_pool` configuración. Para hacer esto, vaya al <merge_tree> sección en config.xml, establecer ``` <merge_tree>``<max_bytes_to_merge_at_max_space_in_pool>107374182400</max_bytes_to_merge_at_max_space_in_pool> ``` y reinicie el servidor.
### Lanzamiento de ClickHouse 1.1.54284, 2017-08-29 {#clickhouse-release-1-1-54284-2017-08-29}
- Esta es una versión de corrección de errores para la versión anterior 1.1.54282. Corrige fugas en el directorio de piezas en ZooKeeper.
### Lanzamiento de ClickHouse 1.1.54282, 2017-08-23 {#clickhouse-release-1-1-54282-2017-08-23}
Esta versión contiene correcciones de errores para la versión anterior 1.1.54276:
- Fijo `DB::Exception: Assertion violation: !_path.empty()` cuando se inserta en una tabla distribuida.
- Se corrigió el análisis al insertar en formato RowBinary si los datos de entrada comienzan con ;.
- Errores durante la compilación en tiempo de ejecución de ciertas funciones agregadas (por ejemplo, `groupArray()`).
### Clickhouse Lanzamiento 1.1.54276, 2017-08-16 {#clickhouse-release-1-1-54276-2017-08-16}
#### Novedad: {#new-features-4}
- Se agregó una sección WITH opcional para una consulta SELECT. Consulta de ejemplo: `WITH 1+1 AS a SELECT a, a*a`
- INSERT se puede realizar de forma sincrónica en una tabla distribuida: se devuelve OK solo después de guardar todos los datos en todos los fragmentos. Esto se activa mediante la configuración insert\_distributed\_sync=1.
- Se agregó el tipo de datos UUID para trabajar con identificadores de 16 bytes.
- Se agregaron alias de CHAR, FLOAT y otros tipos para compatibilidad con Tableau.
- Se agregaron las funciones aYYYYMM, aYYYYMMDD y aYYYYMMDDhhmmss para convertir el tiempo en números.
- Puede utilizar direcciones IP (junto con el nombre de host) para identificar servidores para consultas DDL en clúster.
- Se agregó soporte para argumentos no constantes y compensaciones negativas en la función `substring(str, pos, len).`
- Se agregó el parámetro max\_size para el `groupArray(max_size)(column)` función agregada, y optimizó su funcionamiento.
#### Principales cambios: {#main-changes}
- Mejoras de seguridad: todos los archivos del servidor se crean con permisos 0640 (se pueden cambiar a través de <umask> parámetro de configuración).
- Mensajes de error mejorados para consultas con sintaxis no válida.
- Se ha reducido significativamente el consumo de memoria y se ha mejorado el rendimiento al combinar grandes secciones de datos de MergeTree.
- Aumentó significativamente el rendimiento de las fusiones de datos para el motor ReplacingMergeTree.
- Mejora del rendimiento de las inserciones asincrónicas de una tabla distribuida mediante la combinación de varias inserciones de origen. Para habilitar esta funcionalidad, utilice la configuración de directorio\_distribuido\_monitor\_batch\_inserts=1.
#### Cambios incompatibles hacia atrás: {#backward-incompatible-changes-1}
- Se ha cambiado el formato binario de los estados agregados de `groupArray(array_column)` funciones para matrices.
#### Lista completa de cambios: {#complete-list-of-changes}
- Se agregó el `output_format_json_quote_denormals` configuración, que permite generar valores nan e inf en formato JSON.
- Asignación de secuencias optimizada al leer desde una tabla distribuida.
- Los ajustes se pueden configurar en modo de solo lectura si el valor no cambia.
- Se agregó la capacidad de recuperar gránulos no enteros del motor MergeTree para cumplir con las restricciones en el tamaño de bloque especificado en la configuración preferred\_block\_size\_bytes. El propósito es reducir el consumo de RAM y aumentar la localidad de caché al procesar consultas desde tablas con columnas grandes.
- Uso eficiente de índices que contienen expresiones como `toStartOfHour(x)` para condiciones como `toStartOfHour(x) op сonstexpr.`
- Se agregaron nuevas configuraciones para los motores MergeTree (la sección merge\_tree en config.XML):
- replicated\_deduplication\_window\_seconds establece el número de segundos permitidos para la deduplicación de inserciones en tablas replicadas.
- cleanup\_delay\_period establece con qué frecuencia iniciar la limpieza para eliminar datos obsoletos.
- replicated\_can\_become\_leader puede evitar que una réplica se convierta en el líder (y asigne fusiones).
- Limpieza acelerada para eliminar datos obsoletos de ZooKeeper.
- Múltiples mejoras y correcciones para consultas DDL en clúster. De particular interés es la nueva configuración distribut\_ddl\_task\_timeout, que limita el tiempo de espera para una respuesta de los servidores en el clúster. Si no se ha realizado una solicitud ddl en todos los hosts, una respuesta contendrá un error de tiempo de espera y una solicitud se ejecutará en modo asíncrono.
- Mejora de la visualización de los rastros de pila en los registros del servidor.
- Se agregó el “none” valor para el método de compresión.
- Puede usar varias secciones dictionaries\_config en config.XML.
- Es posible conectarse a MySQL a través de un socket en el sistema de archivos.
- Sistema.partes tiene una nueva columna con información sobre el tamaño de las marcas, en bytes.
#### Corrección de errores: {#bug-fixes-4}
- Las tablas distribuidas que utilizan una tabla Merge ahora funcionan correctamente para una consulta SELECT con una condición `_table` campo.
- Se corrigió una rara condición de carrera en ReplicatedMergeTree al verificar partes de datos.
- Se corrigió la posible congelación en “leader election” al iniciar un servidor.
- El valor max\_replica\_delay\_for\_distributed\_queries se omitió al usar una réplica local del origen de datos. Esto ha sido solucionado.
- Comportamiento incorrecto fijo de `ALTER TABLE CLEAR COLUMN IN PARTITION` al intentar limpiar una columna no existente.
- Se ha corregido una excepción en la función multiIf al usar matrices o cadenas vacías.
- Se corrigieron asignaciones de memoria excesivas al deserializar el formato nativo.
- Se corrigió la actualización automática incorrecta de los diccionarios Trie.
- Se ha corregido una excepción al ejecutar consultas con una cláusula GROUP BY desde una tabla Merge cuando se usa SAMPLE.
- Se corrigió un bloqueo de GROUP BY cuando se usabaributed\_aggregation\_memory\_efficient = 1.
- Ahora puede especificar la base de datos.es el lado derecho de IN y JOIN.
- Se usaron demasiados subprocesos para la agregación paralela. Esto ha sido solucionado.
- Corregido cómo el “if” funciona con argumentos FixedString.
- SELECT funcionó incorrectamente desde una tabla distribuida para fragmentos con un peso de 0. Esto ha sido solucionado.
- Ejecutar `CREATE VIEW IF EXISTS no longer causes crashes.`
- Se corrigió el comportamiento incorrecto cuando input\_format\_skip\_unknown\_fields = 1 se establece y hay números negativos.
- Se corrigió un bucle infinito en el `dictGetHierarchy()` función si hay algunos datos no válidos en el diccionario.
- Fijo `Syntax error: unexpected (...)` errores al ejecutar consultas distribuidas con subconsultas en una cláusula IN o JOIN y tablas Merge.
- Se corrigió una interpretación incorrecta de una consulta SELECT de tablas de diccionario.
- Se corrigió el “Cannot mremap” error al usar matrices en las cláusulas IN y JOIN con más de 2 mil millones de elementos.
- Se corrigió la conmutación por error para los diccionarios con MySQL como fuente.
#### Flujo de trabajo mejorado para desarrollar y ensamblar ClickHouse: {#improved-workflow-for-developing-and-assembling-clickhouse-1}
- Las construcciones se pueden ensamblar en Arcadia.
- Puedes usar gcc 7 para compilar ClickHouse.
- Las compilaciones paralelas que usan ccache + distcc son más rápidas ahora.
### Lanzamiento de ClickHouse 1.1.54245, 2017-07-04 {#clickhouse-release-1-1-54245-2017-07-04}
#### Novedad: {#new-features-5}
- DDL distribuido (por ejemplo, `CREATE TABLE ON CLUSTER`)
- La consulta replicada `ALTER TABLE CLEAR COLUMN IN PARTITION.`
- El motor para las tablas del diccionario (acceso a los datos del diccionario en forma de tabla).
- Motor de base de datos de diccionario (este tipo de base de datos tiene automáticamente tablas de diccionario disponibles para todos los diccionarios externos conectados).
- Puede comprobar si hay actualizaciones en el diccionario enviando una solicitud al origen.
- Nombres de columna cualificados
- Citando identificadores usando comillas dobles.
- Sesiones en la interfaz HTTP.
- La consulta OPTIMIZE para una tabla replicada puede ejecutarse no solo en el líder.
#### Cambios incompatibles hacia atrás: {#backward-incompatible-changes-2}
- Eliminado SET GLOBAL.
#### Cambios menores: {#minor-changes}
- Ahora, después de activar una alerta, el registro imprime el seguimiento completo de la pila.
- Se relajó la verificación del número de partes de datos dañadas / adicionales al inicio (hubo demasiados falsos positivos).
#### Corrección de errores: {#bug-fixes-5}
- Se corrigió una mala conexión “sticking” cuando se inserta en una tabla distribuida.
- GLOBAL IN ahora funciona para una consulta de una tabla de combinación que mira a una tabla distribuida.
- Se detectó el número incorrecto de núcleos en una máquina virtual de Google Compute Engine. Esto ha sido solucionado.
- Cambios en el funcionamiento de una fuente ejecutable de diccionarios externos en caché.
- Se corrigió la comparación de cadenas que contenían caracteres nulos.
- Se corrigió la comparación de los campos de clave primaria Float32 con constantes.
- Anteriormente, una estimación incorrecta del tamaño de un campo podía conducir a asignaciones demasiado grandes.
- Se corrigió un bloqueo al consultar una columna Nullable agregada a una tabla usando ALTER.
- Se corrigió un bloqueo al ordenar por una columna Nullable, si el número de filas es menor que LIMIT.
- Se corrigió una subconsulta ORDER BY que consistía solo en valores constantes.
- Anteriormente, una tabla replicada podía permanecer en el estado no válido después de un error DROP TABLE.
- Los alias para subconsultas escalares con resultados vacíos ya no se pierden.
- Ahora una consulta que usó compilación no falla con un error si el archivo .so se daña.