mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-18 05:32:52 +00:00
134 KiB
134 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | f865c9653f |
78 | 2018 |
Clickhouse version 18.16
Clickhouse version 18.16.1, 2018-12-21
Corrections de bugs:
- Correction d'une erreur qui a conduit à des problèmes avec la mise à jour des dictionnaires avec la source ODBC. #3825, #3829
- La compilation JIT des fonctions d'agrégat fonctionne maintenant avec des colonnes LowCardinality. #3838
Amélioration:
- Ajouté le
low_cardinality_allow_in_native_format
paramètre enabled (activé, option par défaut). Lorsqu'elles sont désactivées, les colonnes LowCardinality seront converties en colonnes ordinaires pour les requêtes SELECT et les colonnes ordinaires seront attendues pour les requêtes INSERT. #3879
Construire des améliorations:
- Corrections pour les builds sur macOS et ARM.
Clickhouse version 18.16.0, 2018-12-14
Nouveauté:
DEFAULT
les expressions sont évaluées pour les champs manquants lors du chargement de données dans des formats d'entrée semi-structurés (JSONEachRow
,TSKV
). La fonction est activée avec leinsert_sample_with_metadata
paramètre. #3555- Le
ALTER TABLE
la requête a maintenant laMODIFY ORDER BY
action pour changer la clé de tri lors de l'ajout ou de la suppression d'une colonne de table. Ceci est utile pour les tables dans laMergeTree
famille qui effectuent des tâches supplémentaires lors de la fusion en fonction de cette clé de tri, telles queSummingMergeTree
,AggregatingMergeTree
et ainsi de suite. #3581 #3755 - Pour les tableaux dans le
MergeTree
famille, maintenant vous pouvez spécifier une clé de tri différente (ORDER BY
) et de l'indice de (PRIMARY KEY
). La clé de tri peut être plus longue que l'index. #3581 - Ajouté le
hdfs
fonction de table et leHDFS
moteur de table pour l'importation et l'exportation de données vers HDFS. chenxing-xc - Ajout de fonctions pour travailler avec base64:
base64Encode
,base64Decode
,tryBase64Decode
. Alexander Krasheninnikov - Vous pouvez maintenant utiliser un paramètre pour configurer la précision du
uniqCombined
fonction d'agrégation (sélectionnez le nombre de cellules HyperLogLog). #3406 - Ajouté le
system.contributors
table qui contient les noms de tous ceux qui ont fait des commits dans ClickHouse. #3452 - Ajout de la possibilité d'omettre la partition de l'
ALTER TABLE ... FREEZE
requête en vue de sauvegarder toutes les partitions à la fois. #3514 - Ajouter
dictGet
etdictGetOrDefault
fonctions qui ne nécessitent pas de spécifier le type de valeur de retour. Le type est déterminé automatiquement à partir de la description du dictionnaire. Amos Oiseau - Vous pouvez maintenant spécifier des commentaires pour une colonne dans la description de la table et la modifier en utilisant
ALTER
. #3377 - La lecture est prise en charge pour
Join
tapez des tables avec des touches simples. Amos Oiseau - Vous pouvez maintenant spécifier les options
join_use_nulls
,max_rows_in_join
,max_bytes_in_join
, etjoin_overflow_mode
lors de la création d'unJoin
type de table. Amos Oiseau - Ajouté le
joinGet
fonction qui permet d'utiliser unJoin
tapez table comme un dictionnaire. Amos Oiseau - Ajouté le
partition_key
,sorting_key
,primary_key
, etsampling_key
les colonnes de lasystem.tables
table afin de fournir des informations sur les clés de table. #3609 - Ajouté le
is_in_partition_key
,is_in_sorting_key
,is_in_primary_key
, etis_in_sampling_key
les colonnes de lasystem.columns
table. #3609 - Ajouté le
min_time
etmax_time
les colonnes de lasystem.parts
table. Ces colonnes sont remplies lorsque la clé de partitionnement est une expression composée deDateTime
colonne. Emmanuel Donin de Rosière
Corrections de bugs:
- Corrections et améliorations des performances pour
LowCardinality
type de données.GROUP BY
utiliserLowCardinality(Nullable(...))
. Obtenir les valeurs deextremes
. Traitement des fonctions d'ordre Élevé.LEFT ARRAY JOIN
. DistribuéGROUP BY
. Fonctions qui renvoientArray
. L'exécution deORDER BY
. Écrit àDistributed
tableaux (nicelulu). Rétrocompatibilité pourINSERT
requêtes provenant d'anciens clients qui implémententNative
protocole. Soutien pourLowCardinality
pourJOIN
. Amélioration des performances lorsque vous travaillez dans un flux unique. #3823 #3803 #3799 #3769 #3744 #3681 #3651 #3649 #3641 #3632 #3568 #3523 #3518 - Correction de la façon dont le
select_sequential_consistency
l'option fonctionne. Auparavant, lorsque ce paramètre était activé, un résultat incomplet était parfois renvoyé après avoir commencé à écrire sur une nouvelle partition. #2863 - Les bases de données sont correctement spécifiées lors de L'exécution de DDL
ON CLUSTER
les requêtes etALTER UPDATE/DELETE
. #3772 #3460 - Les bases de données sont correctement spécifiées pour les sous-requêtes à l'intérieur d'une vue. #3521
- Correction d'un bug dans
PREWHERE
avecFINAL
pourVersionedCollapsingMergeTree
. 7167bfd7 - Maintenant, vous pouvez utiliser
KILL QUERY
pour annuler les requêtes qui n'ont pas encore démarré car elles attendent que la table soit verrouillée. #3517 - Correction des calculs de date et d'heure si les horloges ont été déplacées à minuit (cela se produit en Iran, et est arrivé à Moscou de 1981 à 1983). Auparavant, cela a conduit à la réinitialisation de l'heure un jour plus tôt que nécessaire, et a également provoqué un formatage incorrect de la date et de l'heure au format texte. #3819
- Correction de bugs dans certains cas, de
VIEW
et les sous-requêtes qui omettent la base de données. L'Hiver Zhang - Correction d'une condition de course lors de la lecture simultanée d'un
MATERIALIZED VIEW
et la suppression d'unMATERIALIZED VIEW
en raison de ne pas verrouiller l'interneMATERIALIZED VIEW
. #3404 #3694 - Correction de l'erreur
Lock handler cannot be nullptr.
#3689 - Correction du traitement des requêtes lorsque le
compile_expressions
option est activée (elle est activée par défaut). Expressions constantes non déterministes comme lenow
fonction ne sont plus déplié. #3457 - Correction d'un plantage lors de la spécification d'un argument d'échelle non constant dans
toDecimal32/64/128
fonction. - Correction d'une erreur lors de l'insertion d'un tableau avec
NULL
éléments dans leValues
formater dans une colonne de typeArray
sansNullable
(siinput_format_values_interpret_expressions
= 1). #3487 #3503 - Fixe continue de journalisation des erreurs dans
DDLWorker
si la Gardienne n'est pas disponible. 8f50c620 - Correction du type de retour pour
quantile*
les fonctions deDate
etDateTime
les types d'arguments. #3580 - Correction de l'
WITH
clause si elle spécifie un alias simple sans expressions. #3570 - Correction du traitement des requêtes avec des sous-requêtes nommées et des noms de colonnes qualifiés lorsque
enable_optimize_predicate_expression
est activé. L'Hiver Zhang - Correction de l'erreur
Attempt to attach to nullptr thread group
lorsque vous travaillez avec des vues matérialisées. Marek Vavruša - Correction d'un plantage lors du passage de certains arguments incorrects
arrayReverse
fonction. 73e3a7b6 - Correction du débordement de tampon dans le
extractURLParameter
fonction. Amélioration de la performance. Ajout d'un traitement correct des chaînes contenant zéro octet. 141e9799 - Dépassement de tampon fixe dans le
lowerUTF8
etupperUTF8
fonction. Retiré la possibilité d'exécuter ces fonctions surFixedString
tapez les arguments. #3662 - Correction d'une condition de course rare lors de la suppression
MergeTree
table. #3680 - Correction d'une condition de course lors de la lecture de
Buffer
tables et effectuer simultanémentALTER
ouDROP
sur les tables cibles. #3719 - Correction d'un segfault si le
max_temporary_non_const_columns
limite a été dépassée. #3788
Amélioration:
- Le serveur n'écrit pas les fichiers de configuration traités
/etc/clickhouse-server/
répertoire. Au lieu de cela, il les enregistre dans lapreprocessed_configs
répertoire à l'intérieurpath
. Cela signifie que l'/etc/clickhouse-server/
répertoire n'ont pas d'accès en écriture pour leclickhouse
de l'utilisateur, ce qui améliore la sécurité. #2443 - Le
min_merge_bytes_to_use_direct_io
l'option est définie sur 10 GiB par défaut. Une fusion qui forme de grandes parties de tables de la famille MergeTree sera effectuée dansO_DIRECT
mode, qui empêche l'expulsion excessive du cache de page. #3504 - Démarrage accéléré du serveur lorsqu'il y a un très grand nombre de tables. #3398
- Ajout d'un pool de connexion et HTTP
Keep-Alive
pour les connexions entre les répliques. #3594 - Si la syntaxe de la requête n'est pas
400 Bad Request
le code est renvoyé dans laHTTP
interface (500 a été retourné précédemment). 31bc680a - Le
join_default_strictness
l'option est définie surALL
par défaut, pour la compatibilité. 120e2cbe - Suppression de la journalisation vers
stderr
à partir de lare2
bibliothèque pour les expressions régulières non valides ou complexes. #3723 - Ajouté pour la
Kafka
moteur de table: vérifie les abonnements avant de commencer à lire à partir de Kafka; le paramètre kafka_max_block_size pour la table. Marek Vavruša - Le
cityHash64
,farmHash64
,metroHash64
,sipHash64
,halfMD5
,murmurHash2_32
,murmurHash2_64
,murmurHash3_32
, etmurmurHash3_64
fonctions maintenant travailler pour n'importe quel nombre d'arguments et des arguments sous la forme de tuples. #3451 #3519 - Le
arrayReverse
fonction fonctionne maintenant avec tous les types de tableaux. 73e3a7b6 - Ajout d'un paramètre optionnel: la taille de l'emplacement pour le
timeSlots
fonction. Kirill Shvakov - Pour
FULL
etRIGHT JOIN
, lemax_block_size
le paramètre est utilisé pour un flux de données non jointes à partir de la table de droite. Amos Oiseau - Ajouté le
--secure
paramètre de ligne de commande dansclickhouse-benchmark
etclickhouse-performance-test
pour activer TLS. #3688 #3690 - Conversion de Type lorsque la structure d'un
Buffer
type table ne correspond pas à la structure de la table de destination. Vitaly Baranov - Ajouté le
tcp_keep_alive_timeout
option pour activer les paquets persistant après une inactivité de l'intervalle de temps spécifié. #3441 - Suppression des guillemets inutiles de valeurs pour la clé de partition dans le
system.parts
le tableau si il se compose d'une seule colonne. #3652 - La fonction modulo fonctionne pour
Date
etDateTime
types de données. #3385 - Ajouté synonymes pour le
POWER
,LN
,LCASE
,UCASE
,REPLACE
,LOCATE
,SUBSTR
, etMID
fonction. #3774 #3763 Certains noms de fonctions sont insensibles à la casse pour la compatibilité avec le standard SQL. Sucre syntaxique ajoutéSUBSTRING(expr FROM start FOR length)
pour la compatibilité avec SQL. #3804 - Ajout de la possibilité de
mlock
pages mémoire correspondant àclickhouse-server
code exécutable pour l'empêcher d'être forcé hors de la mémoire. Cette fonctionnalité est désactivée par défaut. #3553 - Amélioration des performances lors de la lecture de
O_DIRECT
(avec l'min_bytes_to_use_direct_io
option activée). #3405 - Amélioration de la performance de l'
dictGet...OrDefault
fonction pour un argument clé constant et un argument par défaut non constant. Amos Oiseau - Le
firstSignificantSubdomain
la fonction traite maintenant les domainesgov
,mil
, etedu
. Igor Hatarist Amélioration de la performance. #3628 - Possibilité de spécifier des variables d'environnement personnalisées pour le démarrage
clickhouse-server
à l'aide de laSYS-V init.d
script en définissantCLICKHOUSE_PROGRAM_ENV
dans/etc/default/clickhouse
. Pavlo Bashynskyi - Code de retour Correct pour le script d'initialisation clickhouse-server. #3516
- Le
system.metrics
la table a maintenant leVersionInteger
métrique, etsystem.build_options
a la ligne ajoutéeVERSION_INTEGER
, qui contient la forme numérique de la version ClickHouse, telle que18016000
. #3644 - Retiré la possibilité de comparer la
Date
tapez avec un nombre pour éviter les erreurs potentielles commedate = 2018-12-17
, où les citations autour de la date sont omises par erreur. #3687 - Correction du comportement des fonctions avec État comme
rowNumberInAllBlocks
. Ils ont précédemment sorti un résultat qui était un nombre plus grand en raison du démarrage lors de l'analyse de la requête. Amos Oiseau - Si l'
force_restore_data
le fichier ne peut pas être supprimé, un message d'erreur est affiché. Amos Oiseau
Construire des améliorations:
- Mise à jour le
jemalloc
bibliothèque, qui corrige une fuite de mémoire potentielle. Amos Oiseau - Profilage avec
jemalloc
est activé par défaut pour les versions de débogage. 2cc82f5c - Ajout de la possibilité d'exécuter des tests d'intégration lorsque
Docker
est installé sur le système. #3650 - Ajout du test d'expression fuzz dans les requêtes SELECT. #3442
- Ajout d'un test de stress pour les commits, qui effectue des tests fonctionnels en parallèle et dans un ordre aléatoire pour détecter plus de conditions de course. #3438
- Amélioration de la méthode de démarrage de clickhouse-server dans une image Docker. Elghazal Ahmed
- Pour une image Docker, ajout du support pour l'initialisation des bases de données à l'aide de fichiers dans le
/docker-entrypoint-initdb.d
répertoire. Konstantin Lebedev - Corrections pour les builds sur ARM. #3709
Modifications incompatibles en arrière:
- Retiré la possibilité de comparer la
Date
tapez avec un numéro. PlutôttoDate('2018-12-18') = 17883
, vous devez utiliser la conversion de type explicite= toDate(17883)
#3687
Clickhouse version 18.14
Clickhouse version 18.14.19, 2018-12-19
Corrections de bugs:
- Correction d'une erreur qui a conduit à des problèmes avec la mise à jour des dictionnaires avec la source ODBC. #3825, #3829
- Les bases de données sont correctement spécifiées lors de L'exécution de DDL
ON CLUSTER
requête. #3460 - Correction d'un segfault si le
max_temporary_non_const_columns
limite a été dépassée. #3788
Construire des améliorations:
- Corrections pour les builds sur ARM.
Clickhouse version 18.14.18, 2018-12-04
Corrections de bugs:
- Correction d'une erreur dans
dictGet...
fonction pour les dictionnaires de typerange
si un des arguments est constante et l'autre ne l'est pas. #3751 - Correction d'une erreur qui a causé des messages
netlink: '...': attribute type 1 has an invalid length
pour être imprimé dans le journal du noyau Linux, cela ne se passait que sur des versions assez fraîches du noyau Linux. #3749 - Fixe erreur de segmentation en fonction
empty
pour l'argument deFixedString
type. Daniel, Dao Quang Minh - Correction d'une allocation de mémoire excessive lors de l'utilisation d'une grande valeur de
max_query_size
(a la mémoire de morceau demax_query_size
octets a été préalloué à la fois). #3720
Construire des changements:
- Correction de la construction avec les bibliothèques LLVM/Clang de la version 7 à partir des paquets du système D'exploitation (ces bibliothèques sont utilisées pour la compilation de requêtes d'exécution). #3582
Clickhouse version 18.14.17, 2018-11-30
Corrections de bugs:
- Correction de cas où le processus de pont ODBC ne s'est pas terminé avec le processus du serveur principal. #3642
- Insertion synchrone fixe dans le
Distributed
table avec une liste des colonnes qui diffère de la liste des colonnes de la table distante. #3673 - Correction d'une condition de concurrence rare qui peut conduire à un crash lors de la suppression D'une table MergeTree. #3643
- Correction d'un blocage de requête dans le cas où la création de thread de requête échoue avec le
Resource temporarily unavailable
erreur. #3643 - Fixe de l'analyse de l'
ENGINE
clause lorsque leCREATE AS table
la syntaxe a été utilisée etENGINE
la clause a été spécifiée avant leAS table
(l'erreur a entraîné en ignorant le moteur). #3692
Clickhouse version 18.14.15, 2018-11-21
Corrections de bugs:
- La taille du bloc de mémoire a été surestimée lors de la désérialisation de la colonne de type
Array(String)
qui conduit à “Memory limit exceeded” erreur. Le problème est apparu dans la version 18.12.13. #3589
Clickhouse version 18.14.14, 2018-11-20
Corrections de bugs:
- Fixe
ON CLUSTER
requêtes lorsque le cluster est configuré comme sécurisé (indicateur<secure>
). #3599
Construire des changements:
- Correction de problèmes (llvm-7 du système, macos) #3582
Clickhouse version 18.14.13, 2018-11-08
Corrections de bugs:
- Correction de l'
Block structure mismatch in MergingSorted stream
erreur. #3162 - Fixe
ON CLUSTER
requêtes dans le cas où les connexions sécurisées ont été activées dans la configuration du cluster (le<secure>
drapeau). #3465 - Correction d'une erreur dans les requêtes utilisées
SAMPLE
,PREWHERE
et les colonnes alias. #3543 - Correction d'un rare
unknown compression method
erreur lors de lamin_bytes_to_use_direct_io
le réglage a été activé. 3544
Amélioration des performances:
- Régression de performance fixe des requêtes avec
GROUP BY
de colonnes de type UInt16 ou Date lors de l'exécution sur les processeurs AMD EPYC. Igor Lapko - Correction de la régression des performances des requêtes qui traitent les chaînes longues. #3530
Construire des améliorations:
Clickhouse version 18.14.12, 2018-11-02
Corrections de bugs:
- Correction d'un plantage lors de la jonction de deux sous-requêtes sans nom. #3505
- Fixe générant des requêtes incorrectes (avec un vide
WHERE
clause) lors de l'interrogation de bases de données externes. hotid - Correction en utilisant une valeur de délai d'attente incorrecte Dans les dictionnaires ODBC. Marek Vavruša
Clickhouse version 18.14.11, 2018-10-29
Corrections de bugs:
- Correction de l'erreur
Block structure mismatch in UNION stream: different number of columns
dans les requêtes LIMIT. #2156 - Correction d'erreurs lors de la fusion de données dans des tables contenant des tableaux à l'intérieur de structures imbriquées. #3397
- Correction de résultats de requête incorrects si le
merge_tree_uniform_read_distribution
paramètre est désactivé (il est activé par défaut). #3429 - Correction d'une erreur sur les insertions à une table distribuée au format natif. #3411
Clickhouse version 18.14.10, 2018-10-23
- Le
compile_expressions
le paramètre (compilation JIT d'expressions) est désactivé par défaut. #3410 - Le
enable_optimize_predicate_expression
paramètre est désactivé par défaut.
Clickhouse version 18.14.9, 2018-10-16
Nouveauté:
- Le
WITH CUBE
le modificateurGROUP BY
(la syntaxe alternativeGROUP BY CUBE(...)
est également disponible). #3172 - Ajouté le
formatDateTime
fonction. Alexandr Krasheninnikov - Ajouté le
JDBC
tableau moteur etjdbc
fonction table (nécessite l'installation de clickhouse-JDBC-bridge). Alexandr Krasheninnikov - Ajout de fonctions pour travailler avec le numéro de semaine ISO:
toISOWeek
,toISOYear
,toStartOfISOYear
, ettoDayOfYear
. #3146 - Maintenant, vous pouvez utiliser
Nullable
colonnes pourMySQL
etODBC
table. #3362 - Imbriquée structures de données peuvent être lues comme des objets imbriqués dans
JSONEachRow
format. Ajouté leinput_format_import_nested_json
paramètre. Veloman Yunkan - Le traitement parallèle est disponible pour beaucoup
MATERIALIZED VIEW
s lors de l'insertion de données. Voir laparallel_view_processing
paramètre. Marek Vavruša - Ajouté le
SYSTEM FLUSH LOGS
requête (vidage forcé des journaux sur les tables système telles quequery_log
) #3321 - Maintenant, vous pouvez utiliser prédéfinis
database
ettable
macros lors de la déclarationReplicated
table. #3251 - A ajouté la capacité de lire
Decimal
valeurs de type en notation d'ingénierie (indiquant des puissances de dix). #3153
Caractéristiques expérimentales:
- Optimisation de la clause GROUP BY pour
LowCardinality data types.
#3138 - Calcul optimisé des expressions pour
LowCardinality data types.
#3200
Amélioration:
- Consommation de mémoire considérablement réduite pour les requêtes avec
ORDER BY
etLIMIT
. Voir lamax_bytes_before_remerge_sort
paramètre. #3205 - En l'absence de
JOIN
(LEFT
,INNER
, …),INNER JOIN
est supposé. #3147 - Qualifié astérisques fonctionner correctement dans les requêtes avec
JOIN
. L'Hiver Zhang - Le
ODBC
table engine choisit correctement la méthode de citation des identifiants dans le dialecte SQL d'une base de données distante. Alexandr Krasheninnikov - Le
compile_expressions
le paramètre (compilation JIT des expressions) est activé par défaut. - Correction du comportement pour la base de données/TABLE DROP simultanée si existe et créer une base de données/TABLE si N'existe pas. Auparavant, un
CREATE DATABASE ... IF NOT EXISTS
requête peut renvoyer le message d'erreur “File … already exists” et laCREATE TABLE ... IF NOT EXISTS
etDROP TABLE IF EXISTS
les requêtes peuvent revenirTable ... is creating or attaching right now
. #3101 - Les expressions LIKE ET IN avec une moitié droite constante sont passées au serveur distant lors de l'interrogation à partir de tables MySQL ou ODBC. #3182
- Les comparaisons avec des expressions constantes dans une clause WHERE sont transmises au serveur distant lors de l'interrogation à partir de tables MySQL et ODBC. Auparavant, seules les comparaisons avec les constantes étaient passées. #3182
- Calcul Correct de la largeur de ligne dans le terminal pour
Pretty
formats, y compris les chaînes avec des hiéroglyphes. Amos Oiseau. ON CLUSTER
peut être spécifié pourALTER UPDATE
requête.- Amélioration des performances de lecture des données
JSONEachRow
format. #3332 - Ajouté synonymes pour le
LENGTH
etCHARACTER_LENGTH
fonctions de compatibilité. LeCONCAT
la fonction n'est plus sensible à la casse. #3306 - Ajouté le
TIMESTAMP
synonyme de laDateTime
type. #3390 - Il y a toujours de l'espace réservé pour query_id dans les journaux du serveur, même si la ligne de journal n'est pas liée à une requête. Cela facilite l'analyse des journaux de texte du serveur avec des outils tiers.
- La consommation de mémoire par une requête est enregistrée lorsqu'il dépasse le niveau suivant d'un nombre entier de gigaoctets. #3205
- Ajout du mode de compatibilité pour le cas où la bibliothèque cliente qui utilise le protocole natif envoie moins de colonnes par erreur que ce que le serveur attend pour la requête D'insertion. Ce scénario était possible lors de l'utilisation de la bibliothèque clickhouse-cpp. Auparavant, ce scénario provoquait le plantage du serveur. #3171
- Dans une expression WHERE définie par l'utilisateur
clickhouse-copier
vous pouvez maintenant utiliser unpartition_key
alias (pour un filtrage supplémentaire par partition de table source). Ceci est utile si le schéma de partitionnement change pendant la copie, mais ne change que légèrement. #3166 - Le flux de travail du
Kafka
le moteur a été déplacé vers un pool de threads en arrière-plan afin de réduire automatiquement la vitesse de lecture des données à des charges élevées. Marek Vavruša. - Support pour la lecture
Tuple
etNested
valeurs de structures commestruct
dans leCap'n'Proto format
. Marek Vavruša - La liste des domaines de premier niveau pour les
firstSignificantSubdomain
la fonction inclut maintenant le domainebiz
. décaséale - Dans la configuration des dictionnaires externes,
null_value
est interprétée comme la valeur du type de données par défaut. #3330 - Soutien pour le
intDiv
etintDivOrZero
fonctions pourDecimal
. b48402e8 - Soutien pour le
Date
,DateTime
,UUID
, etDecimal
types comme clé pour lesumMap
fonction d'agrégation. #3281 - Soutien pour le
Decimal
type de données dans les dictionnaires externes. #3324 - Soutien pour le
Decimal
type de données dansSummingMergeTree
table. #3348 - Ajouté spécialisations pour
UUID
dansif
. #3366 - Réduit le nombre de
open
etclose
les appels système lors de la lecture d'unMergeTree table
. #3283 - A
TRUNCATE TABLE
requête peut être exécutée sur n'importe quel réplica (la requête est transmise au chef de réplique). Kirill Shvakov
Corrections de bugs:
- Correction d'un problème avec
Dictionary
tables pourrange_hashed
dictionnaire. Cette erreur s'est produite dans la version 18.12.17. #1702 - Correction d'une erreur lors du chargement
range_hashed
les dictionnaires (le messageUnsupported type Nullable (...)
). Cette erreur s'est produite dans la version 18.12.17. #3362 - Corrigé des erreurs dans la
pointInPolygon
fonction due à l'accumulation de calculs inexacts pour les polygones avec un grand nombre de sommets situés à proximité les uns des autres. #3331 #3341 - Si, après la fusion de parties de données, la somme de contrôle de la partie résultante diffère du résultat de la même fusion dans une autre réplique, le résultat de la fusion est supprimé et la partie de données est téléchargée à partir de l'autre réplique (c'est le comportement correct). Mais après avoir téléchargé la partie data, elle n'a pas pu être ajoutée à l'ensemble de travail en raison d'une erreur indiquant que la partie existe déjà (car la partie data a été supprimée avec un certain retard après la fusion). Cela a conduit à cycliques tente de télécharger les mêmes données. #3194
- Correction d'un calcul incorrect de la consommation totale de mémoire par les requêtes (en raison d'un calcul incorrect, le
max_memory_usage_for_all_queries
le réglage n'a pas fonctionné correctement et leMemoryTracking
métrique a une valeur incorrecte). Cette erreur s'est produite dans la version 18.12.13. Marek Vavruša - Correction de la fonctionnalité de
CREATE TABLE ... ON CLUSTER ... AS SELECT ...
Cette erreur s'est produite dans la version 18.12.13. #3247 - Correction de la préparation inutile des structures de données pour
JOIN
s sur le serveur qui initie la requête siJOIN
est effectué uniquement sur des serveurs distants. #3340 - Correction de bugs dans le
Kafka
engine: blocages après les exceptions lors du démarrage de la lecture des données, et verrous à la fin Marek Vavruša. - Pour
Kafka
tableaux, le facultatifschema
le paramètre n'a pas été passé (le schéma duCap'n'Proto
format). Vojtech Splichal - Si L'ensemble des serveurs ZooKeeper a des serveurs qui acceptent la connexion mais la ferment immédiatement au lieu de répondre à la prise de contact, ClickHouse choisit de connecter un autre serveur. Auparavant, cela produisait l'erreur
Cannot read all data. Bytes read: 0. Bytes expected: 4.
et le serveur ne pouvait pas commencer. 8218cf3a - Si L'ensemble des serveurs ZooKeeper contient des serveurs pour lesquels la requête DNS renvoie une erreur, ces serveurs sont ignorés. 17b8e209
- Conversion de type fixe entre
Date
etDateTime
lors de l'insertion de données dans leVALUES
format (siinput_format_values_interpret_expressions = 1
). Auparavant, la conversion était effectuée entre la valeur numérique du nombre de jours dans Unix Epoch time et L'horodatage Unix, ce qui conduisait à des résultats inattendus. #3229 - Conversion de type corrigée entre
Decimal
et des nombres entiers. #3211 - Corrigé des erreurs dans la
enable_optimize_predicate_expression
paramètre. L'Hiver Zhang - Correction d'une erreur D'analyse au format CSV avec des nombres à virgule flottante si un séparateur CSV non par défaut est utilisé, tel que
;
#3155 - Correction de l'
arrayCumSumNonNegative
fonction (il n'accumule pas de valeurs négatives si l'accumulateur est inférieur à zéro). Aleksey Studnev - Fixe comment
Merge
les tables de travail sur le dessus deDistributed
tables lors de l'utilisationPREWHERE
. #3165 - Corrections de bugs dans l'
ALTER UPDATE
requête. - Correction de bugs dans le
odbc
fonction de table apparue dans la version 18.12. #3197 - Correction du fonctionnement des fonctions d'agrégat avec
StateArray
combinators. #3188 - Correction d'un crash lors de la division d'une
Decimal
valeur par zéro. 69dd6609 - Sortie fixe des types pour les opérations utilisant
Decimal
et des arguments entiers. #3224 - Correction du segfault pendant
GROUP BY
surDecimal128
. 3359ba06 - Le
log_query_threads
le paramètre (journalisation des informations sur chaque thread d'exécution de la requête) ne prend effet que silog_queries
l'option (journalisation des informations sur les requêtes) est définie sur 1. Depuis lelog_query_threads
l'option est activée par défaut, les informations sur les threads ont déjà été enregistrées même si la journalisation des requêtes a été désactivée. #3241 - Correction d'une erreur dans le fonctionnement distribué de la fonction d'agrégat quantiles (le message d'erreur
Not found column quantile...
). 292a8855 - Correction du problème de compatibilité lorsque vous travaillez sur un cluster de serveurs de version 18.12.17 et de serveurs plus anciens en même temps. Pour les requêtes distribuées avec des clés GROUP BY de longueur fixe et non fixe, s'il y avait une grande quantité de données à agréger, les données renvoyées n'étaient pas toujours entièrement agrégées (deux lignes différentes contenaient les mêmes clés d'agrégation). #3254
- Manipulation fixe des substitutions dans
clickhouse-performance-test
si la requête ne contient qu'une partie des substitutions déclaré dans le test. #3263 - Correction d'une erreur lors de l'utilisation
FINAL
avecPREWHERE
. #3298 - Correction d'une erreur lors de l'utilisation
PREWHERE
sur les colonnes qui ont été ajoutées pendantALTER
. #3298 - Ajout d'une vérification de l'absence de
arrayJoin
pourDEFAULT
etMATERIALIZED
expression. Précédemment,arrayJoin
conduit à une erreur lors de l'insertion de données. #3337 - Ajout d'une vérification de l'absence de
arrayJoin
dans unPREWHERE
clause. Auparavant, cela a conduit à des messages commeSize ... doesn't match
ouUnknown compression method
lors de l'exécution de requêtes. #3357 - Correction de segfault qui pourrait se produire dans de rares cas après l'optimisation qui a remplacé et chaînes des évaluations d'égalité avec l'expression IN correspondante. liuyimin-bytedance
- Corrections mineures à
clickhouse-benchmark
: auparavant, les informations client n'étaient pas envoyées au serveur; maintenant, le nombre de requêtes exécutées est calculé plus précisément lors de l'arrêt et pour limiter le nombre d'itérations. #3351 #3352
Modifications incompatibles en arrière:
- Enlevé le
allow_experimental_decimal_type
option. LeDecimal
type de données est disponible pour utilisation par défaut. #3329
Clickhouse Version 18.12
Clickhouse version 18.12.17, 2018-09-16
Nouveauté:
invalidate_query
(la possibilité de spécifier une requête pour vérifier si un dictionnaire externe doit être mis à jour) est implémentée pourclickhouse
source. #3126- Ajout de la possibilité d'utiliser
UInt*
,Int*
, etDateTime
types de données (avec leDate
le type) comme unrange_hashed
clé de dictionnaire externe qui définit les limites des plages. MaintenantNULL
peut être utilisé pour désigner un intervalle ouvert. Vasily Nemkov - Le
Decimal
type prend maintenant en chargevar*
etstddev*
les fonctions d'agrégation. #3129 - Le
Decimal
type prend désormais en charge les fonctions mathématiques (exp
,sin
et ainsi de suite.) #3129 - Le
system.part_log
la table a maintenant lepartition_id
colonne. #3089
Corrections de bugs:
Merge
fonctionne maintenant correctement surDistributed
table. L'Hiver Zhang- Incompatibilité fixe (dépendance inutile sur le
glibc
version) qui a rendu impossible l'exécution de ClickHouse surUbuntu Precise
et les anciennes versions. L'incompatibilité est apparue dans la version 18.12.13. #3130 - Corrigé des erreurs dans la
enable_optimize_predicate_expression
paramètre. L'Hiver Zhang - Correction d'un problème mineur de rétrocompatibilité apparu lors de l'utilisation d'un cluster de répliques sur des versions antérieures au 18.12.13 et de la création simultanée d'une nouvelle réplique d'une table sur un serveur avec une version plus récente (indiquée dans le message
Can not clone replica, because the ... updated to new ClickHouse version
, ce qui est logique, mais ne devrait pas arriver). #3122
Modifications incompatibles en arrière:
- Le
enable_optimize_predicate_expression
option est activée par défaut (ce qui est plutôt optimiste). Si des erreurs d'analyse de requête se produisent liées à la recherche des noms de colonnes, définissezenable_optimize_predicate_expression
à 0. L'Hiver Zhang
Clickhouse version 18.12.14, 2018-09-13
Nouveauté:
- Ajout du support pour
ALTER UPDATE
requête. #3035 - Ajouté le
allow_ddl
option, qui limite l'accès de L'utilisateur aux requêtes DDL. #3104 - Ajouté le
min_merge_bytes_to_use_direct_io
option pourMergeTree
moteurs, qui vous permet de définir un seuil pour la taille totale de la fusion (quand au-dessus du seuil, les fichiers de partie de données seront traités en utilisant O_DIRECT). #3117 - Le
system.merges
la table système contient maintenantpartition_id
colonne. #3099
Amélioration
- Si une partie de données reste inchangée pendant la mutation, elle n'est pas téléchargée par les répliques. #3103
- La saisie semi-automatique est disponible pour les noms de paramètres lorsque vous travaillez avec
clickhouse-client
. #3106
Corrections de bugs:
- Ajouter un chèque pour les montants des tableaux sont des éléments de
Nested
les champs de type lors de l'insertion. #3118 - Correction d'une erreur de mise à jour des dictionnaires externes
ODBC
source ethashed
stockage. Cette erreur s'est produite dans la version 18.12.13. - Correction d'un plantage lors de la création d'une table temporaire à partir d'une requête
IN
condition. L'Hiver Zhang - Correction d'une erreur dans les fonctions d'agrégation pour les tableaux peuvent avoir
NULL
élément. L'Hiver Zhang
Clickhouse version 18.12.13, 2018-09-10
Nouveauté:
- Ajouté le
DECIMAL(digits, scale)
type de données (Decimal32(scale)
,Decimal64(scale)
,Decimal128(scale)
). Pour l'activer, utilisez le paramètreallow_experimental_decimal_type
. #2846 #2970 #3008 #3047 - Nouveau
WITH ROLLUP
le modificateurGROUP BY
(syntaxe alternative:GROUP BY ROLLUP(...)
). #2948 - Dans les requêtes avec jointure, le caractère étoile se développe en une liste de colonnes dans toutes les tables, conformément à la norme SQL. Vous pouvez restaurer l'ancien comportement en paramètre
asterisk_left_columns_only
à 1 au niveau de la configuration utilisateur. L'Hiver Zhang - Ajout du support pour joindre avec les fonctions de table. L'Hiver Zhang
- Saisie semi-automatique en appuyant sur Tab dans clickhouse-client. Sergey Shcherbin
- Ctrl + C dans clickhouse-client efface une requête qui a été entrée. #2877
- Ajouté le
join_default_strictness
paramètre (valeurs:"
,'any'
,'all'
). Cela vous permet de ne pas préciserANY
ouALL
pourJOIN
. #2982 - Chaque ligne du journal du serveur associée au traitement de la requête affiche L'ID de la requête. #2482
- Maintenant, vous pouvez obtenir des journaux d'exécution de requête dans clickhouse-client (utilisez le
send_logs_level
paramètre). Avec le traitement des requêtes distribuées, les journaux sont cascadés à partir de tous les serveurs. #2482 - Le
system.query_log
etsystem.processes
(SHOW PROCESSLIST
les tableaux ont maintenant des informations sur tous les paramètres modifiés lorsque vous exécutez une requête (la structure imbriquée de l'Settings
données). Ajouté lelog_query_settings
paramètre. #2482 - Le
system.query_log
etsystem.processes
les tables affichent désormais des informations sur le nombre de threads participant à l'exécution de la requête (voirthread_numbers
colonne). #2482 - Ajouter
ProfileEvents
compteurs qui mesurent le temps passé à lire et à écrire sur le réseau et à lire et à écrire sur le disque, le nombre d'erreurs réseau et le temps passé à attendre lorsque la bande passante réseau est limitée. #2482 - Ajouter
ProfileEvents
compteurs qui contiennent les métriques système de rusage (vous pouvez les utiliser pour obtenir des informations sur L'utilisation du processeur dans l'espace utilisateur et le noyau, les erreurs de page et les commutateurs de contexte), ainsi que les métriques taskstats (utilisez-les pour obtenir des informations sur le temps d'attente d'E/S, le temps D'attente du processeur et #2482 - Le
ProfileEvents
les compteurs sont appliqués globalement et pour chaque requête, ainsi que pour chaque thread d'exécution de requête, ce qui vous permet de profiler la consommation de ressources par requête en détail. #2482 - Ajouté le
system.query_thread_log
table, qui contient des informations sur chaque thread d'exécution de requête. Ajouté lelog_query_threads
paramètre. #2482 - Le
system.metrics
etsystem.events
les tables ont maintenant une documentation intégrée. #3016 - Ajouté le
arrayEnumerateDense
fonction. Amos Oiseau - Ajouté le
arrayCumSumNonNegative
etarrayDifference
fonction. Aleksey Studnev - Ajouté le
retention
fonction d'agrégation. Sundy Li - Vous pouvez maintenant ajouter (fusionner) des états de fonctions d'agrégat en utilisant l'opérateur plus et multiplier les états de fonctions d'agrégat par une constante non négative. #3062 #3034
- Les Tables de la famille MergeTree ont maintenant la colonne virtuelle
_partition_id
. #3089
Caractéristiques expérimentales:
- Ajouté le
LowCardinality(T)
type de données. Ce type de données crée automatiquement un dictionnaire local de valeurs et permet le traitement des données sans déballer le dictionnaire. #2830 - Ajout d'un cache de fonctions compilées JIT et d'un compteur pour le nombre d'utilisations avant la compilation. Pour compiler des expressions JIT, activez
compile_expressions
paramètre. #2990 #3077
Amélioration:
- Correction du problème avec l'accumulation illimitée du journal de réplication quand il y a des répliques abandonnées. Ajout d'un mode de récupération efficace pour les répliques avec un long décalage.
- Amélioration des performances de
GROUP BY
avec l'agrégation de plusieurs champs lorsque l'un d'eux est une chaîne et les autres sont de longueur fixe. - Amélioration des performances lors de l'utilisation
PREWHERE
et avec transfert implicite d'expressions dansPREWHERE
. - Amélioration des performances d'analyse pour les formats de texte (
CSV
,TSV
). Amos Oiseau #2980 - Amélioration des performances de lecture des chaînes et des tableaux dans les formats binaires. Amos Oiseau
- Augmentation des performances et réduction de la consommation de mémoire pour les requêtes
system.tables
etsystem.columns
quand il y a un très grand nombre de tables sur un seul serveur. #2953 - Correction d'un problème de performances dans le cas d'un grand flux de requêtes résultant en une erreur (la
_dl_addr
la fonction est visible dansperf top
mais le serveur n'utilise pas beaucoup de CPU). #2938 - Les Conditions sont converties dans la vue (lorsque
enable_optimize_predicate_expression
est activé). L'Hiver Zhang - Améliorations de la fonctionnalité pour le
UUID
type de données. #3074 #2985 - Le
UUID
le type de données est pris en charge dans les dictionnaires-Alchemist. #2822 - Le
visitParamExtractRaw
la fonction fonctionne correctement avec les structures imbriquées. L'Hiver Zhang - Lorsque l'
input_format_skip_unknown_fields
paramètre est activé, les champs d'objet dansJSONEachRow
format sont ignorés correctement. BlahGeek - Pour un
CASE
expression avec conditions, vous pouvez maintenant omettreELSE
, ce qui est équivalent àELSE NULL
. #2920 - Le délai d'attente de l'opération peut maintenant être configuré lorsque vous travaillez avec ZooKeeper. urykhy
- Vous pouvez spécifier un décalage pour
LIMIT n, m
commeLIMIT n OFFSET m
. #2840 - Vous pouvez utiliser l'
SELECT TOP n
syntaxe comme alternative pourLIMIT
. #2840 - Augmentation de la taille de la file d'attente pour écrire dans les tables
SystemLog parameter queue is full
l'erreur ne se produit pas aussi souvent. - Le
windowFunnel
fonction d'agrégation prend désormais en charge les événements qui répondent à plusieurs conditions. Amos Oiseau - Les colonnes dupliquées peuvent être utilisées dans un
USING
la clause deJOIN
. #3006 Pretty
formats maintenant avoir une limite sur l'alignement des colonnes de largeur. L'utilisation de laoutput_format_pretty_max_column_pad_width
paramètre. Si une valeur est plus large, il sera toujours affichée dans son intégralité, mais les autres cellules dans le tableau ne sera pas trop large. #3003- Le
odbc
la fonction table vous permet maintenant de spécifier le nom de la base de données / schéma. Amos Oiseau - Ajout de la possibilité d'utiliser un nom d'utilisateur spécifié dans le
clickhouse-client
fichier de configuration. Vladimir Kozbin - Le
ZooKeeperExceptions
compteur a été divisé en trois compteurs:ZooKeeperUserExceptions
,ZooKeeperHardwareExceptions
, etZooKeeperOtherExceptions
. ALTER DELETE
les requêtes fonctionnent pour les vues matérialisées.- Ajouté randomisation lors de l'exécution du thread de nettoyage périodiquement pour
ReplicatedMergeTree
afin d'éviter les pics de charge périodiques lorsqu'il y a un très grand nombre deReplicatedMergeTree
table. - Soutien pour
ATTACH TABLE ... ON CLUSTER
requête. #3025
Corrections de bugs:
- Correction d'un problème avec
Dictionary
tables (jette leSize of offsets doesn't match size of column
ouUnknown compression method
exception). Ce bug est apparu dans la version 18.10.3. #2913 - Correction d'un bug lors de la fusion
CollapsingMergeTree
tables si l'une des parties de données est vide (ces parties sont formées lors de la fusion ouALTER DELETE
si toutes les données ont été supprimées), et levertical
l'algorithme a été utilisé pour la fusion. #3049 - Correction d'une condition de course pendant
DROP
ouTRUNCATE
pourMemory
tables simultanémentSELECT
, ce qui pourrait conduire à des pannes de serveur. Ce bug est apparu dans la version 1.1.54388. #3038 - Correction de la possibilité de perte de données lors de l'insertion dans
Replicated
des tables, si laSession is expired
l'erreur est renvoyée (la perte de données peut être détectée par leReplicatedDataLoss
métrique). Cette erreur s'est produite dans la version 1.1.54378. #2939 #2949 #2964 - Correction d'un segfault pendant
JOIN ... ON
. #3000 - Correction de l'erreur de recherche des noms de colonne lorsque le
WHERE
expression se compose entièrement d'un nom de colonne qualifié, tel queWHERE table.column
. #2994 - Correction de l' “Not found column” erreur survenue lors de l'exécution de requêtes distribuées si une seule colonne composée d'une expression avec une sous-requête est demandée à partir d'un serveur distant. #3087
- Correction de l'
Block structure mismatch in UNION stream: different number of columns
erreur qui s'est produite pour les requêtes distribuées si l'un des fragments est locale et l'autre ne l'est pas, et l'optimisation de la déplacer àPREWHERE
est déclenchée. #2226 #3037 #3055 #3065 #3073 #3090 #3093 - Correction de l'
pointInPolygon
fonction pour certains cas de polygones non convexes. #2910 - Correction du résultat incorrect lors de la comparaison
nan
avec des entiers. #3024 - Correction d'une erreur dans le
zlib-ng
bibliothèque qui pourrait conduire à segfault dans de rares cas. #2854 - Correction d'une fuite de mémoire lors de l'insertion dans une table avec
AggregateFunction
colonnes, si l'état de la fonction d'agrégat n'est pas simple (alloue la mémoire séparément), et si une seule demande d'insertion entraîne plusieurs petits blocs. #3084 - Correction d'une condition de concurrence lors de la création et la suppression de la même
Buffer
ouMergeTree
table en même temps. - Correction de la possibilité d'un segfault lors de la comparaison des tuples constitués de certains types non triviaux, tels que les tuples. #2989
- Correction de la possibilité d'un segfault lors de l'exécution de certains
ON CLUSTER
requête. L'Hiver Zhang - Correction d'une erreur dans le
arrayDistinct
fonction pourNullable
les éléments du tableau. #2845 #2937 - Le
enable_optimize_predicate_expression
option prend en charge correctement les cas avecSELECT *
. L'Hiver Zhang - Correction du segfault lors de la réinitialisation de la session ZooKeeper. #2917
- Blocage potentiel fixe lorsque vous travaillez avec ZooKeeper.
- Correction d'un code incorrect pour ajouter des structures de données imbriquées dans un
SummingMergeTree
. - Lors de l'allocation de mémoire pour les états de fonctions d'agrégat, l'alignement est correctement pris en compte, ce qui permet d'utiliser des opérations nécessitant un alignement lors de la mise en œuvre des états de fonctions d'agrégat. chenxing-xc
Correction de sécurité:
- Utilisation sûre des sources de données ODBC. L'Interaction avec les pilotes ODBC utilise un
clickhouse-odbc-bridge
processus. Les erreurs dans les pilotes ODBC tiers ne causent plus de problèmes de stabilité du serveur ou de vulnérabilités. #2828 #2879 #2886 #2893 #2921 - Correction d'une validation incorrecte du chemin du fichier dans le
catBoostPool
table de fonction. #2894 - Le contenu des tableaux du système (
tables
,databases
,parts
,columns
,parts_columns
,merges
,mutations
,replicas
, etreplication_queue
) sont filtrés en fonction de l'accès configuré de l'utilisateur aux bases de données (allow_databases
). L'Hiver Zhang
Modifications incompatibles en arrière:
- Dans les requêtes avec jointure, le caractère étoile se développe en une liste de colonnes dans toutes les tables, conformément à la norme SQL. Vous pouvez restaurer l'ancien comportement en paramètre
asterisk_left_columns_only
à 1 au niveau de la configuration utilisateur.
Construire des changements:
- La plupart des tests d'intégration peuvent maintenant être exécutés par commit.
- Les contrôles de style de Code peuvent également être exécutés par commit.
- Le
memcpy
l'implémentation est choisie correctement lors de la construction sur CentOS7/Fedora. Etienne Champetier - Lorsque vous utilisez clang pour construire, certains avertissements de
-Weverything
ont été ajoutées, en plus de la-Wall-Wextra -Werror
. #2957 - Débogage de la construction utilise le
jemalloc
option de débogage. - L'interface de la bibliothèque pour interagir avec ZooKeeper est déclarée abstraite. #2950
Clickhouse version 18.10
Clickhouse version 18.10.3, 2018-08-13
Nouveauté:
- HTTPS peut être utilisé pour la réplication. #2760
- Ajout des fonctions
murmurHash2_64
,murmurHash3_32
,murmurHash3_64
, etmurmurHash3_128
en plus de l'existantmurmurHash2_32
. #2791 - Prise en charge des types Nullable dans le pilote ODBC ClickHouse (
ODBCDriver2
le format de sortie). #2834 - Soutien pour
UUID
dans les colonnes de clé.
Amélioration:
- Les Clusters peuvent être supprimés sans redémarrer le serveur lorsqu'ils sont supprimés des fichiers de configuration. #2777
- Les dictionnaires externes peuvent être supprimés sans redémarrer le serveur lorsqu'ils sont supprimés des fichiers de configuration. #2779
- Ajouter
SETTINGS
soutien pour leKafka
tableau moteur. Alexander Marshalov - Des améliorations pour l'
UUID
type de données (pas encore terminée). #2618 - Prise en charge des pièces vides après fusion dans le
SummingMergeTree
,CollapsingMergeTree
etVersionedCollapsingMergeTree
moteur. #2815 - Les anciens enregistrements de mutations terminées sont supprimés (
ALTER DELETE
). #2784 - Ajouté le
system.merge_tree_settings
table. Kirill Shvakov - Le
system.tables
la table a maintenant des colonnes de dépendance:dependencies_database
etdependencies_table
. L'Hiver Zhang - Ajouté le
max_partition_size_to_drop
option de configuration. #2782 - Ajouté le
output_format_json_escape_forward_slashes
option. Alexandre Botcharov - Ajouté le
max_fetch_partition_retries_count
paramètre. #2831 - Ajouté le
prefer_localhost_replica
paramètre permettant de désactiver la préférence pour une réplique locale et d'accéder à une réplique locale sans interaction entre processus. #2832 - Le
quantileExact
fonction d'agrégation retournenan
dans le cas de l'agrégation sur un videFloat32
ouFloat64
définir. Sundy Li
Corrections de bugs:
- Suppression de l'échappement inutile des paramètres de chaîne de connexion pour ODBC, ce qui rendait impossible l'établissement d'une connexion. Cette erreur s'est produite dans la version 18.6.0.
- Fixe la logique de traitement
REPLACE PARTITION
les commandes dans la file d'attente de réplication. Si il y a deuxREPLACE
pour la même partition, la logique incorrecte pourrait entraîner l'un d'entre eux de rester dans la file d'attente de réplication et ne pas être exécuté. #2814 - Correction d'un bug de fusion lorsque toutes les parties de données étaient vides (parties formées à partir d'une fusion ou
ALTER DELETE
si toutes les données ont été supprimées). Ce bug est apparu dans la version 18.1.0. #2930 - Correction d'une erreur pour simultanées
Set
ouJoin
. Amos Oiseau - Correction de l'
Block structure mismatch in UNION stream: different number of columns
erreur qui s'est produite pourUNION ALL
requêtes dans une sous-requête si l'un desSELECT
les requêtes contiennent des noms de colonnes en double. L'Hiver Zhang - Correction d'une fuite de mémoire si une exception se produisait lors de la connexion à un serveur MySQL.
- Correction d'un code de réponse clickhouse-client incorrect en cas d'erreur de requête.
- Correction d'un comportement incorrect des vues matérialisées contenant DISTINCT. #2795
Modifications incompatibles en arrière
- Suppression de la prise en charge des requêtes CHECK TABLE pour les tables distribuées.
Construire des changements:
- L'allocateur a été remplacé:
jemalloc
est maintenant utilisé à la place detcmalloc
. Dans certains scénarios, cela augmente la vitesse jusqu'à 20%. Cependant, il y a des questions qui ont ralenti jusqu'à 20%. La consommation de mémoire a été réduite d'environ 10% dans certains scénarios, avec une meilleure stabilité. Avec des charges très compétitives, l'utilisation du processeur dans l'espace utilisateur et dans le système ne montre qu'une légère augmentation. #2773 - L'utilisation de libressl à partir d'un sous-module. #1983 #2807
- Utilisation d'unixodbc à partir d'un sous-module. #2789
- L'utilisation de mariadb-connecteur-c à partir d'un sous-module. #2785
- Ajout de fichiers de test fonctionnels au référentiel qui dépendent de la disponibilité des données de test (pour le moment, sans les données de test elles-mêmes).
Clickhouse version 18.6
Clickhouse version 18.6.0, 2018-08-02
Nouveauté:
- Ajout du support pour les expressions on pour la syntaxe JOIN ON:
JOIN ON Expr([table.]column ...) = Expr([table.]column, ...) [AND Expr([table.]column, ...) = Expr([table.]column, ...) ...]
L'expression doit être une chaîne d'égalités rejoint par l'opérateur ET. De chaque côté de l'égalité peut être une expression arbitraire sur les colonnes de l'une des tables. L'utilisation de noms de colonnes entièrement qualifiés est prise en charge (table.name
,database.table.name
,table_alias.name
,subquery_alias.name
) pour la bonne table. #2742 - HTTPS peut être activé pour la réplication. #2760
Amélioration:
- Le serveur transmet le composant patch de sa version au client. Les données sur le composant de version de correctif sont
system.processes
etquery_log
. #2646
Clickhouse version 18.5
Clickhouse version 18.5.1, 2018-07-31
Nouveauté:
- Ajout de la fonction de hachage
murmurHash2_32
#2756.
Amélioration:
- Maintenant, vous pouvez utiliser le
from_env
#2741 attribut pour définir des valeurs dans les fichiers de configuration à partir de variables d'environnement. - Ajout de versions insensibles à la casse
coalesce
,ifNull
, etnullIf functions
#2752.
Corrections de bugs:
- Correction d'un bug possible lors du démarrage d'une réplique #2759.
Clickhouse version 18.4
Clickhouse version 18.4.0, 2018-07-28
Nouveauté:
- Tables système ajoutées:
formats
,data_type_families
,aggregate_function_combinators
,table_functions
,table_engines
,collations
#2721. - Ajout de la possibilité d'utiliser une fonction de table au lieu d'un tableau en argument d'une
remote
oucluster table function
#2708. - Soutien pour
HTTP Basic
l'authentification dans le protocole de réplication #2727. - Le
has
fonction permet de rechercher une valeur numérique dans un tableau deEnum
valeur Maxim Khrisanfov. - Prise en charge de l'ajout de séparateurs de messages arbitraires lors de la lecture de
Kafka
Amos Oiseau.
Amélioration:
- Le
ALTER TABLE t DELETE WHERE
la requête ne réécrit pas les parties de données qui n'ont pas été affectées par la condition WHERE #2694. - Le
use_minimalistic_checksums_in_zookeeper
option pourReplicatedMergeTree
des tables est activé par défaut. Ce paramètre a été ajouté dans la version 1.1.54378, 2018-04-16. Les Versions antérieures à 1.1.54378 ne peuvent plus être installées. - La prise en charge de
KILL
etOPTIMIZE
requêtes qui spécifientON CLUSTER
L'Hiver Zhang.
Corrections de bugs:
- Correction de l'erreur
Column ... is not under an aggregate function and not in GROUP BY
pour l'agrégation avec une expression. Ce bug est apparu dans la version 18.1.0. (bbdd780b) - Correction d'un bug dans l'
windowFunnel aggregate function
L'Hiver Zhang. - Correction d'un bug dans l'
anyHeavy
fonction d'agrégation (a2101df2) - Correction d'un crash du serveur lors de l'utilisation du
countArray()
fonction d'agrégation.
Modifications incompatibles en arrière:
- Paramètres pour
Kafka
moteur a été changé deKafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_schema, kafka_num_consumers])
deKafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_row_delimiter, kafka_schema, kafka_num_consumers])
. Si vos tables utilisentkafka_schema
oukafka_num_consumers
paramètres, vous devez modifier manuellement les fichiers de métadonnéespath/metadata/database/table.sql
et d'ajouterkafka_row_delimiter
paramètre avec''
valeur.
Clickhouse version 18.1
Clickhouse version 18.1.0, 2018-07-23
Nouveauté:
- Soutien pour le
ALTER TABLE t DELETE WHERE
requête pour les tables MergeTree non répliquées (#2634). - Prise en charge des types arbitraires pour
uniq*
famille de fonctions agrégées (#2010). - Prise en charge des types arbitraires dans les opérateurs de comparaison (#2026).
- Le
users.xml
fichier permet de définir un masque de sous-réseau au format10.0.0.1/255.255.255.0
. Ceci est nécessaire pour utiliser des masques pour les réseaux IPv6 avec des zéros au milieu (#2637). - Ajouté le
arrayDistinct
fonction (#2670). - Le moteur SummingMergeTree peut maintenant fonctionner avec des colonnes de type AggregateFunction (Constantin S. Pan).
Amélioration:
- Modification du schéma de numérotation pour les versions de version. Maintenant, la première partie contient l'année de sortie (A. D., fuseau horaire de Moscou, moins 2000), la deuxième partie contient le nombre de changements majeurs (augmente pour la plupart des versions), et la troisième partie est la version patch. Les versions sont toujours rétrocompatibles, sauf indication contraire dans le changelog.
- Conversions plus rapides de nombres à virgule flottante en une chaîne (Amos Oiseau).
- Si certaines lignes ont été ignorées lors d'une insertion en raison d'erreurs d'analyse (ceci est possible avec
input_allow_errors_num
etinput_allow_errors_ratio
paramètres activé), le nombre de lignes ignorées est maintenant écrit dans le journal du serveur (Leonardo Cecchi).
Corrections de bugs:
- Correction de la commande TRUNCATE pour les tables temporaires (Amos Oiseau).
- Correction d'une impasse rare dans la bibliothèque client ZooKeeper qui se produisait lorsqu'une erreur réseau se produisait lors de la lecture de la réponse (c315200).
- Correction d'une erreur lors d'une conversion en types Nullable (#1322).
- Correction du résultat incorrect de l'
maxIntersection()
fonction lorsque les limites des intervalles de coïncidé (Michael Furmur). - Correction d'une transformation incorrecte de la chaîne d'expression OR dans un argument de fonction (chenxing-xc).
- Fixe une dégradation des performances pour les requêtes contenant
IN (subquery)
expressions à l'intérieur d'une autre sous-requête (#2571). - Fixe incompatibilité entre les serveurs avec des versions différentes requêtes distribuées qui utilisent un
CAST
fonction qui n'est pas en majuscules (fe8c4d6). - Ajout de guillemets manquants d'identifiants pour les requêtes à un SGBD externe (#2635).
Modifications incompatibles en arrière:
- La conversion d'une chaîne contenant le nombre zéro en DateTime ne fonctionne pas. Exemple:
SELECT toDateTime('0')
. C'est aussi la raison pour laquelleDateTime DEFAULT '0'
ne fonctionne pas dans les tableaux, ainsi que<null_value>0</null_value>
dans les dictionnaires. Solution: remplacer0
avec0000-00-00 00:00:00
.
Clickhouse version 1.1
Clickhouse version 1.1.54394, 2018-07-12
Nouveauté:
- Ajouté le
histogram
fonction d'agrégation (Mikhail Surin). - Maintenant
OPTIMIZE TABLE ... FINAL
peut être utilisé sans spécifier de partitions pourReplicatedMergeTree
(Amos Oiseau).
Corrections de bugs:
- Correction d'un problème avec un très petit délai d'attente pour les sockets (une seconde) pour la lecture et l'écriture lors de l'envoi et du téléchargement de données répliquées, ce qui rendait impossible le téléchargement de pièces plus grandes s'il y avait une charge sur le réseau ou le disque (cela entraînait des tentatives cycliques de téléchargement de pièces). Cette erreur s'est produite dans la version 1.1.54388.
- Correction de problèmes lors de l'utilisation de chroot dans ZooKeeper si vous avez inséré des blocs de données en double dans la table.
- Le
has
la fonction fonctionne maintenant correctement pour un tableau avec les valeurs null éléments (#2115). - Le
system.tables
table fonctionne maintenant correctement lorsqu'il est utilisé dans les requêtes distribuées. Lemetadata_modification_time
etengine_full
les colonnes sont maintenant non-virtuel. Correction d'une erreur qui s'est produite si seules ces colonnes étaient interrogées à partir de la table. - Correction de la façon dont un vide
TinyLog
table fonctionne après l'insertion d'un bloc de données vide (#2563). - Le
system.zookeeper
table fonctionne si la valeur du nœud dans ZooKeeper est NULL.
Clickhouse version 1.1.54390, 2018-07-06
Nouveauté:
- Les requêtes peuvent être envoyées
multipart/form-data
format (dans lequery
champ), ce qui est utile si des données externes sont également envoyées pour le traitement de la requête (Olga Hvostikova). - Ajout de la possibilité d'activer ou de désactiver le traitement des guillemets simples ou doubles lors de la lecture de données au format CSV. Vous pouvez configurer cela dans le
format_csv_allow_single_quotes
etformat_csv_allow_double_quotes
paramètre (Amos Oiseau). - Maintenant
OPTIMIZE TABLE ... FINAL
peut être utilisé sans spécifier la partition pour les variantes non répliquées deMergeTree
(Amos Oiseau).
Amélioration:
- Amélioration des performances, réduction de la consommation de mémoire et suivi correct de la consommation de mémoire avec l'utilisation de L'opérateur IN lorsqu'un index de table peut être utilisé (#2584).
- Retiré redondant vérification des sommes de contrôle lors de l'ajout d'une partie des données. Ceci est important lorsqu'il y a un grand nombre de répliques, car dans ces cas, le nombre total de contrôles était égal à n^2.
- Ajout du support pour
Array(Tuple(...))
arguments en faveur de laarrayEnumerateUniq
fonction (#2573). - Ajouter
Nullable
soutien pour lerunningDifference
fonction (#2594). - Amélioration des performances d'analyse des requêtes lorsqu'il existe un très grand nombre d'expressions (#2572).
- Sélection plus rapide des parties de données à fusionner
ReplicatedMergeTree
table. Récupération plus rapide de la session ZooKeeper (#2597). - Le
format_version.txt
fichier pourMergeTree
tables est recréée si elle est manquante, ce qui est logique si ClickHouse est lancé après avoir copié la structure de répertoire sans fichiers (Ciprian Hacman).
Corrections de bugs:
- Correction d'un bug lorsque vous travaillez avec ZooKeeper qui pourrait rendre impossible la récupération de la session et des États en lecture seule des tables avant de redémarrer le serveur.
- Correction d'un bug lorsque vous travaillez avec ZooKeeper qui pourrait entraîner la suppression des anciens nœuds si la session est interrompue.
- Correction d'une erreur dans le
quantileTDigest
fonction pour les arguments Float (ce bug a été introduit dans la version 1.1.54388) (Mikhail Surin). - Correction d'un bug dans l'index des tables MergeTree si la colonne de clé primaire est située à l'intérieur de la fonction de conversion des types entre des entiers signés et non signés de même taille (#2603).
- Fixe erreur de segmentation si
macros
sont utilisés mais ils ne sont pas dans le fichier de configuration (#2570). - Correction du passage à la base de données par défaut lors de la reconnexion du client (#2583).
- Correction d'un bug qui se produisait lors de la
use_index_for_in_with_subqueries
paramètre a été désactivé.
Correction de sécurité:
- L'envoi de fichiers n'est plus possible lorsqu'il est connecté à MySQL (
LOAD DATA LOCAL INFILE
).
Clickhouse version 1.1.54388, 2018-06-28
Nouveauté:
- Soutien pour le
ALTER TABLE t DELETE WHERE
requête pour les tables répliquées. Ajouté lesystem.mutations
tableau pour suivre la progression de ce type de requêtes. - Soutien pour le
ALTER TABLE t [REPLACE|ATTACH] PARTITION
requête pour les tables * MergeTree. - Soutien pour le
TRUNCATE TABLE
requête (L'Hiver Zhang) - Plusieurs nouveaux
SYSTEM
requêtes pour les tables répliquées (RESTART REPLICAS
,SYNC REPLICA
,[STOP|START] [MERGES|FETCHES|SENDS REPLICATED|REPLICATION QUEUES]
). - Ajout de la possibilité d'écrire dans une table avec le moteur MySQL et la fonction de table correspondante (sundy-li).
- Ajouté le
url()
fonction de table et leURL
tableau moteur (Alexander Sapin). - Ajouté le
windowFunnel
fonction d'agrégation (sundy-li). - Nouveau
startsWith
etendsWith
fonctions pour les chaînes (Vadim Plakhtinsky). - Le
numbers()
la fonction table vous permet maintenant de spécifier le décalage (L'Hiver Zhang). - Le mot de passe pour
clickhouse-client
peut être saisi de manière interactive. - Les journaux du serveur peuvent maintenant être envoyés à syslog (Alexander Krasheninnikov).
- Prise en charge de la connexion dans les dictionnaires avec une source de bibliothèque partagée (Alexander Sapin).
- Prise en charge des délimiteurs CSV personnalisés (Ivan Joukov)
- Ajouté le
date_time_input_format
paramètre. Si vous basculez ce paramètre sur'best_effort'
, Les valeurs DateTime seront lues dans un large éventail de formats. - Ajouté le
clickhouse-obfuscator
utilitaire pour l'obscurcissement des données. Exemple d'utilisation: publication des données utilisées dans les tests de performance.
Caractéristiques expérimentales:
- Ajout de la possibilité de calculer
and
arguments uniquement là où ils sont nécessaires (Anastasia Tsarkova) - La compilation JIT en code natif est maintenant disponible pour certaines expressions (pyos).
Corrections de bugs:
- Les doublons n'apparaissent plus pour une requête avec
DISTINCT
etORDER BY
. - Les requêtes avec
ARRAY JOIN
etarrayFilter
ne renvoie plus un résultat incorrect. - Correction d'une erreur lors de la lecture d'une colonne de tableau à partir d'une structure Imbriquée (#2066).
- Correction d'une erreur lors de l'analyse des requêtes avec une clause HAVING comme
HAVING tuple IN (...)
. - Correction d'une erreur lors de l'analyse des requêtes avec récursive des alias.
- Correction d'une erreur lors de la lecture de ReplacingMergeTree avec une condition dans PREWHERE qui filtre Toutes les lignes (#2525).
- Les paramètres de profil utilisateur n'ont pas été appliqués lors de l'utilisation de sessions dans L'interface HTTP.
- Correction de la façon dont les paramètres sont appliqués à partir des paramètres de ligne de commande dans clickhouse-local.
- La bibliothèque client ZooKeeper utilise maintenant le délai d'attente de session reçu du serveur.
- Correction d'un bug dans la bibliothèque client ZooKeeper lorsque le client attendait la réponse du serveur plus longtemps que le délai d'attente.
- Correction de l'élagage des pièces pour les requêtes avec des conditions sur les colonnes de clé de partition (#2342).
- Les fusions sont maintenant possibles après
CLEAR COLUMN IN PARTITION
(#2315). - Le mappage de Type dans la fonction de table ODBC a été corrigé (sundy-li).
- Les comparaisons de Type ont été corrigées pour
DateTime
avec et sans le fuseau horaire (Alexandre Botcharov). - Correction de l'analyse syntaxique et du formatage
CAST
opérateur. - Insertion fixe dans une vue matérialisée pour le moteur de table distribué (Babacar Diassé).
- Correction d'une condition de concurrence lors de l'écriture de données
Kafka
moteur aux vues matérialisées (Yangkuan Liu). - Correction de SSRF dans la fonction de table remote ().
- Comportement de sortie fixe de
clickhouse-client
en mode multi-lignes (#2510).
Amélioration:
- Les tâches d'arrière plan dans les tables répliquées sont maintenant effectuées dans un pool de threads plutôt que dans des threads séparés (Silviu Caragea).
- Amélioration des performances de compression LZ4.
- Analyse plus rapide pour les requêtes avec un grand nombre de jointures et de sous-requêtes.
- Le cache DNS est maintenant mis à jour automatiquement lorsqu'il y a trop d'erreurs réseau.
- Les insertions de Table ne se produisent plus si l'insertion dans l'une des vues matérialisées n'est pas possible car elle comporte trop de parties.
- Correction de l'écart dans les compteurs d'événements
Query
,SelectQuery
, etInsertQuery
. - Des Expressions comme
tuple IN (SELECT tuple)
sont autorisés si les types de tuple correspondent. - Un serveur avec des tables répliquées peut démarrer même si vous n'avez pas configuré ZooKeeper.
- Lors du calcul du nombre de cœurs CPU disponibles, les limites sur les groupes cgroups sont maintenant prises en compte (Atri Sharma).
- Ajouté chown pour les répertoires de configuration dans le fichier de configuration systemd (Mikhaïl Shirjaeva).
Construire des changements:
- Le compilateur gcc8 peut être utilisé pour les builds.
- Ajout de la possibilité de construire llvm à partir du sous-module.
- La version de la bibliothèque librdkafka a été mise à jour vers v0. 11. 4.
- Ajout de la possibilité d'utiliser la bibliothèque libcpuid du système. La version de la bibliothèque a été mise à jour à 0.4.0.
- Correction de la construction en utilisant la bibliothèque vectorclass (Babacar Diassé).
- Cmake génère maintenant des fichiers pour ninja par défaut (comme lors de l'utilisation
-G Ninja
). - Ajout de la possibilité d'utiliser la bibliothèque libtinfo au lieu de libtermcap (Georgy Kondratiev).
- Correction d'un conflit de fichier d'en-tête dans Fedora Rawhide (#2520).
Modifications incompatibles en arrière:
- Retiré échapper dans
Vertical
etPretty*
formats et supprimé leVerticalRaw
format. - Si des serveurs avec la version 1.1.54388 (ou plus récente) et des serveurs avec une version plus ancienne sont utilisés simultanément dans une requête distribuée et la requête a le
cast(x, 'Type')
expression sansAS
mot clé et n'a pas le motcast
en majuscules, une exception sera levée avec un message du genreNot found column cast(0, 'UInt8') in block
. Solution: mettez à jour le serveur sur l'ensemble du cluster.
Clickhouse version 1.1.54385, 2018-06-01
Corrections de bugs:
- Correction d'une erreur qui, dans certains cas, provoquait le blocage des opérations de ZooKeeper.
Clickhouse version 1.1.54383, 2018-05-22
Corrections de bugs:
- Correction d'un ralentissement de la file d'attente de réplication si une table a plusieurs répliques.
Clickhouse version 1.1.54381, 2018-05-14
Corrections de bugs:
- Correction d'une fuite de nœuds dans ZooKeeper lorsque ClickHouse perd la connexion au serveur ZooKeeper.
Clickhouse version 1.1.54380, 2018-04-21
Nouveauté:
- Ajout de la fonction table
file(path, format, structure)
. Un exemple de lecture d'octets depuis/dev/urandom
:ln -s /dev/urandom /var/lib/clickhouse/user_files/random``clickhouse-client -q "SELECT * FROM file('random', 'RowBinary', 'd UInt8') LIMIT 10"
.
Amélioration:
- Les sous-requêtes peuvent être encapsulées
()
crochets pour améliorer la lisibilité des requêtes. Exemple:(SELECT 1) UNION ALL (SELECT 1)
. - Simple
SELECT
les requêtes de l'system.processes
le tableau ne sont pas inclus dans lemax_concurrent_queries
limite.
Corrections de bugs:
- Correction d'un comportement incorrect de la
IN
opérateur quand sélectionner à partir deMATERIALIZED VIEW
. - Correction d'un filtrage incorrect par index de partition dans des expressions comme
partition_key_column IN (...)
. - Incapacité fixe à exécuter
OPTIMIZE
requête sur réplica non leader siREANAME
a été effectuée sur la table. - Correction de l'erreur d'autorisation lors de l'exécution
OPTIMIZE
ouALTER
requêtes sur une réplique non-leader. - Fixe le gel de l'
KILL QUERY
. - Correction d'une erreur dans la bibliothèque client ZooKeeper qui a conduit à la perte de montres, le gel de la file d'attente DDL distribuée, et des ralentissements dans la file d'attente de réplication si un non vide
chroot
le préfixe est utilisé dans la configuration de ZooKeeper.
Modifications incompatibles en arrière:
- Suppression du support pour les expressions comme
(a, b) IN (SELECT (a, b))
(vous pouvez utiliser l'expression équivalente(a, b) IN (SELECT a, b)
). Dans les versions précédentes, ces expressions ont conduit à indéterminéWHERE
filtrage ou causé des erreurs.
Clickhouse version 1.1.54378, 2018-04-16
Nouveauté:
- Niveau d'enregistrement peut être modifié sans redémarrer le serveur.
- Ajouté le
SHOW CREATE DATABASE
requête. - Le
query_id
peut être passé àclickhouse-client
(elBroom). - Nouveau paramètre:
max_network_bandwidth_for_all_users
. - Ajout du support pour
ALTER TABLE ... PARTITION ...
pourMATERIALIZED VIEW
. - Ajout d'informations sur la taille des parties de données sous forme non compressée dans la table système.
- Prise en charge du chiffrement de serveur à serveur pour les tables distribuées (
<secure>1</secure>
dans la configuration de la réplique<remote_servers>
). - Configuration du niveau de la table pour
ReplicatedMergeTree
la famille afin de minimiser la quantité de données stockées dans Zookeeper: :use_minimalistic_checksums_in_zookeeper = 1
- Configuration de l'
clickhouse-client
invite. Par défaut, les noms de serveur sont maintenant affichés à l'invite. Le nom d'affichage du serveur peut être modifié. Il est également envoyé dans leX-ClickHouse-Display-Name
En-tête HTTP (Kirill Shvakov). - Séparés par des virgules multiples
topics
peut être spécifié pour l'Kafka
moteur (Tobias Adamson) - Quand une requête est arrêtée par
KILL QUERY
oureplace_running_query
le client reçoit l'Query was canceled
exception au lieu d'un résultat incomplète.
Amélioration:
ALTER TABLE ... DROP/DETACH PARTITION
les requêtes sont exécutées à l'avant de la file d'attente de réplication.SELECT ... FINAL
etOPTIMIZE ... FINAL
peut être utilisé même lorsque la table a une seule partie de données.- A
query_log
la table est recréée à la volée si elle a été supprimée manuellement (Kirill Shvakov). - Le
lengthUTF8
fonction fonctionne plus rapidement (zhang2014). - Amélioration des performances des inserts synchrones dans
Distributed
table (insert_distributed_sync = 1
lorsqu'il existe un très grand nombre de fragments. - Le serveur accepte le
send_timeout
etreceive_timeout
les paramètres du client et les applique lors de la connexion au client (ils sont appliqués dans l'ordre inverse: le socket du serveursend_timeout
est définie à l'receive_timeout
valeur reçue du client, et vice versa). - Récupération de crash plus robuste pour une insertion asynchrone dans
Distributed
table. - Le type de retour de la
countEqual
la fonction a changé à partir deUInt32
deUInt64
(谢磊).
Corrections de bugs:
- Correction d'une erreur avec
IN
lorsque le côté gauche de l'expression estNullable
. - Les résultats corrects sont maintenant retournés lors de l'utilisation de tuples avec
IN
lorsque certains des composants tuple sont dans l'index de la table. - Le
max_execution_time
limite fonctionne désormais correctement avec les requêtes distribuées. - Correction d'erreurs lors du calcul de la taille des colonnes composites
system.columns
table. - Correction d'une erreur lors de la création d'une table temporaire
CREATE TEMPORARY TABLE IF NOT EXISTS.
- Erreurs corrigées dans
StorageKafka
(##2075) - Le serveur fixe se bloque à partir d'arguments non valides de certaines fonctions d'agrégat.
- Correction de l'erreur qui a empêché l'
DETACH DATABASE
requête de l'arrêt des tâches d'arrière-plan pourReplicatedMergeTree
table. Too many parts
l'état est moins susceptible de se produire lors de l'insertion dans agrégées des vues matérialisées (##2084).- Correction de la gestion récursive des substitutions dans la configuration si une substitution doit être suivie d'une autre substitution au même niveau.
- Correction de la syntaxe dans le fichier de métadonnées lors de la création d'un
VIEW
qui utilise une requête avecUNION ALL
. SummingMergeTree
fonctionne maintenant correctement pour la sommation des structures de données imbriquées avec une clé composite.- Correction de la possibilité d'une condition de course lors du choix du leader pour
ReplicatedMergeTree
table.
Construire des changements:
- La construction prend en charge
ninja
plutôtmake
et utiliseninja
par défaut pour les versions de construction. - Paquets renommés:
clickhouse-server-base
dansclickhouse-common-static
;clickhouse-server-common
dansclickhouse-server
;clickhouse-common-dbg
dansclickhouse-common-static-dbg
. Pour installer, utilisezclickhouse-server clickhouse-client
. Les paquets avec les anciens noms seront toujours chargés dans les dépôts pour une compatibilité descendante.
Modifications incompatibles en arrière:
- Retiré de l'interprétation d'une expression si un tableau est spécifié sur le côté gauche. Auparavant, l'expression
arr IN (set)
a été interprété comme “at least onearr
element belongs to theset
”. Pour obtenir le même comportement dans la nouvelle version, écrirearrayExists(x -> x IN (set), arr)
. - Désactivé l'utilisation incorrecte de l'option socket
SO_REUSEPORT
, qui a été incorrectement activé par défaut dans la bibliothèque Poco. Notez que sous Linux il n'y a plus aucune raison de spécifier simultanément les adresses::
et0.0.0.0
for listen – use just::
, qui permet d'écouter la connexion à la fois sur IPv4 et IPv6 (avec les paramètres de configuration du noyau par défaut). Vous pouvez également revenir au comportement des versions précédentes en spécifiant<listen_reuse_port>1</listen_reuse_port>
dans la config.
Clickhouse version 1.1.54370, 2018-03-16
Nouveauté:
- Ajouté le
system.macros
table et mise à jour automatique des macros lorsque le fichier de configuration est modifié. - Ajouté le
SYSTEM RELOAD CONFIG
requête. - Ajouté le
maxIntersections(left_col, right_col)
fonction d'agrégation, qui retourne le nombre maximal d'simultanément intersection d'intervalles[left; right]
. LemaxIntersectionsPosition(left, right)
fonction retourne le début de la “maximum” intervalle. (Michael Furmur).
Amélioration:
- Lors de l'insertion de données dans une
Replicated
tableau, moins de demandes sont faites àZooKeeper
(et la plupart des erreurs au niveau de l'utilisateur ont disparu de laZooKeeper
journal). - Ajout de la possibilité de créer des alias pour les ensembles de données. Exemple:
WITH (1, 2, 3) AS set SELECT number IN set FROM system.numbers LIMIT 10
.
Corrections de bugs:
- Correction de l'
Illegal PREWHERE
erreur lors de la lecture des tables de fusion pourDistributed
table. - Ajout de correctifs qui vous permettent de démarrer clickhouse-server dans des conteneurs Docker IPv4 uniquement.
- Correction d'une condition de course lors de la lecture du système
system.parts_columns tables.
- Suppression de la double mise en mémoire tampon lors d'un insert synchrone
Distributed
table, ce qui aurait pu provoquer la connexion à timeout. - Correction d'un bug qui a causé des attentes trop longues pour une réplique indisponible avant de commencer un
SELECT
requête. - Correction de dates incorrectes dans le
system.parts
table. - Correction d'un bug qui rendait impossible l'insertion de données dans un
Replicated
le tableau sichroot
était non vide dans la configuration duZooKeeper
cluster. - Correction de l'algorithme de fusion verticale pour un
ORDER BY
table. - Restauré la possibilité d'utiliser des dictionnaires dans les requêtes aux tables distantes, même si ces dictionnaires ne sont pas présents sur le serveur demandeur. Cette fonctionnalité a été perdue dans la version 1.1.54362.
- Restauré le comportement pour les requêtes comme
SELECT * FROM remote('server2', default.table) WHERE col IN (SELECT col2 FROM default.table)
lorsque le côté droit de laIN
devrait utiliser une télécommandedefault.table
au lieu d'un local. Ce comportement a été rompu dans la version 1.1.54358. - Suppression de la journalisation au niveau des erreurs
Not found column ... in block
.
Clickhouse Version 1.1.54362, 2018-03-11
Nouveauté:
- Agrégation sans
GROUP BY
pour un ensemble vide (commeSELECT count(*) FROM table WHERE 0
) renvoie maintenant un résultat avec une ligne avec des valeurs null pour les fonctions d'agrégation, conformément à la norme SQL. Pour restaurer l'ancien comportement (renvoyer un résultat vide), définissezempty_result_for_aggregation_by_empty_set
1. - Conversion de type ajouté pour
UNION ALL
. Différents noms d'alias sont autorisés dansSELECT
les positions dansUNION ALL
en conformité avec le standard SQL. - Les expressions arbitraires sont prises en charge dans
LIMIT BY
clause. Auparavant, il était seulement possible d'utiliser des colonnes résultant deSELECT
. - Un indice de
MergeTree
tables est utilisé lorsqueIN
est appliqué à un n-uplet d'expressions à partir des colonnes de la clé primaire. Exemple:WHERE (UserID, EventDate) IN ((123, '2000-01-01'), ...)
(Anastasiya Tsarkova). - Ajouté le
clickhouse-copier
outil pour copier entre les clusters et remodeler les données (beta). - Ajout de fonctions de hachage cohérentes:
yandexConsistentHash
,jumpConsistentHash
,sumburConsistentHash
. Ils peuvent être utilisés comme une clé de sharding afin de réduire la quantité de trafic réseau lors de remaniements ultérieurs. - L'ajout de fonctions:
arrayAny
,arrayAll
,hasAny
,hasAll
,arrayIntersect
,arrayResize
. - Ajouté le
arrayCumSum
fonction (Javi Santana). - Ajouté le
parseDateTimeBestEffort
,parseDateTimeBestEffortOrZero
, etparseDateTimeBestEffortOrNull
fonctions pour lire le DateTime à partir d'une chaîne contenant du texte dans une grande variété de formats possibles. - Les données peuvent être partiellement rechargées à partir de dictionnaires externes lors de la mise à jour (charger uniquement les enregistrements dans lesquels la valeur du champ spécifié supérieure à celle du téléchargement précédent) (Arsen Hakobyan).
- Ajouté le
cluster
table de fonction. Exemple:cluster(cluster_name, db, table)
. Leremote
la fonction table peut accepter le nom du cluster comme premier argument, s'il est spécifié comme identifiant. - Le
remote
etcluster
les fonctions de table peuvent être utilisées dansINSERT
requête. - Ajouté le
create_table_query
etengine_full
colonnes virtuelles ausystem.tables
table . Lemetadata_modification_time
la colonne est virtuel. - Ajouté le
data_path
etmetadata_path
les colonnes àsystem.tables
etsystem.databases
tables, et a ajouté lepath
la colonne de lasystem.parts
etsystem.parts_columns
table. - Ajout d'informations supplémentaires sur les fusions
system.part_log
table. - Une clé de partitionnement arbitraire peut être utilisée pour
system.query_log
table (Kirill Shvakov). - Le
SHOW TABLES
query affiche maintenant également des tables temporaires. Ajout de tables temporaires etis_temporary
colonne desystem.tables
(zhang2014). - Ajouter
DROP TEMPORARY TABLE
etEXISTS TEMPORARY TABLE
les requêtes (zhang2014). - Soutien pour
SHOW CREATE TABLE
pour les tables temporaires (zhang2014). - Ajouté le
system_profile
paramètre de configuration pour les paramètres utilisés par les processus internes. - Soutien pour le chargement
object_id
comme un attribut deMongoDB
dictionnaires (Pavel Litvinenko). - Lecture
null
comme valeur par défaut lors du chargement de données pour un dictionnaire externeMongoDB
source (Pavel Litvinenko). - Lecture
DateTime
les valeurs dans laValues
formater à partir D'un horodatage Unix sans guillemets simples. - Le basculement est pris en charge dans
remote
fonctions de table pour les cas où certaines répliques manquent la table demandée. - Les paramètres de Configuration peuvent être remplacées dans la ligne de commande lorsque vous exécutez
clickhouse-server
. Exemple:clickhouse-server -- --logger.level=information
. - Mise en œuvre de la
empty
fonction à partir d'unFixedString
argument: la fonction renvoie 1 si la chaîne est entièrement composée d'octets nuls (zhang2014). - Ajouté le
listen_try
paramètre de configuration pour l'écoute d'au moins une des adresses listen sans quitter, si certaines adresses ne peuvent pas être écoutées (utile pour les systèmes avec prise en charge désactivée pour IPv4 ou IPv6). - Ajouté le
VersionedCollapsingMergeTree
tableau moteur. - Prise en charge des lignes et des types numériques arbitraires
library
source du dictionnaire. MergeTree
les tableaux peuvent être utilisés sans une clé primaire (vous devez spécifierORDER BY tuple()
).- A
Nullable
peut être de typeCAST
pour un non-Nullable
type si l'argument n'est pasNULL
. RENAME TABLE
peut être effectuée pourVIEW
.- Ajouté le
throwIf
fonction. - Ajouté le
odbc_default_field_size
option, qui vous permet d'étendre la taille maximale de la valeur chargée à partir D'une source ODBC (par défaut, il est 1024). - Le
system.processes
table etSHOW PROCESSLIST
ont maintenant lais_cancelled
etpeak_memory_usage
colonne.
Amélioration:
- Les limites et quotas sur le résultat ne sont plus appliqués aux données intermédiaires pour
INSERT SELECT
les requêtes ou pourSELECT
les sous-requêtes. - Moins de faux déclencheurs de
force_restore_data
lors de la vérification de l'état deReplicated
les tables lorsque le serveur démarre. - Ajouté le
allow_distributed_ddl
option. - Les fonctions non déterministes ne sont pas autorisées dans les expressions
MergeTree
table de clés. - Fichiers avec des substitutions de
config.d
les répertoires sont chargés par ordre alphabétique. - Amélioration de la performance de l'
arrayElement
fonction dans le cas d'une constante tableau multidimensionnel avec un tableau vide comme l'un des éléments. Exemple:[[1], []][x]
. - Le serveur démarre plus rapidement maintenant lors de l'utilisation de fichiers de configuration avec de très grandes substitutions (par exemple, de très grandes listes de réseaux IP).
- Lors de l'exécution d'une requête, les fonctions de valeur de table s'exécutent une fois. Précédemment,
remote
etmysql
les fonctions à valeur de table ont effectué la même requête deux fois pour récupérer la structure de la table à partir d'un serveur distant. - Le
MkDocs
générateur de documentation est utilisé. - Lorsque vous essayez de supprimer une colonne de table
DEFAULT
/MATERIALIZED
les expressions des autres colonnes dépendent, une exception est levée (zhang2014). - Ajout de la possibilité d'analyser une ligne vide dans des formats de texte comme le nombre 0 pour
Float
types de données. Cette fonctionnalité était auparavant disponible mais a été perdue dans la version 1.1.54342. Enum
les valeurs peuvent être utilisés dansmin
,max
,sum
et quelques autres fonctions. Dans ces cas, il utilise des valeurs numériques correspondantes. Cette fonctionnalité était auparavant disponible mais a été perdue dans la version 1.1.54337.- Ajouter
max_expanded_ast_elements
pour limiter la taille de L'AST après l'expansion récursive des alias.
Corrections de bugs:
- Correction de cas où des colonnes inutiles ont été supprimées des sous-requêtes par erreur, ou non supprimées des sous-requêtes contenant
UNION ALL
. - Correction d'un bug dans les fusions pour
ReplacingMergeTree
table. - Insertions synchrones fixes dans
Distributed
table (insert_distributed_sync = 1
). - Fixe erreur de segmentation pour certaines utilisations de
FULL
etRIGHT JOIN
avec des colonnes en double dans les sous-requêtes. - Fixe erreur de segmentation pour certaines utilisations de
replace_running_query
etKILL QUERY
. - Fixe l'ordre du
source
etlast_exception
les colonnes dans l'system.dictionaries
table. - Correction d'un bug lors de l'
DROP DATABASE
la requête n'a pas supprimé le fichier contenant des métadonnées. - Correction de l'
DROP DATABASE
requête pourDictionary
les bases de données. - Fixe la faible précision de
uniqHLL12
etuniqCombined
fonctions pour les cardinalités supérieures à 100 millions d'articles (Alex Bocharov). - Correction du calcul des valeurs par défaut implicites si nécessaire pour calculer simultanément des expressions explicites par défaut dans
INSERT
les requêtes (zhang2014). - Correction d'un cas rare lorsqu'une requête à un
MergeTree
la table n'a pas pu finir (chenxing-xc). - Correction d'un plantage survenu lors de l'exécution d'un
CHECK
requête pourDistributed
tables si tous les fragments sont locaux (chenxing.xc). - Correction d'une légère régression des performances avec des fonctions qui utilisent des expressions régulières.
- Correction d'une régression de performance lors de la création de tableaux multidimensionnels à partir d'expressions complexes.
- Correction d'un bug qui pourrait causer un supplément
FORMAT
article à paraître dans un.sql
fichier de métadonnées. - Correction d'un bug qui a causé la
max_table_size_to_drop
limite à appliquer lorsque vous essayez de supprimer unMATERIALIZED VIEW
en regardant une table explicitement spécifiée. - Correction de l'incompatibilité avec les anciens clients (les anciens clients étaient parfois envoyés
DateTime('timezone')
type, dont ils ne comprennent pas). - Correction d'un bug lors de la lecture
Nested
éléments de colonne de structures qui ont été ajoutés en utilisantALTER
mais qui sont vides pour les anciennes partitions, lorsque les conditions de ces colonnes a déménagé àPREWHERE
. - Correction d'un bug lors du filtrage des tables virtuelles
_table
colonnes dans les requêtes àMerge
table. - Correction d'un bug lors de l'utilisation
ALIAS
les colonnes enDistributed
table. - Correction d'un bug qui rendait la compilation dynamique impossible pour les requêtes avec des fonctions
quantile
famille. - Correction d'une condition de concurrence dans le pipeline d'exécution de requête qui s'est produite dans de très rares cas lors de l'utilisation
Merge
avec un grand nombre de tables, et lors de l'utilisationGLOBAL
les sous-requêtes. - Correction d'un crash lors du passage de tableaux de tailles différentes pour un
arrayReduce
fonction lors de l'utilisation de fonctions d'agrégation à partir de plusieurs arguments. - Interdit l'utilisation de requêtes avec
UNION ALL
dans unMATERIALIZED VIEW
. - Correction d'une erreur lors de l'initialisation du
part_log
table système au démarrage du serveur (par défaut,part_log
est désactivée).
Modifications incompatibles en arrière:
- Enlevé le
distributed_ddl_allow_replicated_alter
option. Ce comportement est activé par défaut. - Enlevé le
strict_insert_defaults
paramètre. Si vous utilisez cette fonctionnalité, écrivez àclickhouse-feedback@yandex-team.com
. - Enlevé le
UnsortedMergeTree
moteur.
Clickhouse Version 1.1.54343, 2018-02-05
- Ajout de la prise en charge des macros pour définir les noms de cluster dans les requêtes DDL distribuées et les constructeurs de tables distribuées:
CREATE TABLE distr ON CLUSTER '{cluster}' (...) ENGINE = Distributed('{cluster}', 'db', 'table')
. - Maintenant requêtes comme
SELECT ... FROM table WHERE expr IN (subquery)
sont traitées à l'aide de latable
index. - Amélioration du traitement des doublons lors de l'insertion dans des tables répliquées, de sorte qu'ils ne ralentissent plus l'exécution de la file d'attente de réplication.
Clickhouse Version 1.1.54342, 2018-01-22
Cette version contient des corrections de bugs pour la version précédente 1.1.54337:
- Correction d'une régression dans 1.1.54337: si l'utilisateur par défaut a un accès en lecture seule, le serveur refuse de démarrer avec le message
Cannot create database in readonly mode
. - Correction d'une régression dans 1.1.54337: sur les systèmes avec systemd, les journaux sont toujours écrits dans syslog quelle que soit la configuration; le script watchdog utilise toujours init.d.
- Correction d'une régression dans 1.1.54337: mauvaise configuration par défaut dans L'image Docker.
- Correction du comportement non déterministe de GraphiteMergeTree (vous pouvez le voir dans les messages de journal
Data after merge is not byte-identical to the data on another replicas
). - Correction d'un bug qui peut conduire à des fusions incohérentes après optimiser la requête aux tables répliquées (vous pouvez le voir dans les messages de journal
Part ... intersects the previous part
). - Les tables tampon fonctionnent maintenant correctement lorsque des colonnes matérialisées sont présentes dans la table de destination (par zhang2014).
- Correction d'un bug dans la mise en œuvre de NULL.
Clickhouse Version 1.1.54337, 2018-01-18
Nouveauté:
- Ajout du support pour le stockage de tableaux et de tuples multidimensionnels (
Tuple
type de données) dans les tableaux. - Prise en charge des fonctions de table pour
DESCRIBE
etINSERT
requête. Ajout du support pour les sous-requêtes dansDESCRIBE
. Exemple:DESC TABLE remote('host', default.hits)
;DESC TABLE (SELECT 1)
;INSERT INTO TABLE FUNCTION remote('host', default.hits)
. Soutien pourINSERT INTO TABLE
outreINSERT INTO
. - Amélioration du support pour les fuseaux horaires. Le
DateTime
le type de données peut être annoté avec le fuseau horaire utilisé pour l'analyse et le formatage dans les formats de texte. Exemple:DateTime('Europe/Moscow')
. Lorsque les fuseaux horaires sont spécifiés dans les fonctionsDateTime
arguments, le type de retour pour suivre le fuseau horaire, et la valeur sera affichée comme prévu. - Ajout des fonctions
toTimeZone
,timeDiff
,toQuarter
,toRelativeQuarterNum
. LetoRelativeHour
/Minute
/Second
les fonctions peuvent prendre une valeur de typeDate
comme argument. Lenow
nom de la fonction est sensible à la casse. - Ajouté le
toStartOfFifteenMinutes
fonction (Kirill Shvakov). - Ajouté le
clickhouse format
outil de formatage des requêtes. - Ajouté le
format_schema_path
configuration parameter (Marek Vavruşa). It is used for specifying a schema inCap'n Proto
format. Les fichiers de schéma peuvent être situés uniquement dans le répertoire spécifié. - Ajout du support pour les substitutions de configuration (
incl
etconf.d
) pour la configuration de dictionnaires et de modèles externes (Pavel Yakunin). - Ajout d'une colonne avec la documentation pour le
system.settings
table (Kirill Shvakov). - Ajouté le
system.parts_columns
table avec des informations sur la taille des colonnes dans chaque partieMergeTree
table. - Ajouté le
system.models
tableau avec des informations sur chargéCatBoost
machine de modèles d'apprentissage. - Ajouté le
mysql
etodbc
fonction de table et correspondantMySQL
etODBC
moteurs de table pour accéder aux bases de données distantes. Cette fonctionnalité est en phase bêta. - Ajout de la possibilité de passer un argument de type
AggregateFunction
pour l'groupArray
fonction d'agrégation (vous pouvez donc créer un tableau d'États d'une fonction d'agrégation). - Suppression des restrictions sur diverses combinaisons de combinateurs de fonction d'agrégat. Par exemple, vous pouvez utiliser
avgForEachIf
ainsi queavgIfForEach
les fonctions d'agrégation, qui ont des comportements différents. - Le
-ForEach
fonction d'agrégation combinator est prolongée pour le cas des fonctions d'agrégation de plusieurs arguments. - Ajout du support pour les fonctions d'agrégation de
Nullable
arguments même pour les cas où la fonction renvoie un non-Nullable
résultat (ajouté avec la contribution de Silviu Caragea). Exemple:groupArray
,groupUniqArray
,topK
. - Ajouté le
max_client_network_bandwidth
pourclickhouse-client
(Kirill Shvakov). - Les utilisateurs avec le
readonly = 2
setting are allowed to work with TEMPORARY tables (CREATE, DROP, INSERT…) (Kirill Shvakov). - Ajout du support pour l'utilisation de plusieurs consommateurs avec le
Kafka
moteur. Options de configuration étendues pourKafka
(Marek Vavruša). - Ajouté le
intExp3
etintExp4
fonction. - Ajouté le
sumKahan
fonction d'agrégation. - Ajout des fonctions to* Number * OrNull, où * Number * est un type numérique.
- Ajout du support pour
WITH
clauses pour unINSERT SELECT
requête (auteur: zhang2014). - Ajout des paramètres de:
http_connection_timeout
,http_send_timeout
,http_receive_timeout
. En particulier, ces paramètres sont utilisés pour télécharger des parties de données pour la réplication. La modification de ces paramètres permet un basculement plus rapide si le réseau est surchargé. - Ajout du support pour
ALTER
pour les tables de typeNull
(Anastasiya Tsarkova). - Le
reinterpretAsString
la fonction est étendue pour tous les types de données stockés de manière contiguë en mémoire. - Ajouté le
--silent
option pour leclickhouse-local
outil. Il supprime les informations d'exécution de requête d'impression dans stderr. - Ajout du support pour la lecture des valeurs de type
Date
à partir du texte dans un format où le mois et / ou le jour du mois est spécifié en utilisant un seul chiffre au lieu de deux chiffres (oiseau Amos).
Optimisations des performances:
- Amélioration des performances des fonctions d'agrégation
min
,max
,any
,anyLast
,anyHeavy
,argMin
,argMax
à partir d'arguments de chaîne. - Amélioration des performances des fonctions
isInfinite
,isFinite
,isNaN
,roundToExp2
. - Amélioration des performances de l'analyse et du formatage
Date
etDateTime
tapez les valeurs au format texte. - Amélioration des performances et de la précision de l'analyse des nombres à virgule flottante.
- Abaissé l'utilisation de la mémoire pour
JOIN
dans le cas où les parties gauche et droite ont des colonnes avec des noms identiques qui ne sont pas contenus dansUSING
. - Amélioration des performances des fonctions d'agrégation
varSamp
,varPop
,stddevSamp
,stddevPop
,covarSamp
,covarPop
,corr
en réduisant la stabilité de calcul. Les anciennes fonctions sont disponibles sous les noms devarSampStable
,varPopStable
,stddevSampStable
,stddevPopStable
,covarSampStable
,covarPopStable
,corrStable
.
Corrections de bugs:
- Déduplication de données fixe après l'exécution d'un
DROP
ouDETACH PARTITION
requête. Dans la version précédente, la suppression d'une partition et l'insertion à nouveau des mêmes données ne fonctionnaient pas car les blocs insérés étaient considérés comme des doublons. - Correction d'un bug qui pourrait conduire à une interprétation incorrecte de la
WHERE
la clause deCREATE MATERIALIZED VIEW
les requêtes avecPOPULATE
. - Correction d'un bug dans l'utilisation de l'
root_path
paramètre dans l'zookeeper_servers
configuration. - Correction des résultats inattendus du passage du
Date
argumenttoStartOfDay
. - Correction de l'
addMonths
etsubtractMonths
fonctions et l'arithmétique pourINTERVAL n MONTH
dans les cas où le résultat de l'année précédente. - Ajout du support manquant pour le
UUID
type de données pourDISTINCT
,JOIN
, etuniq
fonctions agrégées et dictionnaires externes (Evgeniy Ivanov). Soutien pourUUID
est encore incomplète. - Fixe
SummingMergeTree
comportement dans les cas où les lignes additionnées à zéro. - Diverses corrections pour le
Kafka
engine (Marek Vavruša). - Correction d'un comportement incorrect de la
Join
moteur de table (oiseau Amos). - Correction d'un comportement d'allocateur incorrect sous FreeBSD et OS X.
- Le
extractAll
fonction prend désormais en charge les correspondances vides. - Correction d'une erreur qui bloquait l'utilisation de
libressl
plutôtopenssl
. - Correction de l'
CREATE TABLE AS SELECT
requête à partir de tables temporaires. - Correction de la non-atomicité de la mise à jour de la file d'attente de réplication. Cela peut entraîner la désynchronisation des répliques jusqu'au redémarrage du serveur.
- Correction d'un débordement possible dans
gcd
,lcm
etmodulo
(%
de l'opérateur) (Mak Skorokhod). -preprocessed
les fichiers sont maintenant créés après modificationumask
(umask
peut être changé dans le fichier de configuration).- Correction d'un bug dans la vérification des antécédents des pièces (
MergeTreePartChecker
) lors de l'utilisation d'une coutume clé de partition. - Correction de l'analyse des tuples (valeurs du
Tuple
type de données) dans des formats de texte. - Amélioration des messages d'erreur sur les types incompatibles transmis à
multiIf
,array
et quelques autres fonctions. - Repensé de soutien pour
Nullable
type. Correction de bugs qui peuvent conduire à un plantage du serveur. Correction de presque tous les autres bugs liés àNULL
support: conversions de type incorrectes dans INSERT SELECT, support insuffisant pour Nullable dans HAVING et PREWHERE,join_use_nulls
mode, Nullable types comme arguments deOR
l'opérateur, etc. - Correction de divers bugs liés à la sémantique interne des types de données. Exemples: sommation inutile de
Enum
tapez les champs dansSummingMergeTree
; l'alignement de laEnum
types dePretty
formats, etc. - Contrôles plus stricts pour les combinaisons autorisées de colonnes composites.
- Correction du débordement lors de la spécification d'un très grand paramètre pour le
FixedString
type de données. - Correction d'un bug dans l'
topK
fonction d'agrégation dans un cas générique. - Ajout de la vérification manquante pour l'égalité des tailles de tableau dans les arguments de n-ARY variantes de fonctions d'agrégation avec un
-Array
combinator. - Correction d'un bug dans
--pager
pourclickhouse-client
(auteur: ks1322). - Fixe la précision de la
exp10
fonction. - Correction du comportement du
visitParamExtract
fonction pour une meilleure conformité avec la documentation. - Correction du crash lorsque des types de données incorrects sont spécifiés.
- Correction du comportement de
DISTINCT
dans le cas lorsque toutes les colonnes sont des constantes. - Correction du formatage de la requête dans le cas de l'utilisation du
tupleElement
fonction avec une expression constante complexe comme indice d'élément tuple. - Correction d'un bug dans
Dictionary
tables pourrange_hashed
dictionnaire. - Correction d'un bug qui conduit à des lignes excessives dans le résultat de
FULL
etRIGHT JOIN
(Oiseau Amos). - Correction d'un plantage du serveur lors de la création et de la suppression de fichiers temporaires
config.d
répertoires pendant le rechargement de la configuration. - Correction de l'
SYSTEM DROP DNS CACHE
requête: le cache a été vidé mais les adresses des nœuds de cluster n'ont pas été mises à jour. - Correction du comportement de
MATERIALIZED VIEW
après l'exécution deDETACH TABLE
for the table under the view (Marek Vavruša).
Construire des améliorations:
- Le
pbuilder
l'outil est utilisé pour les versions. Le processus de construction est presque complètement indépendant de l'environnement hôte de construction. - Une seule version est utilisée pour différentes versions du système d'exploitation. Les paquets et les binaires ont été rendus compatibles avec un large éventail de systèmes Linux.
- Ajouté le
clickhouse-test
paquet. Il peut être utilisé pour exécuter des tests fonctionnels. - L'archive source peut maintenant être publié dans le référentiel. Il peut être utilisé pour reproduire la construction sans utiliser GitHub.
- Ajout d'une intégration limitée avec Travis CI. En raison des limites de temps de construction dans Travis, seule la construction de débogage est testée et un sous-ensemble limité de tests est exécuté.
- Ajout du support pour
Cap'n'Proto
dans la construction par défaut. - Modification du format des sources de documentation à partir de
Restricted Text
deMarkdown
. - Ajout du support pour
systemd
(Vladimir Smirnov). Il est désactivé par défaut en raison d'une incompatibilité avec certaines images du système D'exploitation et peut être activé manuellement. - Pour la génération de code dynamique,
clang
etlld
sont intégrées dans leclickhouse
binaire. Ils peuvent également être invoqués commeclickhouse clang
etclickhouse lld
. - Suppression de l'utilisation des extensions GNU du code. Permis à l'
-Wextra
option. Lors de la construction avecclang
la valeur par défaut estlibc++
plutôtlibstdc++
. - Extrait
clickhouse_parsers
etclickhouse_common_io
les bibliothèques pour accélérer les constructions des différents outils.
Modifications incompatibles en arrière:
- Le format des marques dans
Log
tapez les tables qui contiennentNullable
les colonnes ont été modifiées d'une manière incompatible avec l'arrière. Si vous avez ces tables, vous devez les convertir enTinyLog
tapez avant de démarrer la nouvelle version du serveur. Pour ce faire, remplacezENGINE = Log
avecENGINE = TinyLog
dans le correspondant.sql
fichier dans lemetadata
répertoire. Si votre table n'a pasNullable
les colonnes ou si le type de votre table n'est pasLog
, alors vous n'avez pas besoin de faire quoi que ce soit. - Enlevé le
experimental_allow_extended_storage_definition_syntax
paramètre. Maintenant cette fonctionnalité est activée par défaut. - Le
runningIncome
fonction a été renommée enrunningDifferenceStartingWithFirstvalue
pour éviter toute confusion. - Enlevé le
FROM ARRAY JOIN arr
syntaxe lorsque la jointure du tableau est spécifiée directement après FROM sans table (Amos Bird). - Enlevé le
BlockTabSeparated
format utilisé uniquement à des fins de démonstration. - Modification du format d'État pour les fonctions d'agrégation
varSamp
,varPop
,stddevSamp
,stddevPop
,covarSamp
,covarPop
,corr
. Si vous avez stocké des états de ces fonctions d'agrégat dans des tables (en utilisantAggregateFunction
type de données ou vues matérialisées avec les états correspondants), écrivez svp à clickhouse-feedback@yandex-team.com. - Dans les versions précédentes du serveur, il y avait une fonctionnalité non documentée: si une fonction d'agrégation dépend de paramètres, vous pouvez toujours la spécifier sans paramètres dans le type de données AggregateFunction. Exemple:
AggregateFunction(quantiles, UInt64)
plutôtAggregateFunction(quantiles(0.5, 0.9), UInt64)
. Cette fonctionnalité a été perdu. Bien qu'il ne soit pas documenté, nous prévoyons de le soutenir à nouveau dans les prochaines versions. - Les types de données Enum ne peuvent pas être utilisés dans les fonctions d'agrégat min/max. Cette capacité sera rendu dans la prochaine version.
Veuillez noter lors de la mise à niveau:
- Lorsque vous effectuez une mise à jour continue sur un cluster, au moment où certaines répliques exécutent L'ancienne version de ClickHouse et d'autres la nouvelle version, la réplication est temporairement arrêtée et le message
unknown parameter 'shard'
apparaît dans le journal. La réplication se poursuivra après la mise à jour de toutes les répliques du cluster. - Si différentes versions de ClickHouse sont en cours d'exécution sur les serveurs de cluster, il est possible que les requêtes distribuées utilisant les fonctions suivantes aient des résultats incorrects:
varSamp
,varPop
,stddevSamp
,stddevPop
,covarSamp
,covarPop
,corr
. Vous devez mettre à jour tous les nœuds de cluster.