ClickHouse/docs/fr/whats_new/changelog/2018.md
2020-04-04 12:15:31 +03:00

134 KiB
Raw Blame History

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 le insert_sample_with_metadata paramètre. #3555
  • Le ALTER TABLE la requête a maintenant la MODIFY 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 la MergeTree famille qui effectuent des tâches supplémentaires lors de la fusion en fonction de cette clé de tri, telles que SummingMergeTree, 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 le HDFS 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 et dictGetOrDefault 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, et join_overflow_mode lors de la création d'un Join type de table. Amos Oiseau
  • Ajouté le joinGet fonction qui permet d'utiliser un Join tapez table comme un dictionnaire. Amos Oiseau
  • Ajouté le partition_key, sorting_key, primary_key, et sampling_key les colonnes de la system.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, et is_in_sampling_key les colonnes de la system.columns table. #3609
  • Ajouté le min_time et max_time les colonnes de la system.parts table. Ces colonnes sont remplies lorsque la clé de partitionnement est une expression composée de DateTime colonne. Emmanuel Donin de Rosière

Corrections de bugs:

  • Corrections et améliorations des performances pour LowCardinality type de données. GROUP BY utiliser LowCardinality(Nullable(...)). Obtenir les valeurs de extremes. Traitement des fonctions d'ordre Élevé. LEFT ARRAY JOIN. Distribué GROUP BY. Fonctions qui renvoient Array. L'exécution de ORDER BY. Écrit à Distributed tableaux (nicelulu). Rétrocompatibilité pour INSERT requêtes provenant d'anciens clients qui implémentent Native protocole. Soutien pour LowCardinality pour JOIN. 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 et ALTER 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 avec FINAL pour VersionedCollapsingMergeTree. 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'un MATERIALIZED VIEW en raison de ne pas verrouiller l'interne MATERIALIZED 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 le now 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 le Values formater dans une colonne de type Array sans Nullable (si input_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 de Date et DateTime 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 et upperUTF8 fonction. Retiré la possibilité d'exécuter ces fonctions sur FixedString 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ément ALTER ou DROP 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 la preprocessed_configs répertoire à l'intérieur path. Cela signifie que l' /etc/clickhouse-server/ répertoire n'ont pas d'accès en écriture pour le clickhouse 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 dans O_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 la HTTP interface (500 a été retourné précédemment). 31bc680a
  • Le join_default_strictness l'option est définie sur ALL par défaut, pour la compatibilité. 120e2cbe
  • Suppression de la journalisation vers stderr à partir de la re2 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, et murmurHash3_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 et RIGHT JOIN, le max_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 dans clickhouse-benchmark et clickhouse-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 et DateTime types de données. #3385
  • Ajouté synonymes pour le POWER, LN, LCASE, UCASE, REPLACE, LOCATE, SUBSTR, et MID 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 domaines gov, mil, et edu. 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 la SYS-V init.d script en définissant CLICKHOUSE_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 le VersionInteger métrique, et system.build_options a la ligne ajoutée VERSION_INTEGER, qui contient la forme numérique de la version ClickHouse, telle que 18016000. #3644
  • Retiré la possibilité de comparer la Date tapez avec un nombre pour éviter les erreurs potentielles comme date = 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ôt toDate('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 type range 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 de FixedString 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 de max_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 le CREATE AS table la syntaxe a été utilisée et ENGINE la clause a été spécifiée avant le AS 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 la min_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:

  • Améliorations pour simplifier la construction Arcadia. #3475, #3535

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 modificateur GROUP BY (la syntaxe alternative GROUP BY CUBE(...) est également disponible). #3172
  • Ajouté le formatDateTime fonction. Alexandr Krasheninnikov
  • Ajouté le JDBC tableau moteur et jdbc 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, et toDayOfYear. #3146
  • Maintenant, vous pouvez utiliser Nullable colonnes pour MySQL et ODBC table. #3362
  • Imbriquée structures de données peuvent être lues comme des objets imbriqués dans JSONEachRow format. Ajouté le input_format_import_nested_json paramètre. Veloman Yunkan
  • Le traitement parallèle est disponible pour beaucoup MATERIALIZED VIEWs lors de l'insertion de données. Voir la parallel_view_processing paramètre. Marek Vavruša
  • Ajouté le SYSTEM FLUSH LOGS requête (vidage forcé des journaux sur les tables système telles que query_log) #3321
  • Maintenant, vous pouvez utiliser prédéfinis database et table macros lors de la déclaration Replicated 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 et LIMIT. Voir la max_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 la CREATE TABLE ... IF NOT EXISTS et DROP TABLE IF EXISTS les requêtes peuvent revenir Table ... 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é pour ALTER UPDATE requête.
  • Amélioration des performances de lecture des données JSONEachRow format. #3332
  • Ajouté synonymes pour le LENGTH et CHARACTER_LENGTH fonctions de compatibilité. Le CONCAT la fonction n'est plus sensible à la casse. #3306
  • Ajouté le TIMESTAMP synonyme de la DateTime 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 un partition_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 et Nested valeurs de structures comme struct dans le Cap'n'Proto format. Marek Vavruša
  • La liste des domaines de premier niveau pour les firstSignificantSubdomain la fonction inclut maintenant le domaine biz. 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 et intDivOrZero fonctions pour Decimal. b48402e8
  • Soutien pour le Date, DateTime, UUID, et Decimal types comme clé pour le sumMap 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 dans SummingMergeTree table. #3348
  • Ajouté spécialisations pour UUID dans if. #3366
  • Réduit le nombre de open et close les appels système lors de la lecture d'un MergeTree 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 pour range_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 message Unsupported 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 le MemoryTracking 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 JOINs sur le serveur qui initie la requête si JOIN 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 facultatif schema le paramètre n'a pas été passé (le schéma du Cap'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 et DateTime lors de l'insertion de données dans le VALUES format (si input_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 de Distributed tables lors de l'utilisation PREWHERE. #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 sur Decimal128. 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 si log_queries l'option (journalisation des informations sur les requêtes) est définie sur 1. Depuis le log_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 avec PREWHERE. #3298
  • Correction d'une erreur lors de l'utilisation PREWHERE sur les colonnes qui ont été ajoutées pendant ALTER. #3298
  • Ajout d'une vérification de l'absence de arrayJoin pour DEFAULT et MATERIALIZED 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 un PREWHERE clause. Auparavant, cela a conduit à des messages comme Size ... doesn't match ou Unknown 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. Le Decimal 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 pour clickhouse source. #3126
  • Ajout de la possibilité d'utiliser UInt*, Int*, et DateTime types de données (avec le Date le type) comme un range_hashed clé de dictionnaire externe qui définit les limites des plages. Maintenant NULL peut être utilisé pour désigner un intervalle ouvert. Vasily Nemkov
  • Le Decimal type prend maintenant en charge var* et stddev* 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 le partition_id colonne. #3089

Corrections de bugs:

  • Merge fonctionne maintenant correctement sur Distributed table. L'Hiver Zhang
  • Incompatibilité fixe (dépendance inutile sur le glibc version) qui a rendu impossible l'exécution de ClickHouse sur Ubuntu 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éfinissez enable_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 pour MergeTree 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 maintenant partition_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 et hashed 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ètre allow_experimental_decimal_type. #2846 #2970 #3008 #3047
  • Nouveau WITH ROLLUP le modificateur GROUP 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éciser ANY ou ALL pour JOIN. #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 et system.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é le log_query_settings paramètre. #2482
  • Le system.query_log et system.processes les tables affichent désormais des informations sur le nombre de threads participant à l'exécution de la requête (voir thread_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 ProfileEventscompteurs 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é le log_query_threads paramètre. #2482
  • Le system.metrics et system.events les tables ont maintenant une documentation intégrée. #3016
  • Ajouté le arrayEnumerateDense fonction. Amos Oiseau
  • Ajouté le arrayCumSumNonNegative et arrayDifference 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 dans PREWHERE.
  • 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 et system.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 dans perf 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 dans JSONEachRow format sont ignorés correctement. BlahGeek
  • Pour un CASE expression avec conditions, vous pouvez maintenant omettre ELSE, 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 comme LIMIT n OFFSET m. #2840
  • Vous pouvez utiliser l' SELECT TOP n syntaxe comme alternative pour LIMIT. #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 de JOIN. #3006
  • Pretty formats maintenant avoir une limite sur l'alignement des colonnes de largeur. L'utilisation de la output_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, et ZooKeeperOtherExceptions.
  • 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 de ReplicatedMergeTree table.
  • Soutien pour ATTACH TABLE ... ON CLUSTER requête. #3025

Corrections de bugs:

  • Correction d'un problème avec Dictionary tables (jette le Size of offsets doesn't match size of column ou Unknown 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 ou ALTER DELETE si toutes les données ont été supprimées), et le vertical l'algorithme a été utilisé pour la fusion. #3049
  • Correction d'une condition de course pendant DROP ou TRUNCATE pour Memory tables simultanément SELECT, 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 la Session is expired l'erreur est renvoyée (la perte de données peut être détectée par le ReplicatedDataLoss 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 que WHERE 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 ou MergeTree 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 pour Nullable les éléments du tableau. #2845 #2937
  • Le enable_optimize_predicate_expression option prend en charge correctement les cas avec SELECT *. 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, et replication_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, et murmurHash3_128 en plus de l'existant murmurHash2_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 le Kafka 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 et VersionedCollapsingMergeTree 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 et dependencies_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 retourne nan dans le cas de l'agrégation sur un vide Float32 ou Float64 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 deux REPLACE 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 ou Join. Amos Oiseau
  • Correction de l' Block structure mismatch in UNION stream: different number of columns erreur qui s'est produite pour UNION ALL requêtes dans une sous-requête si l'un des SELECT 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 de tcmalloc. 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 et query_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, et nullIf 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 ou cluster 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 de Enum 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 pour ReplicatedMergeTree 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 et OPTIMIZE requêtes qui spécifient ON 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é de Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_schema, kafka_num_consumers]) de Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_row_delimiter, kafka_schema, kafka_num_consumers]). Si vos tables utilisent kafka_schema ou kafka_num_consumers paramètres, vous devez modifier manuellement les fichiers de métadonnées path/metadata/database/table.sql et d'ajouter kafka_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 format 10.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 et input_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 laquelle DateTime DEFAULT '0' ne fonctionne pas dans les tableaux, ainsi que <null_value>0</null_value> dans les dictionnaires. Solution: remplacer 0 avec 0000-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 pour ReplicatedMergeTree (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. Le metadata_modification_time et engine_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 le query 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 et format_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 de MergeTree (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 la arrayEnumerateUniq fonction (#2573).
  • Ajouter Nullable soutien pour le runningDifference 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 pour MergeTree 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é le system.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 le URL tableau moteur (Alexander Sapin).
  • Ajouté le windowFunnel fonction d'agrégation (sundy-li).
  • Nouveau startsWith et endsWith 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 et ORDER BY.
  • Les requêtes avec ARRAY JOIN et arrayFilter 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, et InsertQuery.
  • 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 et Pretty* formats et supprimé le VerticalRaw 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 sans AS mot clé et n'a pas le mot cast en majuscules, une exception sera levée avec un message du genre Not 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 le max_concurrent_queries limite.

Corrections de bugs:

  • Correction d'un comportement incorrect de la IN opérateur quand sélectionner à partir de MATERIALIZED 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 si REANAME a été effectuée sur la table.
  • Correction de l'erreur d'autorisation lors de l'exécution OPTIMIZE ou ALTER 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 ... pour MATERIALIZED 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 le X-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 ou replace_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 et OPTIMIZE ... 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 et receive_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 serveur send_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 de UInt32 de UInt64 (谢磊).

Corrections de bugs:

  • Correction d'une erreur avec IN lorsque le côté gauche de l'expression est Nullable.
  • 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 pour ReplicatedMergeTree 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 avec UNION 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ôt make et utilise ninja par défaut pour les versions de construction.
  • Paquets renommés: clickhouse-server-base dans clickhouse-common-static; clickhouse-server-common dans clickhouse-server; clickhouse-common-dbg dans clickhouse-common-static-dbg. Pour installer, utilisez clickhouse-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 one arr element belongs to the set”. Pour obtenir le même comportement dans la nouvelle version, écrire arrayExists(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 :: et 0.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]. Le maxIntersectionsPosition(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 la ZooKeeper 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 pour Distributedtable.
  • 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 si chroot était non vide dans la configuration du ZooKeeper 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 la IN devrait utiliser une télécommande default.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 (comme SELECT 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éfinissez empty_result_for_aggregation_by_empty_set 1.
  • Conversion de type ajouté pour UNION ALL. Différents noms d'alias sont autorisés dans SELECT les positions dans UNION 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 de SELECT.
  • Un indice de MergeTree tables est utilisé lorsque IN 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, et parseDateTimeBestEffortOrNull 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). Le remote la fonction table peut accepter le nom du cluster comme premier argument, s'il est spécifié comme identifiant.
  • Le remote et cluster les fonctions de table peuvent être utilisées dans INSERT requête.
  • Ajouté le create_table_query et engine_full colonnes virtuelles au system.tablestable . Le metadata_modification_time la colonne est virtuel.
  • Ajouté le data_path et metadata_path les colonnes à system.tablesetsystem.databases tables, et a ajouté le path la colonne de la system.parts et system.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 et is_temporary colonne de system.tables (zhang2014).
  • Ajouter DROP TEMPORARY TABLE et EXISTS 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 de MongoDB dictionnaires (Pavel Litvinenko).
  • Lecture null comme valeur par défaut lors du chargement de données pour un dictionnaire externe MongoDB source (Pavel Litvinenko).
  • Lecture DateTime les valeurs dans la Values 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'un FixedString argument: la fonction renvoie 1 si la chaîne est entièrement composée d'octets nuls (zhang2014).
  • Ajouté le listen_tryparamè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écifier ORDER BY tuple()).
  • A Nullable peut être de type CAST pour un non-Nullable type si l'argument n'est pas NULL.
  • RENAME TABLE peut être effectuée pour VIEW.
  • 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 et SHOW PROCESSLIST ont maintenant la is_cancelled et peak_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 pour SELECT les sous-requêtes.
  • Moins de faux déclencheurs de force_restore_data lors de la vérification de l'état de Replicated 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 et mysql 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 dans min, 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 et RIGHT JOIN avec des colonnes en double dans les sous-requêtes.
  • Fixe erreur de segmentation pour certaines utilisations de replace_running_query et KILL QUERY.
  • Fixe l'ordre du source et last_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 pour Dictionary les bases de données.
  • Fixe la faible précision de uniqHLL12 et uniqCombined 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 pour Distributed 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 un MATERIALIZED 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 utilisant ALTER 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 en Distributed 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'utilisation GLOBAL 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 un MATERIALIZED 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 la table 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 et INSERT requête. Ajout du support pour les sous-requêtes dans DESCRIBE. Exemple: DESC TABLE remote('host', default.hits); DESC TABLE (SELECT 1); INSERT INTO TABLE FUNCTION remote('host', default.hits). Soutien pour INSERT INTO TABLE outre INSERT 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 fonctions DateTime 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. Le toRelativeHour/Minute/Second les fonctions peuvent prendre une valeur de type Date comme argument. Le now 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 in Cap'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 et conf.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 partie MergeTree table.
  • Ajouté le system.models tableau avec des informations sur chargé CatBoost machine de modèles d'apprentissage.
  • Ajouté le mysql et odbc fonction de table et correspondant MySQL et ODBC 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 que avgIfForEach 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 pour clickhouse-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 pour Kafka (Marek Vavruša).
  • Ajouté le intExp3 et intExp4 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 un INSERT 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 type Null (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 le clickhouse-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 et DateTime 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 dans USING .
  • 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 de varSampStable, varPopStable, stddevSampStable, stddevPopStable, covarSampStable, covarPopStable, corrStable.

Corrections de bugs:

  • Déduplication de données fixe après l'exécution d'un DROP ou DETACH 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 de CREATE MATERIALIZED VIEW les requêtes avec POPULATE .
  • 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 argument toStartOfDay .
  • Correction de l' addMonths et subtractMonths fonctions et l'arithmétique pour INTERVAL 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 pour DISTINCT , JOIN , et uniq fonctions agrégées et dictionnaires externes (Evgeniy Ivanov). Soutien pour UUID 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ôt openssl .
  • 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 et modulo (% de l'opérateur) (Mak Skorokhod).
  • -preprocessed les fichiers sont maintenant créés après modification umask (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 de OR 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 dans SummingMergeTree ; l'alignement de la Enum types de Pretty 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 pour clickhouse-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 pour range_hashed dictionnaire.
  • Correction d'un bug qui conduit à des lignes excessives dans le résultat de FULL et RIGHT 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 de DETACH 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 de Markdown.
  • 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 et lld sont intégrées dans le clickhouse binaire. Ils peuvent également être invoqués comme clickhouse clang et clickhouse lld .
  • Suppression de l'utilisation des extensions GNU du code. Permis à l' -Wextra option. Lors de la construction avec clang la valeur par défaut est libc++ plutôt libstdc++.
  • Extrait clickhouse_parsers et clickhouse_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 contiennent Nullable les colonnes ont été modifiées d'une manière incompatible avec l'arrière. Si vous avez ces tables, vous devez les convertir en TinyLog tapez avant de démarrer la nouvelle version du serveur. Pour ce faire, remplacez ENGINE = Log avec ENGINE = TinyLog dans le correspondant .sql fichier dans le metadata répertoire. Si votre table n'a pas Nullable les colonnes ou si le type de votre table n'est pas Log, 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 en runningDifferenceStartingWithFirstvalue 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 utilisant AggregateFunction 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ôt AggregateFunction(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.

Changelog pour 2017