ClickHouse/docs/fr/whats-new/changelog/2017.md
Ivan Blinkov d91c97d15d
[docs] replace underscores with hyphens (#10606)
* Replace underscores with hyphens

* remove temporary code

* fix style check

* fix collapse
2020-04-30 21:19:18 +03:00

23 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true f865c9653f 79 2017

Clickhouse Version 1.1.54327, 2017-12-21

Cette version contient des corrections de bugs pour la version précédente 1.1.54318:

  • Correction dun bug avec condition de concurrence possible dans la réplication qui pourrait conduire à la perte de données. Ce problème affecte les versions 1.1.54310 et 1.1.54318. Si vous utilisez lune de ces versions avec des tables répliquées, la mise à jour est fortement recommandée. Ce problème apparaît dans les journaux dans les messages davertissement comme Part ... from own log doesn't exist. Le problème est pertinent même si vous ne voyez pas ces messages dans les journaux.

Clickhouse Version 1.1.54318, 2017-11-30

Cette version contient des corrections de bugs pour la version précédente 1.1.54310:

  • Correction de suppressions de ligne incorrectes lors des fusions dans le moteur SummingMergeTree
  • Correction dune fuite de mémoire dans les moteurs mergetree non compliqués
  • Correction de la dégradation des performances avec des inserts fréquents dans les moteurs MergeTree
  • Correction dun problème qui causait la file dattente de réplication pour arrêter lexécution
  • Rotation fixe et archivage des journaux du serveur

Clickhouse Version 1.1.54310, 2017-11-01

Nouveauté:

  • Clé de partitionnement personnalisée pour la famille MergeTree des moteurs de table.
  • Kafka tableau moteur.
  • Ajout du support pour le chargement CatBoost modèles et les appliquer aux données stockées dans ClickHouse.
  • Ajout du support pour les fuseaux horaires avec des décalages non entiers de UTC.
  • Ajout du support pour les opérations arithmétiques avec des intervalles de temps.
  • La plage de valeurs pour les types Date et DateTime est étendue à lannée 2105.
  • Ajouté le CREATE MATERIALIZED VIEW x TO y requête (spécifie une table pour stocker les données dune vue matérialisée).
  • Ajouté le ATTACH TABLE requête sans arguments.
  • La logique de traitement des colonnes imbriquées avec des noms se terminant par-Map dans une table SummingMergeTree a été extraite dans la fonction dagrégat sumMap. Vous pouvez maintenant spécifier ces colonnes explicitement.
  • La taille maximale du dictionnaire IP trie est augmentée à 128M entrées.
  • Ajout de la fonction getSizeOfEnumType.
  • Ajout de la fonction dagrégat sumWithOverflow.
  • Ajout du support pour le format Dentrée Capn Proto.
  • Vous pouvez maintenant personnaliser le niveau de compression lors de lutilisation de lalgorithme zstd.

Modifications Incompatibles En arrière:

  • Création de tables temporaires avec un moteur autre que la Mémoire nest pas autorisé.
  • La création explicite de tables avec le moteur View ou MaterializedView nest pas autorisée.
  • Lors de la création de la table, une nouvelle vérification vérifie que lexpression de clé déchantillonnage est incluse dans la clé primaire.

Corrections De Bugs:

  • Correction des accrochages lors de linsertion synchrone dans une table distribuée.
  • Ajout et retrait non atomiques fixes de pièces dans des tables répliquées.
  • Les données insérées dans une vue matérialisée ne sont pas soumises à une déduplication inutile.
  • Lexécution dune requête vers une table distribuée pour laquelle le réplica local est en retard et les réplicas distants ne sont pas disponibles nentraîne plus derreur.
  • Les utilisateurs nont pas besoin dautorisations daccès au default base de données pour créer des tables temporaires plus.
  • Correction dun plantage lors de la spécification du type de tableau sans arguments.
  • Correction des interruptions lorsque le volume du disque contenant les journaux du serveur est plein.
  • Correction dun débordement dans la fonction toRelativeWeekNum pour la première semaine de Lépoque Unix.

Construire Des améliorations:

  • Plusieurs bibliothèques tierces (notamment Poco) ont été mises à jour et converties en sous-modules git.

Clickhouse Version 1.1.54304, 2017-10-19

Nouveauté:

  • Prise en charge TLS dans le protocole natif (pour activer, définir tcp_ssl_port dans config.xml ).

Corrections De Bugs:

  • ALTER pour les tables répliquées essaie maintenant de commencer à sexécuter dès que possible.
  • Fixe plante lors de la lecture des données avec le paramètre preferred_block_size_bytes=0.
  • Plantages fixes de clickhouse-client lorsque vous appuyez sur Page Down
  • Linterprétation correcte de certaines requêtes complexes avec GLOBAL IN et UNION ALL
  • FREEZE PARTITION fonctionne toujours atomiquement maintenant.
  • Les requêtes POST vides renvoient maintenant une réponse avec le code 411.
  • Correction derreurs dinterprétation pour des expressions comme CAST(1 AS Nullable(UInt8)).
  • Correction dune erreur lors de la lecture Array(Nullable(String)) les colonnes de MergeTree table.
  • Fixe sécraser lors de lanalyse des requêtes comme SELECT dummy AS dummy, dummy AS b
  • Les utilisateurs sont mis à jour correctement avec invalide users.xml
  • Manipulation correcte lorsquun dictionnaire exécutable renvoie un code de réponse différent de zéro.

Clickhouse Version 1.1.54292, 2017-09-20

Nouveauté:

  • Ajouté le pointInPolygon fonction pour travailler avec des coordonnées sur un plan de coordonnées.
  • Ajouté le sumMap fonction dagrégation pour calculer la somme des tableaux, similaire à SummingMergeTree.
  • Ajouté le trunc fonction. Amélioration des performances des fonctions darrondi (round, floor, ceil, roundToExp2) et corrigé la logique de la façon dont ils fonctionnent. Changé la logique de la roundToExp2 fonction pour les fractions et les nombres négatifs.
  • Le fichier exécutable ClickHouse dépend maintenant moins de la version libc. Le même fichier exécutable ClickHouse peut fonctionner sur une grande variété de systèmes Linux. Il existe toujours une dépendance lors de lutilisation de requêtes compilées (avec le paramètre compile = 1 qui nest pas utilisé par défaut).
  • Réduit le temps nécessaire à la compilation dynamique des requêtes.

Corrections De Bugs:

  • Correction dune erreur qui produisait parfois part ... intersects previous part messages et cohérence des répliques affaiblies.
  • Correction dune erreur qui a provoqué le verrouillage du serveur si ZooKeeper nétait pas disponible pendant larrêt.
  • Suppression de la journalisation excessive lors de la restauration des répliques.
  • Correction dune erreur dans LUnion toute la mise en œuvre.
  • Correction dune erreur dans la fonction concat qui sest produite si la première colonne dun bloc a le type de tableau.
  • La progression est maintenant affichée correctement dans le système.fusionne table.

Clickhouse Version 1.1.54289, 2017-09-13

Nouveauté:

  • SYSTEM les requêtes pour ladministration du serveur: SYSTEM RELOAD DICTIONARY, SYSTEM RELOAD DICTIONARIES, SYSTEM DROP DNS CACHE, SYSTEM SHUTDOWN, SYSTEM KILL.
  • Ajout de fonctions pour travailler avec des tableaux: concat, arraySlice, arrayPushBack, arrayPushFront, arrayPopBack, arrayPopFront.
  • Ajouter root et identity paramètres pour la configuration de ZooKeeper. Cela vous permet disoler des utilisateurs individuels sur le même cluster ZooKeeper.
  • Fonctions dagrégation ajoutées groupBitAnd, groupBitOr, et groupBitXor (pour la compatibilité, ils sont également disponibles sous les noms de BIT_AND, BIT_OR, et BIT_XOR).
  • Les dictionnaires externes peuvent être chargés à partir de MySQL en spécifiant un socket dans le système de fichiers.
  • Les dictionnaires externes peuvent être chargés à partir de MySQL sur SSL (ssl_cert, ssl_key, ssl_ca paramètre).
  • Ajouté le max_network_bandwidth_for_user paramètre pour limiter lutilisation globale de la bande passante pour les requêtes par utilisateur.
  • Soutien pour DROP TABLE pour les tables temporaires.
  • Support pour la lecture DateTime valeurs au format dhorodatage Unix de CSV et JSONEachRow format.
  • Les répliques en retard dans les requêtes distribuées sont maintenant exclues par défaut (le seuil par défaut est de 5 minutes).
  • Le verrouillage FIFO est utilisé pendant ALTER: une requête ALTER nest pas bloquée indéfiniment pour les requêtes en cours dexécution en continu.
  • Option à définir umask dans le fichier de configuration.
  • Amélioration des performances pour les requêtes avec DISTINCT .

Corrections De Bugs:

  • Amélioration du processus de suppression des anciens nœuds dans ZooKeeper. Auparavant, les anciens nœuds nétaient parfois pas supprimés sil y avait des insertions très fréquentes, ce qui faisait que le serveur était lent à sarrêter, entre autres choses.
  • Correction de la randomisation lors du choix des hôtes pour la connexion à ZooKeeper.
  • Correction de lexclusion des répliques en retard dans les requêtes distribuées si la réplique est localhost.
  • Correction dune erreur où une partie des données dans un ReplicatedMergeTree table pourrait être cassé après lexécution ALTER MODIFY sur un élément dans un Nested structure.
  • Correction dune erreur qui pourrait provoquer des requêtes SELECT “hang”.
  • Améliorations apportées aux requêtes DDL distribuées.
  • Correction de la requête CREATE TABLE ... AS <materialized view>.
  • Résolu à limpasse dans l ALTER ... CLEAR COLUMN IN PARTITION requête pour Buffer table.
  • Correction de la valeur par défaut invalide pour Enum s (0 au lieu du minimum) lors de lutilisation du JSONEachRow et TSKV format.
  • Résolu lapparition de processus zombies lors de lutilisation dun dictionnaire avec un executable source.
  • Correction de segfault pour la requête HEAD.

Workflow amélioré Pour développer Et Assembler ClickHouse:

  • Vous pouvez utiliser pbuilder pour construire ClickHouse.
  • Vous pouvez utiliser libc++ plutôt libstdc++ pour construit sur Linux.
  • Ajout dinstructions pour lutilisation doutils danalyse de code statique: Coverage, clang-tidy, cppcheck.

Veuillez Noter Lors De La Mise à Niveau:

  • Il y a maintenant une valeur par défaut plus élevée pour le paramètre MergeTree max_bytes_to_merge_at_max_space_in_pool (la taille totale maximale des parties de données à fusionner, en octets): elle est passée de 100 GiB à 150 GiB. Cela peut entraîner de grandes fusions sexécutant après la mise à niveau du serveur, ce qui pourrait entraîner une charge accrue sur le sous-système de disque. Si lespace libre disponible sur le serveur est inférieur au double de la quantité totale des fusions en cours dexécution, toutes les autres fusions sarrêteront, y compris les fusions de petites parties de données. Par conséquent, les requêtes Dinsertion échoueront avec le message “Merges are processing significantly slower than inserts.” Lutilisation de la SELECT * FROM system.merges requête pour surveiller la situation. Vous pouvez également vérifier le DiskSpaceReservedForMerge métrique dans l system.metrics table, ou en Graphite. Vous navez rien à faire pour résoudre ce problème, car le problème se résoudra une fois les grandes fusions terminées. Si vous trouvez cela inacceptable, vous pouvez restaurer la valeur précédente pour le max_bytes_to_merge_at_max_space_in_pool paramètre. Pour ce faire, allez à l <merge_tree> section dans config.xml, ensemble <merge_tree>``<max_bytes_to_merge_at_max_space_in_pool>107374182400</max_bytes_to_merge_at_max_space_in_pool> et redémarrer le serveur.

Clickhouse Version 1.1.54284, 2017-08-29

  • Cest une version de correction de la précédente 1.1.54282 libération. Il corrige les fuites dans le répertoire des pièces dans ZooKeeper.

Clickhouse Version 1.1.54282, 2017-08-23

Cette version contient des corrections de bugs pour la version précédente 1.1.54276:

  • Fixe DB::Exception: Assertion violation: !_path.empty() lors de linsertion dans une table distribuée.
  • Correction de lanalyse lors de linsertion au format RowBinary si les données dentrée commencent par;.
  • Errors during runtime compilation of certain aggregate functions (e.g. groupArray()).

Clickhouse Version 1.1.54276, 2017-08-16

Nouveauté:

  • Ajout dune section facultative avec pour une requête SELECT. Exemple de requête: WITH 1+1 AS a SELECT a, a*a
  • INSERT peut être effectué de manière synchrone dans une table distribuée: OK nest retourné quune fois toutes les données enregistrées sur tous les fragments. Ceci est activé par le paramètre insert_distributed_sync = 1.
  • Ajout du type de données UUID pour travailler avec des identifiants de 16 octets.
  • Ajout Dalias de CHAR, FLOAT et dautres types pour la compatibilité avec Tableau.
  • Ajout des fonctions toYYYYMM, toYYYYMMDD et toYYYYMMDDhhmmss pour convertir le temps en nombres.
  • Vous pouvez utiliser les adresses IP (avec le nom dhôte) pour identifier les serveurs pour les requêtes DDL en cluster.
  • Ajout du support pour les arguments non constants et les décalages négatifs dans la fonction substring(str, pos, len).
  • Ajout du paramètre max_size pour groupArray(max_size)(column) fonction dagrégation, et optimisé ses performances.

Les Principaux Changements:

  • Améliorations de la sécurité: tous les fichiers du serveur sont créés avec des autorisations 0640 (peuvent être modifiés via paramètre de configuration).
  • Amélioration des messages derreur pour les requêtes avec une syntaxe invalide.
  • Réduction significative de la consommation de mémoire et amélioration des performances lors de la fusion de grandes sections de données MergeTree.
  • Augmentation significative des performances des fusions de données pour le Remplacementmergetree engine.
  • Amélioration des performances pour les insertions asynchrones à partir dune table distribuée en combinant plusieurs insertions sources. Pour activer cette fonctionnalité, utilisez le paramètre distributed_directory_monitor_batch_inserts=1.

Modifications Incompatibles En arrière:

  • Modification du format binaire des états agrégés de groupArray(array_column) fonctions pour les tableaux.

Liste complète Des Modifications:

  • Ajouté le output_format_json_quote_denormals paramètre, qui permet la sortie des valeurs NaN et inf au format JSON.
  • Allocation de flux optimisée lors de la lecture à partir dune table distribuée.
  • Les paramètres peuvent être configurés en mode Lecture seule si la valeur ne change pas.
  • Ajout de la possibilité de récupérer des granules non entiers du moteur MergeTree afin de respecter les restrictions sur la taille de bloc spécifiée dans le paramètre preferred_block_size_bytes. Le but est de réduire la consommation de RAM et daugmenter la localisation du cache lors du traitement des requêtes à partir de tables avec de grandes colonnes.
  • Utilisation efficace des index qui contiennent des expressions comme toStartOfHour(x) pour des conditions comme toStartOfHour(x) op сonstexpr.
  • Ajout de nouveaux paramètres pour les moteurs MergeTree (la section merge_tree dans config.XML):
    • replicated_deduplication_window_seconds définit le nombre de secondes autorisé pour la déduplication des insertions dans les tables répliquées.
    • cleanup_delay_period définit la fréquence de démarrage du nettoyage pour supprimer les données obsolètes.
    • replicated_can_become_leader peut empêcher une réplique de devenir le leader (et daffecter des fusions).
  • Nettoyage accéléré pour supprimer les données obsolètes de ZooKeeper.
  • Plusieurs améliorations et corrections pour les requêtes ddl en cluster. Un intérêt particulier est le nouveau paramètre distributed_ddl_task_timeout, qui limite le temps dattente dune réponse des serveurs du cluster. Si une requête ddl na pas été effectuée sur tous les hôtes, une réponse contiendra une erreur de délai dattente et une requête sera exécutée en mode asynchrone.
  • Amélioration de laffichage des traces de pile dans les journaux du serveur.
  • Ajouté le “none” valeur pour la méthode de compression.
  • Vous pouvez utiliser plusieurs sections dictionaries_config dans config.XML.
  • Il est possible de se connecter à MySQL via un socket dans le système de fichiers.
  • Système.table de pièces a une nouvelle colonne avec des informations sur la taille des marques, en octets.

Corrections De Bugs:

  • Les tables distribuées utilisant une table de fusion fonctionnent maintenant correctement pour une requête SELECT avec une condition sur le _table champ.
  • Correction dune condition de course rare dans ReplicatedMergeTree lors de la vérification des pièces de données.
  • Fixe le gel sur “leader election” lors du démarrage dun serveur.
  • Le paramètre max_replica_delay_for_distributed_queries a été ignoré lors de lutilisation dune réplique locale de la source de données. Ce problème a été corrigé.
  • Correction dun comportement incorrect de ALTER TABLE CLEAR COLUMN IN PARTITION lorsque vous tentez de nettoyer une colonne non existante.
  • Correction dune exception dans la fonction multiIf lors de lutilisation de tableaux ou de chaînes vides.
  • Correction dallocations de mémoire excessives lors de la désérialisation du format natif.
  • Correction dune mise à jour automatique incorrecte des dictionnaires Trie.
  • Correction dune exception lors de lexécution de requêtes avec une clause GROUP BY à partir dune table de fusion lors de lutilisation Dun exemple.
  • Correction dun plantage de GROUP BY lors de lutilisation de distributed_aggregation_memory_efficient=1.
  • Vous pouvez maintenant spécifier la base de données.table dans le côté droit de IN et JOIN.
  • Trop de threads ont été utilisés pour lagrégation parallèle. Ce problème a été corrigé.
  • Correction de la façon dont le “if” fonction fonctionne avec des arguments FixedString.
  • SELECT a mal fonctionné à partir dune table distribuée pour les fragments avec un poids de 0. Ce problème a été corrigé.
  • Exécuter CREATE VIEW IF EXISTS no longer causes crashes.
  • Correction dun comportement incorrect lorsque input_format_skip_unknown_fields = 1 est défini et quil existe des nombres négatifs.
  • Correction dune boucle infinie dans le dictGetHierarchy() fonction sil y a des données non valides dans le dictionnaire.
  • Fixe Syntax error: unexpected (...) erreurs lors de lexécution de requêtes distribuées avec des sous-requêtes dans une clause IN ou JOIN et des tables de fusion.
  • Correction dune interprétation incorrecte Dune requête SELECT à partir de tables de dictionnaire.
  • Correction de l “Cannot mremap” erreur lors de lutilisation de tableaux dans In et JOIN clauses avec plus de 2 milliards déléments.
  • Correction du basculement pour les dictionnaires avec MySQL comme source.

Workflow amélioré Pour développer Et Assembler ClickHouse:

  • Construit peuvent être assemblés en Arcadie.
  • Vous pouvez utiliser gcc 7 pour compiler ClickHouse.
  • Les builds parallèles utilisant ccache + distcc sont plus rapides maintenant.

Clickhouse Version 1.1.54245, 2017-07-04

Nouveauté:

  • DDL distribué (par exemple, CREATE TABLE ON CLUSTER)
  • La réplication de la requête ALTER TABLE CLEAR COLUMN IN PARTITION.
  • Le moteur pour les tables de dictionnaire (accès aux données du dictionnaire sous la forme dune table).
  • Moteur de base de données de dictionnaire (ce type de base de données a automatiquement des tables de dictionnaire disponibles pour tous les dictionnaires externes connectés).
  • Vous pouvez vérifier les mises à jour du dictionnaire en envoyant une demande à la source.
  • Noms de colonnes qualifiés
  • Les identificateurs entre des guillemets doubles.
  • Sessions dans Linterface HTTP.
  • La requête OPTIMIZE pour une table répliquée peut sexécuter non seulement sur le leader.

Modifications Incompatibles En arrière:

  • Supprimé ensemble GLOBAL.

Des Modifications Mineures:

  • Maintenant, après le déclenchement dune alerte, le journal imprime la trace complète de la pile.
  • Détendu la vérification du nombre de pièces de données endommagées/supplémentaires au démarrage (il y avait trop de faux positifs).

Corrections De Bugs:

  • Correction dune mauvaise connexion “sticking” lors de linsertion dans une table distribuée.
  • GLOBAL in fonctionne maintenant pour une requête à partir dune table de fusion qui regarde une table distribuée.
  • Le nombre incorrect de cœurs a été détecté sur une machine virtuelle Google Compute Engine. Ce problème a été corrigé.
  • Changements dans le fonctionnement dune source exécutable de dictionnaires externes mis en cache.
  • Correction de la comparaison des chaînes contenant des caractères nuls.
  • Correction de la comparaison des champs de clé primaire Float32 avec des constantes.
  • Auparavant, une estimation incorrecte de la taille dun champ pouvait entraîner des allocations trop importantes.
  • Correction dun plantage lors de linterrogation dune colonne Nullable ajoutée à une table en utilisant ALTER.
  • Correction dun plantage lors du tri par une colonne Nullable, si le nombre de lignes est inférieur à la limite.
  • Correction dune commande par sous-requête composée uniquement de valeurs constantes.
  • Auparavant, une table répliquée pouvait rester dans létat non valide après léchec dune table de suppression.
  • Les alias des sous-requêtes scalaires avec des résultats vides ne sont plus perdus.
  • Maintenant, une requête qui a utilisé la compilation néchoue pas avec une erreur si le fichier. so est endommagé.