{"id":36737,"date":"2019-10-31T22:13:29","date_gmt":"2019-10-31T19:13:29","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov\/"},"modified":"2019-10-31T22:13:29","modified_gmt":"2019-10-31T19:13:29","slug":"kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","title":{"rendered":"Comment nous avons test\u00e9 plusieurs bases de donn\u00e9es de s\u00e9ries temporelles","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Comment nous avons test\u00e9 plusieurs bases de donn\u00e9es de s\u00e9ries temporelles\" src=\"\/wp-content\/uploads\/2019\/08\/14e07eac02df8d1276c46c33276d8a26.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAu cours des derni\u00e8res ann\u00e9es, les bases de donn\u00e9es de s\u00e9ries temporelles (Time-series databases) sont pass\u00e9es d'une curiosit\u00e9 (sp\u00e9cialement utilis\u00e9e soit dans des syst\u00e8mes de surveillance ouverts (li\u00e9e \u00e0 des solutions sp\u00e9cifiques), soit dans des projets Big Data) \u00e0 un \u00ab produit de consommation courante \u00bb. En Russie, nous devons remercier Yandex et ClickHouse pour cela. Avant cela, si vous deviez stocker un grand volume de donn\u00e9es de s\u00e9ries temporelles, vous deviez soit accepter de mettre en place une monstrueuse pile Hadoop et de la maintenir, soit d'interagir avec des protocoles sp\u00e9cifiques \u00e0 chaque syst\u00e8me. <\/p>\n<p>Il peut sembler qu'en 2019, un article sur laquelle TSDB utiliser se r\u00e9sumerait \u00e0 une seule phrase : \u00ab utilisez simplement ClickHouse \u00bb. Mais\u2026 il y a des nuances. <\/p>\n<p>Il est vrai que ClickHouse se d\u00e9veloppe activement, que sa base d'utilisateurs s'\u00e9largit et que le support est tr\u00e8s r\u00e9actif, mais ne sommes-nous pas devenus les captifs du succ\u00e8s public de ClickHouse, qui \u00e9clipse peut-\u00eatre d'autres solutions, potentiellement plus efficaces et fiables ? <\/p>\n<p>Au d\u00e9but de l'ann\u00e9e derni\u00e8re, nous avons retravaill\u00e9 notre propre syst\u00e8me de surveillance, au cours de laquelle la question de choisir une base appropri\u00e9e pour le stockage des donn\u00e9es s'est pos\u00e9e. Je souhaite raconter ici l'histoire de ce choix.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>D\u00e9finition du probl\u00e8me<\/h4>\n<p>\nTout d'abord \u2014 une introduction n\u00e9cessaire. Pourquoi avons-nous besoin d'un syst\u00e8me de surveillance propre et comment \u00e9tait-il structur\u00e9 ?<\/p>\n<p>Nous avons commenc\u00e9 \u00e0 offrir des services de support en 2008, et en 2010, il est devenu clair qu'il \u00e9tait difficile d'agr\u00e9ger les donn\u00e9es sur les processus au sein de l'infrastructure client avec les solutions existantes \u00e0 l'\u00e9poque (nous parlons, h\u00e9las, de Cacti, Zabbix et de Graphite en d\u00e9veloppement).<\/p>\n<p>Nos principales exigences \u00e9taient :<\/p>\n<ul>\n<li>le support (\u00e0 l'\u00e9poque \u2014 dizaines, et \u00e0 terme \u2014 des centaines) de clients au sein d'un seul syst\u00e8me tout en ayant un syst\u00e8me de gestion des alertes centralis\u00e9 ;<\/li>\n<li>la flexibilit\u00e9 dans la gestion du syst\u00e8me d'alertes (escalade des alertes entre les intervenants, prise en compte des plannings, base de connaissances) ;<\/li>\n<li>la possibilit\u00e9 d'une d\u00e9taill\u00e9 des graphiques (Zabbix produisait alors des graphiques sous forme d'images) ;<\/li>\n<li>un stockage de longue dur\u00e9e d'un grand nombre de donn\u00e9es (un an ou plus) et la possibilit\u00e9 de les extraire rapidement.<\/li>\n<\/ul>\n<p>\nDans cet article, nous nous int\u00e9ressons au dernier point.<\/p>\n<p>En ce qui concerne le stockage, les exigences \u00e9taient les suivantes\u00a0:<\/p>\n<ul>\n<li>le syst\u00e8me doit fonctionner rapidement\u00a0;<\/li>\n<li>il serait souhaitable que le syst\u00e8me ait une interface SQL\u00a0;<\/li>\n<li>le syst\u00e8me doit \u00eatre stable et avoir une base d'utilisateurs active et un support (nous avons d\u00e9j\u00e0 \u00e9t\u00e9 confront\u00e9s \u00e0 la n\u00e9cessit\u00e9 de maintenir des syst\u00e8mes comme MemcacheDB, qui n\u2019est plus d\u00e9velopp\u00e9, ou le stockage distribu\u00e9 MooseFS, dont le bug tracker \u00e9tait en chinois\u00a0: nous ne souhaitons pas revivre cette histoire pour notre projet)\u00a0;<\/li>\n<li>conformit\u00e9 au th\u00e9or\u00e8me CAP : Consistance (n\u00e9cessaire) \u2014 les donn\u00e9es doivent \u00eatre \u00e0 jour, nous ne voulons pas que le syst\u00e8me de gestion des alertes ne re\u00e7oive pas de nouvelles donn\u00e9es et g\u00e9n\u00e8re des alertes sur l'absence de donn\u00e9es pour tous les projets\u00a0; Tol\u00e9rance aux partitions (n\u00e9cessaire) \u2014 nous ne voulons pas avoir un syst\u00e8me de Split Brain\u00a0; Disponibilit\u00e9 (non critique, en cas d\u2019existence d\u2019une r\u00e9plique active) \u2014 nous pouvons nous-m\u00eames passer au syst\u00e8me de secours en cas de panne, par le code.<\/li>\n<\/ul>\n<p>\n\u00c9trangement, \u00e0 l'\u00e9poque, la solution id\u00e9ale pour nous \u00e9tait MySQL. Notre structure de donn\u00e9es \u00e9tait tr\u00e8s simple\u00a0: id du serveur, id du compteur, timestamp et valeur\u00a0; la r\u00e9cup\u00e9ration rapide des donn\u00e9es chaudes \u00e9tait assur\u00e9e par la grande taille du buffer pool, tandis que la r\u00e9cup\u00e9ration des donn\u00e9es historiques \u00e9tait r\u00e9alis\u00e9e via SSD.<\/p>\n<p><img decoding=\"async\" alt=\"Comment nous avons test\u00e9 plusieurs bases de donn\u00e9es de s\u00e9ries temporelles\" src=\"\/wp-content\/uploads\/2019\/08\/555bff26c74badf85131c4d9198871af.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAinsi, nous avons r\u00e9ussi \u00e0 extraire des donn\u00e9es fra\u00eeches des deux derni\u00e8res semaines, avec une pr\u00e9cision \u00e0 la seconde en 200 ms avant le moment de l\u2019affichage complet des donn\u00e9es, et nous avons v\u00e9cu avec ce syst\u00e8me assez longtemps.<\/p>\n<p>Entre-temps, le temps passait et la quantit\u00e9 de donn\u00e9es augmentait. En 2016, le volume des donn\u00e9es atteignait des dizaines de t\u00e9raoctets, ce qui repr\u00e9sentait un co\u00fbt significatif dans le cadre de stockage SSD lou\u00e9s.<\/p>\n<p>\u00c0 ce moment-l\u00e0, les bases de donn\u00e9es colonne connues ont commenc\u00e9 \u00e0 se r\u00e9pandre activement, et nous avons commenc\u00e9 \u00e0 y penser s\u00e9rieusement\u00a0: dans les bases de donn\u00e9es colonne, les donn\u00e9es sont stock\u00e9es, comme on peut le comprendre, par colonnes, et si l'on regarde nos donn\u00e9es, il est facile de voir un grand nombre de doublons, qui pourraient, si l'on utilisait une base de donn\u00e9es colonne, \u00eatre compress\u00e9s.<\/p>\n<p><img decoding=\"async\" alt=\"Comment nous avons test\u00e9 plusieurs bases de donn\u00e9es de s\u00e9ries temporelles\" src=\"\/wp-content\/uploads\/2019\/08\/2e1a6010fcb09de8cd28ec826752d160.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCependant, le syst\u00e8me cl\u00e9 pour le travail de l\u2019entreprise continuait \u00e0 fonctionner de mani\u00e8re stable, et nous ne souhaitions pas exp\u00e9rimenter un passage \u00e0 autre chose.<\/p>\n<p>En 2017, lors de la conf\u00e9rence Percona Live \u00e0 San Jos\u00e9, les d\u00e9veloppeurs de Clickhouse se sont peut-\u00eatre pr\u00e9sent\u00e9s pour la premi\u00e8re fois. \u00c0 premi\u00e8re vue, le syst\u00e8me semblait pr\u00eat pour la production (apr\u00e8s tout, Yandex.Metrica est une production s\u00e9rieuse), le support \u00e9tait rapide et simple, et surtout, l'exploitation \u00e9tait facile. Depuis 2018, nous avons entam\u00e9 le processus de migration. Mais \u00e0 cette \u00e9poque, il y avait de nombreuses solutions TSDB \u00ab matures \u00bb et \u00e9prouv\u00e9es, et nous avons d\u00e9cid\u00e9 de consacrer du temps consid\u00e9rable \u00e0 comparer les alternatives pour nous assurer qu'il n'y avait pas de solutions alternatives \u00e0 Clickhouse qui r\u00e9pondent \u00e0 nos exigences.<\/p>\n<p>En plus des exigences d\u00e9j\u00e0 mentionn\u00e9es pour le stockage, de nouvelles exigences sont apparues :<\/p>\n<ul>\n<li>le nouveau syst\u00e8me doit garantir au minimum des performances \u00e9quivalentes \u00e0 celles de MySQL sur le m\u00eame mat\u00e9riel ;<\/li>\n<li>le stockage du nouveau syst\u00e8me doit occuper beaucoup moins d'espace ;<\/li>\n<li>La base de donn\u00e9es doit toujours \u00eatre facile \u00e0 g\u00e9rer ;<\/li>\n<li>nous voulions minimiser les modifications de l'application lors du changement de base de donn\u00e9es.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Quels syst\u00e8mes avons-nous commenc\u00e9 \u00e0 envisager<\/h4>\n<p>\n<b><u>Apache Hive\/Apache Impala<\/u><\/b><br \/>\nLe vieux et \u00e9prouv\u00e9 stack Hadoop. En gros, c'est une interface SQL construite au-dessus du stockage de donn\u00e9es dans des formats propri\u00e9taires sur HDFS. <\/p>\n<p>Avantages.<\/p>\n<ul>\n<li>Avec une exploitation stable, il est tr\u00e8s facile de scalabilit\u00e9 des donn\u00e9es.<\/li>\n<li>Il existe des solutions de stockage en colonnes (moins d'espace).<\/li>\n<li>Ex\u00e9cution tr\u00e8s rapide des t\u00e2ches parall\u00e9lis\u00e9es en pr\u00e9sence de ressources.<\/li>\n<\/ul>\n<p>\nInconv\u00e9nients.<\/p>\n<ul>\n<li>C'est Hadoop, et c'est compliqu\u00e9 \u00e0 exploiter. Si nous ne sommes pas pr\u00eats \u00e0 prendre une solution pr\u00eate \u00e0 l'emploi dans le cloud (et nous ne sommes pas pr\u00eats en raison des co\u00fbts), l'ensemble du stack devra \u00eatre assembl\u00e9 et maintenu par les administrateurs, ce que nous pr\u00e9f\u00e9rerions \u00e9viter.<\/li>\n<li>Les donn\u00e9es sont agr\u00e9g\u00e9es <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/blog\/2014\/04\/21\/using-apache-hadoop-and-impala-together-with-mysql-for-data-analysis\/\">vraiment rapidement<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nCependant :<\/p>\n<p><img decoding=\"async\" alt=\"Comment nous avons test\u00e9 plusieurs bases de donn\u00e9es de s\u00e9ries temporelles\" src=\"\/wp-content\/uploads\/2019\/08\/6baa1b6024def8c1c7518ef386cfc8d3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa vitesse est atteinte en scalant le nombre de serveurs de calcul. En d'autres termes, si nous sommes une grande entreprise, nous faisons de l'analyse et il est crucial pour notre activit\u00e9 d'agr\u00e9ger les informations le plus rapidement possible (m\u00eame au prix de l'utilisation d'un grand nombre de ressources de calcul), cela pourrait \u00eatre notre choix. Mais nous n'\u00e9tions pas pr\u00eats \u00e0 multiplier par plusieurs fois notre parc mat\u00e9riel pour la vitesse d'ex\u00e9cution des t\u00e2ches.<\/p>\n<p><b><u>Druid\/Pinot<\/u><\/b><\/p>\n<p>D\u00e9j\u00e0 beaucoup plus orient\u00e9 TSDB, mais encore une fois \u2014 stack Hadoop.<\/p>\n<p>Oui <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@leventov\/comparison-of-the-open-source-olap-systems-for-big-data-clickhouse-druid-and-pinot-8e042a5ed1c7\">article excellent comparant les avantages et les inconv\u00e9nients de Druid et Pinot par rapport \u00e0 ClickHouse <\/a><\/noindex>. <\/p>\n<p>En quelques mots : Druid et Pinot semblent mieux que ClickHouse dans les cas o\u00f9 :<\/p>\n<ul>\n<li>Vous avez une nature de donn\u00e9es h\u00e9t\u00e9rog\u00e8ne (dans notre cas, nous enregistrons uniquement des s\u00e9ries temporelles de m\u00e9triques serveur, il s'agit essentiellement d'une seule table. Mais il peut y avoir d'autres cas d'utilisation : des s\u00e9ries temporelles d'\u00e9quipements, des s\u00e9ries temporelles \u00e9conomiques, etc. - chacune avec sa propre structure, qui doit \u00eatre agr\u00e9g\u00e9e et trait\u00e9e).<\/li>\n<li>Cependant, il y a beaucoup de ces donn\u00e9es.<\/li>\n<li>Les tables et les donn\u00e9es avec des s\u00e9ries temporelles apparaissent et disparaissent (c'est-\u00e0-dire qu'un certain ensemble de donn\u00e9es arrive, est analys\u00e9 puis supprim\u00e9).<\/li>\n<li>Il n'y a pas de crit\u00e8re clair selon lequel les donn\u00e9es peuvent \u00eatre partitionn\u00e9es.<\/li>\n<\/ul>\n<p>\nDans les cas contraires, ClickHouse se montre plus performant, et c'est notre cas.<\/p>\n<p><b><u>ClickHouse<\/u><\/b><\/p>\n<ul>\n<li>Semblable \u00e0 SQL.<\/li>\n<li>Facile \u00e0 g\u00e9rer.<\/li>\n<li>Les gens disent qu'il fonctionne.<\/li>\n<\/ul>\n<p>\nIl figure sur la liste restreinte des tests.<\/p>\n<p><b><u>InfluxDB<\/u><\/b><\/p>\n<p>Alternative \u00e9trang\u00e8re \u00e0 ClickHouse. En termes de inconv\u00e9nients : la haute disponibilit\u00e9 n'est pr\u00e9sente que dans la version commerciale, mais il faut comparer.<\/p>\n<p>Il figure sur la liste restreinte des tests.<\/p>\n<p><b><u>Cassandra<\/u><\/b> <\/p>\n<p>D'une part, nous savons que des syst\u00e8mes de surveillance tels que, par exemple, l'utilisent pour stocker des s\u00e9ries temporelles m\u00e9triques. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.signalfx.com\/blog\/making-cassandra-perform-as-a-tsdb\/\">SignalFX<\/a><\/noindex> ou OkMeter. Cependant, il y a des sp\u00e9cificit\u00e9s.<\/p>\n<p>Cassandra n'est pas une base de donn\u00e9es colonne dans son sens habituel. Elle ressemble davantage \u00e0 une base de donn\u00e9es ligne, mais chaque ligne peut avoir un nombre diff\u00e9rent de colonnes, ce qui facilite l'organisation d'une repr\u00e9sentation en colonnes. Dans ce sens, il est clair qu'avec une limite de 2 milliards de colonnes, il est possible de stocker certaines donn\u00e9es pr\u00e9cis\u00e9ment dans les colonnes (comme les s\u00e9ries temporelles). Par exemple, MySQL a une limite de 4096 colonnes et il est facile de rencontrer l'erreur de code 1117 si l'on essaie de faire la m\u00eame chose.<\/p>\n<p>Le moteur Cassandra est con\u00e7u pour le stockage de grandes quantit\u00e9s de donn\u00e9es dans un syst\u00e8me distribu\u00e9 sans ma\u00eetre. Dans le cadre du th\u00e9or\u00e8me CAP, Cassandra favorise principalement l'AP, c'est-\u00e0-dire la disponibilit\u00e9 des donn\u00e9es et la r\u00e9sistance \u00e0 la partition. Ainsi, cet outil peut \u00eatre id\u00e9al si l'on a besoin d'\u00e9crire principalement dans cette base de donn\u00e9es et de la lire de mani\u00e8re assez occasionnelle. Il est donc logique d'utiliser Cassandra comme un syst\u00e8me de stockage 'froid'. C'est-\u00e0-dire comme un endroit de stockage fiable et \u00e0 long terme pour de grands ensembles de donn\u00e9es historiques qui sont rarement n\u00e9cessaires, mais qui peuvent \u00eatre r\u00e9cup\u00e9r\u00e9es si besoin. Cependant, pour une vision compl\u00e8te, nous allons \u00e9galement tester ce syst\u00e8me. Mais, comme je l'ai dit pr\u00e9c\u00e9demment, je n'ai pas le d\u00e9sir de r\u00e9\u00e9crire activement le code pour la solution de base de donn\u00e9es choisie, donc nous allons le tester de mani\u00e8re quelque peu limit\u00e9e \u2014 sans adapter la structure de la base aux sp\u00e9cificit\u00e9s de Cassandra.<\/p>\n<p><b><u>Prometheus<\/u><\/b><\/p>\n<p>Par curiosit\u00e9, nous avons d\u00e9cid\u00e9 de tester la performance du stockage Prometheus \u2014 simplement pour comprendre si nous sommes plus rapides que les solutions actuelles ou plus lents et dans quelle mesure.<\/p>\n<h4>M\u00e9thodologie et r\u00e9sultats du test<\/h4>\n<p>\nAinsi, nous avons test\u00e9 5 bases de donn\u00e9es dans les 6 configurations suivantes : ClickHouse (1 n\u0153ud), ClickHouse (table distribu\u00e9e sur 3 n\u0153uds), InfluxDB, Mysql 8, Cassandra (3 n\u0153uds) et Prometheus. Le plan de test est le suivant :<\/p>\n<ol>\n<li>nous chargeons des donn\u00e9es historiques sur une semaine (840 millions de valeurs par jour ; 208 000 m\u00e9triques) ;<\/li>\n<li>nous g\u00e9n\u00e9rons une charge d'\u00e9criture (nous avons examin\u00e9 6 modes de charge, voir ci-dessous) ;<\/li>\n<li>parall\u00e8lement \u00e0 l'\u00e9criture, nous effectuons p\u00e9riodiquement des s\u00e9lections, en \u00e9mulant les requ\u00eates d'un utilisateur travaillant avec des graphiques. Pour ne pas compliquer les choses, nous choisissons des donn\u00e9es sur 10 m\u00e9triques (c'est exactement le nombre sur le graphique CPU) pour une semaine.<\/li>\n<\/ol>\n<p>\nNous g\u00e9n\u00e9rons une charge, en \u00e9mulation du comportement de notre agent de surveillance, qui envoie des valeurs \u00e0 chaque m\u00e9trique toutes les 15 secondes. Dans ce cadre, il nous int\u00e9resse de varier :<\/p>\n<ul>\n<li>le nombre total de m\u00e9triques auxquelles des donn\u00e9es sont \u00e9crites ;<\/li>\n<li>l'intervalle d'envoi des valeurs \u00e0 une m\u00e9trique ;<\/li>\n<li>la taille du lot.<\/li>\n<\/ul>\n<p>\nConcernant la taille du lot. \u00c9tant donn\u00e9 que presque toutes nos bases de donn\u00e9es test\u00e9es ne recommandent pas de charger des insertions individuelles, nous aurons besoin d'un relais qui collecte les m\u00e9triques entrantes et les groupe par quantit\u00e9 suffisante pour les \u00e9crire dans la base par insertion par lot.<\/p>\n<p>De plus, pour mieux comprendre comment interpr\u00e9ter ensuite les donn\u00e9es obtenues, imaginons que nous n'envoyons pas simplement une multitude de m\u00e9triques, mais que ces m\u00e9triques sont organis\u00e9es en serveurs \u2014 avec 125 m\u00e9triques par serveur. Ici, le serveur est simplement une entit\u00e9 virtuelle \u2014 juste pour comprendre que, par exemple, 10 000 m\u00e9triques correspondent \u00e0 environ 80 serveurs.<\/p>\n<p>Et donc, en tenant compte de tout cela, voici nos 6 modes de charge pour la base de donn\u00e9es en mode \u00e9criture :<\/p>\n<p><img decoding=\"async\" alt=\"Comment nous avons test\u00e9 plusieurs bases de donn\u00e9es de s\u00e9ries temporelles\" src=\"\/wp-content\/uploads\/2019\/08\/3ba70050dc7e711cb8f3d14ac1a6707b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl y a deux aspects \u00e0 consid\u00e9rer. Tout d'abord, pour Cassandra, ces tailles de batch se sont r\u00e9v\u00e9l\u00e9es trop grandes; l\u00e0, nous avons utilis\u00e9 des valeurs de 50 ou 100. Deuxi\u00e8mement, comme Prometheus fonctionne strictement en mode pull, c'est-\u00e0-dire qu'il va chercher lui-m\u00eame les donn\u00e9es des sources de m\u00e9triques (et m\u00eame pushgateway, malgr\u00e9 son nom, ne change pas fondamentalement la situation), les charges correspondantes ont \u00e9t\u00e9 r\u00e9alis\u00e9es \u00e0 l'aide d'une combinaison de configurations statiques.<\/p>\n<p>Les r\u00e9sultats des tests sont les suivants :<\/p>\n<p><img decoding=\"async\" alt=\"Comment nous avons test\u00e9 plusieurs bases de donn\u00e9es de s\u00e9ries temporelles\" src=\"\/wp-content\/uploads\/2019\/08\/9df12bee66ad8c5df720ba08472efead.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Comment nous avons test\u00e9 plusieurs bases de donn\u00e9es de s\u00e9ries temporelles\" src=\"\/wp-content\/uploads\/2019\/08\/891090bf0461c7e3c48e38eb36f9e217.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Comment nous avons test\u00e9 plusieurs bases de donn\u00e9es de s\u00e9ries temporelles\" src=\"\/wp-content\/uploads\/2019\/08\/137f944b3578ab5bad4ebc5fa6f96b79.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Il convient de noter<\/b>: des requ\u00eates d'une rapidit\u00e9 fantastique depuis Prometheus, des requ\u00eates affreusement lentes depuis Cassandra, des requ\u00eates inacceptablement lentes depuis InfluxDB ; ClickHouse a remport\u00e9 la vitesse d'\u00e9criture, et Prometheus ne participe pas \u00e0 la comp\u00e9tition car il r\u00e9alise lui-m\u00eame des insertions internes et nous ne mesurons rien.<\/p>\n<p><u><b>En fin de compte<\/b><\/u>: ClickHouse et InfluxDB ont donn\u00e9 les meilleurs r\u00e9sultats, mais un cluster Influx ne peut \u00eatre construit qu'\u00e0 partir de la version Enterprise, qui co\u00fbte de l'argent, tandis que ClickHouse est gratuit et d\u00e9velopp\u00e9 en Russie. Il est logique qu'aux \u00c9tats-Unis, la pr\u00e9f\u00e9rence soit plut\u00f4t pour InfluxDB, tandis qu'ici, c'est en faveur de ClickHouse.<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/462111\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 (Time-series databases) \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0438\u0437 \u0434\u0438\u043a\u043e\u0432\u0438\u043d\u043d\u043e\u0439 \u0448\u0442\u0443\u043a\u0438 (\u0443\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u043b\u0438\u0431\u043e \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 (\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c), \u043b\u0438\u0431\u043e \u0432 Big Data \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445) \u0432 \u00ab\u0442\u043e\u0432\u0430\u0440 \u043d\u0430\u0440\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f\u00bb. \u041d\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0420\u0424 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u044d\u0442\u043e \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u042f\u043d\u0434\u0435\u043a\u0441\u0443 \u0438 ClickHouse\u2019\u0443. \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0431\u044b\u043b\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27518,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36737","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0417\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0431\u0430\u0437\u044b.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0417\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0431\u0430\u0437\u044b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:13:29+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Comment nous avons test\u00e9 plusieurs bases de donn\u00e9es de s\u00e9ries temporelles | ProHoster","description":"Au cours des derni\u00e8res ann\u00e9es, des bases de donn\u00e9es.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 | ProHoster","og:description":"\u0417\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0431\u0430\u0437\u044b.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:13:29+00:00","article:modified_time":"2019-10-31T19:13:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36737","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:38:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:39:24","updated":"2026-01-22 04:38:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/36737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=36737"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/36737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/27518"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=36737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=36737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=36737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}