{"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\/cs\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","title":{"rendered":"Jak jsme testovali r\u016fzn\u00e9 datab\u00e1ze \u010dasov\u00fdch \u0159ad","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Jak jsme testovali r\u016fzn\u00e9 datab\u00e1ze \u010dasov\u00fdch \u0159ad\" src=\"\/wp-content\/uploads\/2019\/08\/14e07eac02df8d1276c46c33276d8a26.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV posledn\u00edch n\u011bkolika letech se datab\u00e1ze \u010dasov\u00fdch \u0159ad (Time-series databases) prom\u011bnily z kuriozity (u\u017e\u00edvan\u00e9 bu\u010f v otev\u0159en\u00fdch monitorovac\u00edch syst\u00e9mech (a v\u00e1zan\u00e9 na konkr\u00e9tn\u00ed \u0159e\u0161en\u00ed), nebo v projektech Big Data) na \"spot\u0159ebn\u00ed zbo\u017e\u00ed\". Na \u00fazem\u00ed Rusk\u00e9 federace za to zaslou\u017e\u00edme pod\u011bkov\u00e1n\u00ed Yandxu a ClickHouse. Do t\u00e9 doby, pokud jste pot\u0159ebovali uchovat velk\u00e9 mno\u017estv\u00ed \u010dasov\u00fdch dat, museli jste se sm\u00ed\u0159it s nutnost\u00ed nasadit monument\u00e1ln\u00ed Hadoop stack a jeho udr\u017eov\u00e1n\u00ed, nebo komunikovat s protokoly individu\u00e1ln\u00edmi pro ka\u017ed\u00fd syst\u00e9m. <\/p>\n<p>M\u016f\u017ee se zd\u00e1t, \u017ee v roce 2019 bude \u010dl\u00e1nek o tom, jakou TSDB pou\u017e\u00edt, sest\u00e1vat z jedn\u00e9 v\u011bty: \"jednodu\u0161e pou\u017eijte ClickHouse\". Ale\u2026 jsou tu nuanse. <\/p>\n<p>Opravdu, ClickHouse se aktivn\u011b vyv\u00edj\u00ed, u\u017eivatelsk\u00e1 z\u00e1kladna roste a podpora je velmi aktivn\u00ed, ale nestali jsme se ob\u011b\u0165mi ve\u0159ejn\u00e9ho \u00fasp\u011bchu ClickHouse, kter\u00fd zasti\u0148uje jin\u00e9, mo\u017en\u00e1 efektivn\u011bj\u0161\u00ed\/spolehliv\u011bj\u0161\u00ed \u0159e\u0161en\u00ed? <\/p>\n<p>Na za\u010d\u00e1tku lo\u0148sk\u00e9ho roku jsme se pustili do p\u0159epracov\u00e1n\u00ed na\u0161eho vlastn\u00edho monitorovac\u00edho syst\u00e9mu, b\u011bhem kter\u00e9ho jsme se dostali k ot\u00e1zce v\u00fdb\u011bru vhodn\u00e9 datab\u00e1ze pro ukl\u00e1d\u00e1n\u00ed dat. O historii t\u00e9to volby bych zde cht\u011bl vypr\u00e1v\u011bt.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Formulace \u00fakolu<\/h4>\n<p>\nNejprve \u2014 nezbytn\u00e9 \u00favodn\u00ed slovo. Pro\u010d pot\u0159ebujeme vlastn\u00ed monitorovac\u00ed syst\u00e9m a jak byl uspo\u0159\u00e1d\u00e1n?<\/p>\n<p>Slu\u017eby podpory jsme za\u010dali poskytovat v roce 2008 a do roku 2010 bylo jasn\u00e9, \u017ee agregovat data o procesech prob\u00edhaj\u00edc\u00edch v klientsk\u00e9 infrastruktu\u0159e s \u0159e\u0161en\u00edmi, kter\u00e1 existovala v t\u00e9 dob\u011b, se stalo slo\u017eit\u00fdm (mluv\u00edme o, promi\u0148te, Cacti, Zabbixu a vznikaj\u00edc\u00edm Graphite).<\/p>\n<p>Na\u0161imi hlavn\u00edmi po\u017eadavky byly:<\/p>\n<ul>\n<li>zaji\u0161t\u011bn\u00ed podpory (v t\u00e9 dob\u011b \u2014 des\u00edtek, a do budoucna \u2014 stovek) klient\u016f v r\u00e1mci jednoho syst\u00e9mu a p\u0159itom m\u00edt centralizovan\u00fd syst\u00e9m spr\u00e1vy upozorn\u011bn\u00ed;<\/li>\n<li>flexibilita v \u0159\u00edzen\u00ed syst\u00e9mu upozorn\u011bn\u00ed (eskalace upozorn\u011bn\u00ed mezi slu\u017ebami, zohledn\u011bn\u00ed harmonogram\u016f, znalostn\u00ed b\u00e1ze);<\/li>\n<li>mo\u017enost hlubok\u00e9 detailizace graf\u016f (Zabbix tehdy kreslil grafy jako obr\u00e1zky);<\/li>\n<li>dlouhodob\u00e9 uchov\u00e1n\u00ed velk\u00e9ho mno\u017estv\u00ed dat (rok a v\u00edce) a mo\u017enost jejich rychl\u00e9 v\u00fdb\u011bru.<\/li>\n<\/ul>\n<p>\nV tomto \u010dl\u00e1nku n\u00e1s zaj\u00edm\u00e1 posledn\u00ed bod.<\/p>\n<p>Pokud jde o \u00falo\u017ei\u0161t\u011b, po\u017eadavky byly n\u00e1sleduj\u00edc\u00ed:<\/p>\n<ul>\n<li>syst\u00e9m by m\u011bl fungovat rychle;<\/li>\n<li>bylo by \u017e\u00e1douc\u00ed, aby syst\u00e9m m\u011bl SQL rozhran\u00ed;<\/li>\n<li>syst\u00e9m by m\u011bl b\u00fdt stabiln\u00ed a m\u00edt aktivn\u00ed u\u017eivatelskou z\u00e1kladnu a podporu (n\u011bkdy jsme se pot\u00fdkali s pot\u0159ebou podporovat takov\u00e9 syst\u00e9my, jako je MemcacheDB, kterou p\u0159estali vyv\u00edjet, nebo distribuovan\u00e9 \u00falo\u017ei\u0161t\u011b MooseFS, jeho\u017e bug tracker byl veden v \u010d\u00edn\u0161tin\u011b; necht\u011bli jsme opakovat tento p\u0159\u00edb\u011bh pro n\u00e1\u0161 projekt);<\/li>\n<li>shoda s CAP teori\u00ed: Consitency (nutn\u00e9) \u2014 data mus\u00ed b\u00fdt aktu\u00e1ln\u00ed, nechceme, aby syst\u00e9m spr\u00e1vy upozorn\u011bn\u00ed nedostal nov\u00e1 data a vyhazoval alerty o nep\u0159\u00edchodu dat pro v\u0161echny projekty; Partition Tolerance (nutn\u00e9) \u2014 nechceme m\u00edt Split Brain syst\u00e9m; Availability (nen\u00ed kritick\u00e9, pokud existuje aktivn\u00ed replikace) \u2014 m\u016f\u017eeme p\u0159epnout na z\u00e1lo\u017en\u00ed syst\u00e9m v p\u0159\u00edpad\u011b hav\u00e1rie, k\u00f3dem.<\/li>\n<\/ul>\n<p>\nJak se uk\u00e1zalo, ide\u00e1ln\u00edm \u0159e\u0161en\u00edm pro n\u00e1s byla MySQL. Na\u0161e struktura dat byla maxim\u00e1ln\u011b jednoduch\u00e1: id serveru, id m\u011b\u0159i\u010de, timestamp a hodnota; rychl\u00e9 vyhled\u00e1v\u00e1n\u00ed aktu\u00e1ln\u00edch dat bylo zaji\u0161t\u011bno velkou velikost\u00ed buffer poolu, a vyhled\u00e1v\u00e1n\u00ed historick\u00fdch dat \u2014 SSD.<\/p>\n<p><img decoding=\"async\" alt=\"Jak jsme testovali r\u016fzn\u00e9 datab\u00e1ze \u010dasov\u00fdch \u0159ad\" src=\"\/wp-content\/uploads\/2019\/08\/555bff26c74badf85131c4d9198871af.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTak jsme dos\u00e1hli vyhled\u00e1v\u00e1n\u00ed \u010derstv\u00fdch dvout\u00fddenn\u00edch dat s detailnost\u00ed na sekundu za 200 ms do okam\u017eiku \u00fapln\u00e9ho vykreslen\u00ed dat, a v tomto syst\u00e9mu jsme \u017eili docela dlouho.<\/p>\n<p>Mezit\u00edm ub\u00edhal \u010das a mno\u017estv\u00ed dat rostlo. K roku 2016 objemy dat dos\u00e1hly des\u00edtek terabajt\u016f, co\u017e v podm\u00ednk\u00e1ch pronaj\u00edman\u00fdch SSD \u00falo\u017ei\u0161\u0165 bylo v\u00fdznamn\u00fdm n\u00e1kladem.<\/p>\n<p>V tuto chv\u00edli se vyv\u00edjela popularita sloupcov\u00fdch datab\u00e1z\u00ed, o kter\u00fdch jsme za\u010dali aktivn\u011b p\u0159em\u00fd\u0161let: ve sloupcov\u00fdch DB jsou data uchov\u00e1v\u00e1na, jak je z\u0159ejm\u00e9, ve sloupc\u00edch, a pokud se pod\u00edv\u00e1me na na\u0161e data, je snadn\u00e9 vid\u011bt velk\u00e9 mno\u017estv\u00ed duplik\u00e1t\u016f, kter\u00e9 by se daly v p\u0159\u00edpad\u011b pou\u017eit\u00ed sloupcov\u00e9 DB stla\u010dit kompres\u00ed.<\/p>\n<p><img decoding=\"async\" alt=\"Jak jsme testovali r\u016fzn\u00e9 datab\u00e1ze \u010dasov\u00fdch \u0159ad\" src=\"\/wp-content\/uploads\/2019\/08\/2e1a6010fcb09de8cd28ec826752d160.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNicm\u00e9n\u011b kl\u00ed\u010dov\u00fd syst\u00e9m pro fungov\u00e1n\u00ed spole\u010dnosti nad\u00e1le fungoval stabiln\u011b, a experimentovat s p\u0159echodem na n\u011bco jin\u00e9ho jsme necht\u011bli.<\/p>\n<p>V roce 2017 na konferenci Percona Live v San Jose se poprv\u00e9 p\u0159edstavili v\u00fdvoj\u00e1\u0159i Clickhouse. Na prvn\u00ed pohled byla tato syst\u00e9m p\u0159ipravena na produkci (Yandex.Metrika je skute\u010dn\u00e1 produkce), podpora byla rychl\u00e1 a jednoduch\u00e1, a co je nejd\u016fle\u017eit\u011bj\u0161\u00ed, provoz byl snadn\u00fd. Od roku 2018 jsme zah\u00e1jili proces p\u0159echodu. Ale do t\u00e9 doby u\u017e existovalo mnoho \"dosp\u011bl\u00fdch\" a osv\u011bd\u010den\u00fdch syst\u00e9m\u016f TSDB, a rozhodli jsme se v\u011bnovat v\u00fdznamn\u00fd \u010das srovn\u00e1n\u00ed alternativ, abychom se ujistili, \u017ee alternativy k Clickhouse podle na\u0161ich po\u017eadavk\u016f neexistuj\u00ed.<\/p>\n<p>Krom\u011b ji\u017e uveden\u00fdch po\u017eadavk\u016f na \u00falo\u017ei\u0161t\u011b se objevily nov\u00e9:<\/p>\n<ul>\n<li>nov\u00fd syst\u00e9m by m\u011bl zaji\u0161\u0165ovat alespo\u0148 stejn\u00fd v\u00fdkon jako MySQL na stejn\u00e9m mno\u017estv\u00ed hardwaru;<\/li>\n<li>\u00falo\u017ei\u0161t\u011b nov\u00e9ho syst\u00e9mu by m\u011blo zab\u00edrat v\u00fdrazn\u011b m\u00e9n\u011b m\u00edsta;<\/li>\n<li>DBMS by st\u00e1le m\u011bla b\u00fdt snadno spravovateln\u00e1;<\/li>\n<li>cht\u011bli jsme minim\u00e1ln\u011b m\u011bnit aplikaci p\u0159i zm\u011bn\u011b DBMS.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Jak\u00e9 syst\u00e9my jsme za\u010dali zva\u017eovat<\/h4>\n<p>\n<b><u>Apache Hive\/Apache Impala<\/u><\/b><br \/>\nStar\u00fd osv\u011bd\u010den\u00fd Hadoop stack. V podstat\u011b je to SQL rozhran\u00ed postaven\u00e9 na vlastn\u00edch form\u00e1tech ukl\u00e1d\u00e1n\u00ed dat v HDFS. <\/p>\n<p>V\u00fdhody.<\/p>\n<ul>\n<li>P\u0159i stabiln\u00edm provozu je velmi snadn\u00e9 \u0161k\u00e1lovat data.<\/li>\n<li>Existuj\u00ed sloupcov\u00e1 \u0159e\u0161en\u00ed pro ukl\u00e1d\u00e1n\u00ed dat (m\u00e9n\u011b m\u00edsta).<\/li>\n<li>Velmi rychl\u00e9 vykon\u00e1v\u00e1n\u00ed paralelizovan\u00fdch \u00faloh p\u0159i dostatku zdroj\u016f.<\/li>\n<\/ul>\n<p>\nNev\u00fdhody.<\/p>\n<ul>\n<li>To je Hadoop, a je slo\u017eit\u00fd na provoz. Pokud nejsme p\u0159ipraveni vz\u00edt hotov\u00e9 \u0159e\u0161en\u00ed v cloudu (a to nejsme kv\u016fli cen\u011b), bude nutn\u00e9 cel\u00fd stack sestavit a udr\u017eovat rukama administr\u00e1tor\u016f, a to se n\u00e1m opravdu nechce.<\/li>\n<li>Data jsou agregov\u00e1na <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/blog\/2014\/04\/21\/using-apache-hadoop-and-impala-together-with-mysql-for-data-analysis\/\">opravdu rychle<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nNicm\u00e9n\u011b:<\/p>\n<p><img decoding=\"async\" alt=\"Jak jsme testovali r\u016fzn\u00e9 datab\u00e1ze \u010dasov\u00fdch \u0159ad\" src=\"\/wp-content\/uploads\/2019\/08\/6baa1b6024def8c1c7518ef386cfc8d3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRychlost se dosahuje \u0161k\u00e1lov\u00e1n\u00edm po\u010dtu v\u00fdpo\u010detn\u00edch server\u016f. Jin\u00fdmi slovy, pokud jsme velk\u00e1 firma, zab\u00fdv\u00e1me se analytikou a je pro podnik kriticky d\u016fle\u017eit\u00e9 co nejrychleji agregovat informace (i za cenu vyu\u017eit\u00ed velk\u00e9ho mno\u017estv\u00ed v\u00fdpo\u010detn\u00edch zdroj\u016f), m\u016f\u017ee to b\u00fdt na\u0161e volba. Ale nebyli jsme p\u0159ipraveni mnohon\u00e1sobn\u011b zvy\u0161ovat po\u010det hardwaru pro rychlost vykon\u00e1v\u00e1n\u00ed \u00faloh.<\/p>\n<p><b><u>Druid\/Pinot<\/u><\/b><\/p>\n<p>Ji\u017e mnohem v\u00edce o konkr\u00e9tn\u011b TSDB, ale op\u011bt \u2013 Hadoop stack.<\/p>\n<p>Existuje <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@leventov\/comparison-of-the-open-source-olap-systems-for-big-data-clickhouse-druid-and-pinot-8e042a5ed1c7\">skv\u011bl\u00fd \u010dl\u00e1nek, kter\u00fd porovn\u00e1v\u00e1 v\u00fdhody a nev\u00fdhody Druid a Pinot v porovn\u00e1n\u00ed s ClickHouse <\/a><\/noindex>. <\/p>\n<p>Pokud bych to m\u011bl shrnout: Druid\/Pinot vypadaj\u00ed l\u00e9pe ne\u017e Clickhouse v p\u0159\u00edpadech, kdy:<\/p>\n<ul>\n<li>M\u00e1te heterogenn\u00ed charakter dat (v na\u0161em p\u0159\u00edpad\u011b zaznamen\u00e1v\u00e1me pouze \u010dasov\u00e9 \u0159ady serverov\u00fdch metrik, a v podstat\u011b to je jedna tabulka. Mohou v\u0161ak existovat i jin\u00e9 p\u0159\u00edpady: \u010dasov\u00e9 \u0159ady za\u0159\u00edzen\u00ed, ekonomick\u00e9 \u010dasov\u00e9 \u0159ady atd. \u2014 ka\u017ed\u00fd s vlastn\u00ed strukturou, kter\u00e9 je t\u0159eba agregovat a zpracov\u00e1vat).<\/li>\n<li>P\u0159itom t\u011bchto dat je skute\u010dn\u011b hodn\u011b.<\/li>\n<li>Tabulky a data s \u010dasov\u00fdmi \u0159adami se objevuj\u00ed a miz\u00ed (to znamen\u00e1, \u017ee n\u011bjak\u00e1 sada dat p\u0159i\u0161la, byla analyzov\u00e1na a odstran\u011bna).<\/li>\n<li>Neexistuje jasn\u00e9 krit\u00e9rium, podle kter\u00e9ho by mohla b\u00fdt data partitionov\u00e1na.<\/li>\n<\/ul>\n<p>\nV opa\u010dn\u00fdch p\u0159\u00edpadech se l\u00e9pe ukazuje ClickHouse, a to je n\u00e1\u0161 p\u0159\u00edpad.<\/p>\n<p><b><u>ClickHouse<\/u><\/b><\/p>\n<ul>\n<li>Podobn\u00e9 SQL.<\/li>\n<li>Snadn\u00e9 na spr\u00e1vu.<\/li>\n<li>Lid\u00e9 \u0159\u00edkaj\u00ed, \u017ee funguje.<\/li>\n<\/ul>\n<p>\nDost\u00e1v\u00e1 se do u\u017e\u0161\u00edho v\u00fdb\u011bru pro testov\u00e1n\u00ed.<\/p>\n<p><b><u>InfluxDB<\/u><\/b><\/p>\n<p>Zahrani\u010dn\u00ed alternativa k ClickHouse. Mezi nedostatky: High Availability je k dispozici pouze v komer\u010dn\u00ed verzi, ale je pot\u0159eba to porovnat.<\/p>\n<p>Dost\u00e1v\u00e1 se do u\u017e\u0161\u00edho v\u00fdb\u011bru pro testov\u00e1n\u00ed.<\/p>\n<p><b><u>Cassandra<\/u><\/b> <\/p>\n<p>Na jedn\u00e9 stran\u011b v\u00edme, \u017ee se pou\u017e\u00edv\u00e1 pro ukl\u00e1d\u00e1n\u00ed metrick\u00fdch \u010dasov\u00fdch \u0159ad v syst\u00e9mech monitorov\u00e1n\u00ed, jako nap\u0159\u00edklad <noindex><a rel=\"nofollow\" href=\"https:\/\/www.signalfx.com\/blog\/making-cassandra-perform-as-a-tsdb\/\">SignalFX<\/a><\/noindex> nebo OkMeter. Nicm\u00e9n\u011b je zde ur\u010dit\u00e1 specifi\u010dnost.<\/p>\n<p>Cassandra nen\u00ed sloupcov\u00e1 datab\u00e1ze v obvykl\u00e9m smyslu. Vypad\u00e1 v\u00edce jako \u0159\u00e1dkov\u00e1, ale v ka\u017ed\u00e9m \u0159\u00e1dku m\u016f\u017ee b\u00fdt r\u016fzn\u00fd po\u010det sloupc\u016f, co\u017e usnad\u0148uje organizaci sloupcov\u00e9ho zobrazen\u00ed. V tomto smyslu je jasn\u00e9, \u017ee p\u0159i omezen\u00ed na 2 miliardy sloupc\u016f lze ulo\u017eit n\u011bjak\u00e1 data pr\u00e1v\u011b ve sloupc\u00edch (nap\u0159\u00edklad \u010dasov\u00e9 \u0159ady). Nap\u0159\u00edklad v MySQL je omezen\u00ed na 4096 sloupc\u016f a je snadn\u00e9 narazit na chybu s k\u00f3dem 1117, pokud se pokus\u00edte ud\u011blat to sam\u00e9.<\/p>\n<p>Datab\u00e1zov\u00fd syst\u00e9m Cassandra je navr\u017een pro ukl\u00e1d\u00e1n\u00ed velk\u00e9ho objemu dat v distribuovan\u00e9m syst\u00e9mu bez centr\u00e1ln\u00edho uzlu a v v\u00fd\u0161e zm\u00edn\u011bn\u00e9 CAP teorii se v\u00edce zam\u011b\u0159uje na AP, co\u017e znamen\u00e1 dostupnost dat a odolnost v\u016f\u010di rozd\u011blen\u00ed partition. T\u00edm p\u00e1dem je tento n\u00e1stroj v\u00fdbornou volbou, pokud pot\u0159ebujete pouze zapisovat do t\u00e9to datab\u00e1ze a dostate\u010dn\u011b z\u0159\u00eddka z n\u00ed \u010d\u00edst. V tomto p\u0159\u00edpad\u011b je logick\u00e9 pou\u017e\u00edt Cassandru jako \"studena\" \u00falo\u017ei\u0161t\u011b. Tedy jako dlouhodob\u00e9 spolehliv\u00e9 m\u00edsto pro ukl\u00e1d\u00e1n\u00ed velk\u00fdch objem\u016f historick\u00fdch dat, kter\u00e1 jsou z\u0159\u00eddka pot\u0159ebn\u00e1, ale pokud je t\u0159eba, mohou b\u00fdt snadno vyta\u017eena. Nicm\u00e9n\u011b, abychom m\u011bli celkov\u00fd obraz, otestujeme ji tak\u00e9. Jak jsem ji\u017e zm\u00ednil, nem\u00e1m v \u00famyslu aktivn\u011b p\u0159episovat kod pro zvolen\u00e9 \u0159e\u0161en\u00ed datab\u00e1ze, tak\u017ee jej budeme testovat v omezen\u00e9m rozsahu \u2014 bez \u00fapravy struktury datab\u00e1ze podle specifikace Cassandry.<\/p>\n<p><b><u>Prometheus<\/u><\/b><\/p>\n<p>A z \u010dist\u00e9 zv\u011bdavosti jsme se rozhodli otestovat v\u00fdkon \u00falo\u017ei\u0161t\u011b Prometheus \u2014 jen abychom zjistili, jestli jsme rychlej\u0161\u00ed ne\u017e sou\u010dasn\u00e1 \u0159e\u0161en\u00ed nebo pomalej\u0161\u00ed a jak moc.<\/p>\n<h4>Metodika a v\u00fdsledky testov\u00e1n\u00ed<\/h4>\n<p>\nTak\u017ee jsme otestovali 5 datab\u00e1z\u00ed v n\u00e1sleduj\u00edc\u00edch 6 konfigurac\u00edch: ClickHouse (1 uzel), ClickHouse (distribuovan\u00e1 tabulka na 3 uzly), InfluxDB, Mysql 8, Cassandra (3 uzly) a Prometheus. Pl\u00e1n testov\u00e1n\u00ed je n\u00e1sleduj\u00edc\u00ed:<\/p>\n<ol>\n<li>nahr\u00e1v\u00e1me historick\u00e1 data za t\u00fdden (840 milion\u016f hodnot denn\u011b; 208 tis\u00edc metrik);<\/li>\n<li>generujeme z\u00e1t\u011b\u017e na z\u00e1pis (zkoumali jsme 6 re\u017eim\u016f z\u00e1t\u011b\u017ee, viz n\u00ed\u017ee);<\/li>\n<li>paraleln\u011b se z\u00e1pisem periodicky prov\u00e1d\u00edme dotazy, simuluj\u00edc\u00ed u\u017eivatele pracuj\u00edc\u00edho s grafy. Abychom to p\u0159\u00edli\u0161 nezat\u011b\u017eovali, vyb\u00edrali jsme data pro 10 metrick\u00fdch hodnot (p\u0159esn\u011b tolik je na grafu CPU) za t\u00fdden.<\/li>\n<\/ol>\n<p>\nZat\u011b\u017eujeme, simuluj\u00edc\u00ed chov\u00e1n\u00ed na\u0161eho monitorovac\u00edho agenta, kter\u00fd zas\u00edl\u00e1 do ka\u017ed\u00e9 metriky hodnoty ka\u017ed\u00fdch 15 sekund. Zaj\u00edm\u00e1 n\u00e1s variabilita:<\/p>\n<ul>\n<li>celkov\u00fd po\u010det metrik, do kter\u00fdch se zapisuj\u00ed data;<\/li>\n<li>interval zas\u00edl\u00e1n\u00ed hodnot do jedn\u00e9 metriky;<\/li>\n<li>velikost d\u00e1vky.<\/li>\n<\/ul>\n<p>\nO velikosti d\u00e1vky. Vzhledem k tomu, \u017ee t\u00e9m\u011b\u0159 v\u0161echny na\u0161e zkouman\u00e9 datab\u00e1ze nedoporu\u010duj\u00ed zat\u011b\u017eovat jednotliv\u00fdmi inserty, budeme pot\u0159ebovat rel\u00e9, kter\u00e9 sb\u00edr\u00e1 p\u0159ich\u00e1zej\u00edc\u00ed metriky, skupinuje je a zapisuje do datab\u00e1ze hromadn\u00fdm insertem.<\/p>\n<p>Abychom l\u00e9pe pochopili, jak n\u00e1sledn\u011b interpretovat z\u00edskan\u00e1 data, p\u0159edstavme si, \u017ee nepos\u00edl\u00e1me pouze hromadu metrik, ale \u017ee jsou metriky uspo\u0159\u00e1d\u00e1ny na servery \u2013 po 125 metrik\u00e1ch na server. Zde je server pouze virtu\u00e1ln\u00ed entita \u2013 abychom pochopili, \u017ee nap\u0159\u00edklad 10 000 metrik odpov\u00edd\u00e1 p\u0159ibli\u017en\u011b 80 server\u016fm.<\/p>\n<p>A tedy, s ohledem na to v\u0161echno, na\u0161ich 6 re\u017eim\u016f z\u00e1t\u011b\u017ee datab\u00e1ze p\u0159i z\u00e1pisu:<\/p>\n<p><img decoding=\"async\" alt=\"Jak jsme testovali r\u016fzn\u00e9 datab\u00e1ze \u010dasov\u00fdch \u0159ad\" src=\"\/wp-content\/uploads\/2019\/08\/3ba70050dc7e711cb8f3d14ac1a6707b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZde jsou dva aspekty. Za prv\u00e9, pro Cassandru se tyto velikosti batch\u016f uk\u00e1zaly jako p\u0159\u00edli\u0161 velk\u00e9, tam jsme pou\u017e\u00edvali hodnoty 50 nebo 100. A za druh\u00e9, jeliko\u017e Prometheus pracuje striktn\u011b v re\u017eimu pull, t.j. s\u00e1m chod\u00ed a vyb\u00edr\u00e1 data ze zdroj\u016f metrik (a dokonce pushgateway, navzdory n\u00e1zvu, situaci v z\u00e1kladu nezm\u011bn\u00ed), odpov\u00eddaj\u00edc\u00ed z\u00e1t\u011b\u017ee byly realizov\u00e1ny pomoc\u00ed kombinace statick\u00fdch konfigurac\u00ed.<\/p>\n<p>V\u00fdsledky testov\u00e1n\u00ed jsou n\u00e1sleduj\u00edc\u00ed:<\/p>\n<p><img decoding=\"async\" alt=\"Jak jsme testovali r\u016fzn\u00e9 datab\u00e1ze \u010dasov\u00fdch \u0159ad\" src=\"\/wp-content\/uploads\/2019\/08\/9df12bee66ad8c5df720ba08472efead.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Jak jsme testovali r\u016fzn\u00e9 datab\u00e1ze \u010dasov\u00fdch \u0159ad\" src=\"\/wp-content\/uploads\/2019\/08\/891090bf0461c7e3c48e38eb36f9e217.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Jak jsme testovali r\u016fzn\u00e9 datab\u00e1ze \u010dasov\u00fdch \u0159ad\" src=\"\/wp-content\/uploads\/2019\/08\/137f944b3578ab5bad4ebc5fa6f96b79.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Co je dobr\u00e9 zd\u016fraznit<\/b>: fantasticky rychl\u00e9 dotazy z Prometheu, d\u011bsiv\u011b pomal\u00e9 dotazy z Cassandry, nep\u0159ijateln\u011b pomal\u00e9 dotazy z InfluxDB; ve v\u0161ech rychlostn\u00edch testech vyhr\u00e1l ClickHouse, zat\u00edmco Prometheus se sout\u011b\u017ee ne\u00fa\u010dastn\u00ed, proto\u017ee prov\u00e1d\u00ed inserty s\u00e1m v sob\u011b a nic nezm\u011b\u0159\u00edme.<\/p>\n<p><u><b>Nakonec<\/b><\/u>: nejl\u00e9pe se uk\u00e1zaly ClickHouse a InfluxDB, ale cluster z Influxu lze postavit pouze na z\u00e1klad\u011b Enterprise verze, kter\u00e1 je zpoplatn\u011bna, zat\u00edmco ClickHouse je zdarma a vyvinut\u00fd v Rusku. Logicky, v USA je v\u00fdb\u011br pravd\u011bpodobn\u011b ve prosp\u011bch InfluxDB, zat\u00edmco u n\u00e1s ve prosp\u011bch ClickHouse.<br \/>\n<br \/>Zdroj: <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.3 - 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\/cs\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47Jak jsme testovali n\u011bkolik datab\u00e1z\u00ed \u010dasov\u00fdch \u0159ad | ProHoster","description":"Za posledn\u00ed roky datab\u00e1ze.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/36737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=36737"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/36737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/27518"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=36737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=36737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=36737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}