{"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\/hu\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","title":{"rendered":"Hogyan tesztelt\u00fck t\u00f6bb id\u0151szakos adatb\u00e1zis","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Hogyan tesztelt\u00fck t\u00f6bb id\u0151szakos adatb\u00e1zis\" src=\"\/wp-content\/uploads\/2019\/08\/14e07eac02df8d1276c46c33276d8a26.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAz ut\u00f3bbi \u00e9vekben az id\u0151beli sorozatok adatb\u00e1zisai (Time-series databases) a k\u00fcl\u00f6nleges megold\u00e1sokb\u00f3l (amelyek vagy ny\u00edlt monitoroz\u00f3 rendszerekben alkalmazhat\u00f3k, vagy Big Data projektekhez tartoznak) a \"t\u00f6megterm\u00e9kk\u00e9\" v\u00e1ltak. Oroszorsz\u00e1g ter\u00fclet\u00e9n k\u00fcl\u00f6n k\u00f6sz\u00f6net illeti ez\u00e9rt a Yandexet \u00e9s a ClickHouse-t. Eddig, ha nagy mennyis\u00e9g\u0171 id\u0151beli sorozat adatot kellett meg\u0151rizni, elker\u00fclhetetlen\u00fcl monstr\u00f3zus Hadoop-stackot kellett fel\u00e9p\u00edteni \u00e9s karbantartani, vagy specifikus protokollokkal kellett foglalkozni, amelyek minden rendszerhez k\u00fcl\u00f6nb\u00f6z\u0151k. <\/p>\n<p>Lehet, hogy 2019-ben egy cikk arr\u00f3l, hogy melyik TSDB-t \u00e9rdemes haszn\u00e1lni, csak annyib\u00f3l \u00e1ll: \"csak haszn\u00e1ld a ClickHouse-t\". De... vannak n\u00fcanszok. <\/p>\n<p>Val\u00f3ban, a ClickHouse akt\u00edvan fejl\u0151dik, a felhaszn\u00e1l\u00f3i b\u00e1zis n\u00f6vekszik, \u00e9s a t\u00e1mogat\u00e1s nagyon akt\u00edv, de vajon nem lett\u00fcnk-e a ClickHouse nyilv\u00e1nos siker\u00e9nek t\u00fasza, amely elhom\u00e1lyos\u00edt m\u00e1s, esetleg hat\u00e9konyabb\/megb\u00edzhat\u00f3bb megold\u00e1sokat? <\/p>\n<p>Tavaly \u00e9v elej\u00e9n elkezdt\u00fck \u00e1tdolgozni a saj\u00e1t monitoroz\u00f3 rendszer\u00fcnket, amelynek sor\u00e1n felmer\u00fclt a k\u00e9rd\u00e9s, hogy melyik adatb\u00e1zist v\u00e1lasszuk az adatok t\u00e1rol\u00e1s\u00e1ra. Err\u0151l a v\u00e1laszt\u00e1s t\u00f6rt\u00e9net\u00e9r\u0151l akarok itt besz\u00e9lni.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>L\u00e9pj\u00fcnk \u00e1t a kit\u0171z\u00f6tt feladatra: \u00edrjunk egy XDP mechanizmust SYN cookie-kkal.<\/h4>\n<p>\nEls\u0151sorban \u2014 a sz\u00fcks\u00e9ges el\u0151sz\u00f3. Mi\u00e9rt van sz\u00fcks\u00e9g\u00fcnk egy\u00e1ltal\u00e1n a saj\u00e1t monitoroz\u00f3 rendszer\u00fcnkre, \u00e9s hogyan m\u0171k\u00f6d\u00f6tt ez?<\/p>\n<p>2008 \u00f3ta ny\u00fajtunk t\u00e1mogat\u00e1si szolg\u00e1ltat\u00e1sokat, \u00e9s 2010-re vil\u00e1goss\u00e1 v\u00e1lt, hogy neh\u00e9zkess\u00e9 v\u00e1lt az \u00fcgyf\u00e9l infrastrukt\u00far\u00e1j\u00e1ban zajl\u00f3 folyamatok adatait az akkor l\u00e9tez\u0151 megold\u00e1sokkal aggreg\u00e1lni (itt a sz\u00f6rnyetegek, a Cacti, a Zabbix \u00e9s a sz\u00fclet\u0151 Graphite-ra gondolunk).<\/p>\n<p>Legfontosabb k\u00f6vetelm\u00e9nyeink a k\u00f6vetkez\u0151k voltak:<\/p>\n<ul>\n<li>t\u00e1mogat\u00e1s (akkor \u00e9ppen t\u00f6bb tucat, a j\u00f6v\u0151ben pedig t\u00f6bb sz\u00e1z) \u00fcgyf\u00e9l egy rendszeren bel\u00fcl, emellett k\u00f6zpontos\u00edtott figyelmeztet\u00e9si rendszer megl\u00e9te;<\/li>\n<li>a figyelmeztet\u00e9si rendszer rugalmas kezel\u00e9se (figyelmeztet\u00e9sek eskal\u00e1l\u00e1sa a m\u0171szakban l\u00e9v\u0151k k\u00f6z\u00f6tt, \u00fctemez\u00e9s figyelembev\u00e9tele, tud\u00e1sb\u00e1zis);<\/li>\n<li>grafikonok r\u00e9szletes alak\u00edt\u00e1sa (a Zabbix akkor grafik\u00e1kat k\u00e9pk\u00e9nt jelen\u00edtett meg);<\/li>\n<li>nagy mennyis\u00e9g\u0171 adat hossz\u00fa ideig val\u00f3 t\u00e1rol\u00e1sa (egy \u00e9v \u00e9s t\u00f6bb) \u00e9s azok gyors lek\u00e9rdez\u00e9s\u00e9nek lehet\u0151s\u00e9ge.<\/li>\n<\/ul>\n<p>\nA cikkben a legutols\u00f3 pontra fogunk \u00f6sszpontos\u00edtani.<\/p>\n<p>A t\u00e1rol\u00e1sr\u00f3l besz\u00e9lve, a k\u00f6vetelm\u00e9nyek a k\u00f6vetkez\u0151k voltak:<\/p>\n<ul>\n<li>a rendszernek gyorsan kell m\u0171k\u00f6dnie;<\/li>\n<li>el\u0151ny\u00f6s lenne, ha a rendszer SQL interf\u00e9sszel rendelkezne;<\/li>\n<li>a rendszernek stabilnak kell lennie, \u00e9s akt\u00edv felhaszn\u00e1l\u00f3i b\u00e1zissal \u00e9s t\u00e1mogat\u00e1ssal kell rendelkeznie (mert egy id\u0151ben szembes\u00fclt\u00fcnk azzal a sz\u00fcks\u00e9glettel, hogy olyan rendszereket t\u00e1mogassunk, mint p\u00e9ld\u00e1ul a MemcacheDB, amelyet m\u00e1r nem fejlesztettek, vagy a disztrib\u00faci\u00f3s t\u00e1rol\u00f3 MooseFS, amelynek hibak\u00f6vet\u00e9se k\u00ednai nyelven folyt: nem akartuk, hogy hasonl\u00f3 t\u00f6rt\u00e9netet \u00e9lj\u00fcnk \u00e1t a projekt\u00fcnkben);<\/li>\n<li>a CAP-t\u00e9tel megfelel\u0151s\u00e9ge: Egy\u00fcttm\u0171k\u00f6d\u00e9s (sz\u00fcks\u00e9ges) \u2014 az adatoknak naprak\u00e9szeknek kell lenni\u00fck, nem akarjuk, hogy az \u00e9rtes\u00edt\u00e9si rendszer ne kapjon \u00faj adatokat, \u00e9s figyelmeztet\u00e9sek terjengenek a projektek adathi\u00e1ny\u00e1r\u00f3l; Part\u00edci\u00f3s Tolerancia (sz\u00fcks\u00e9ges) \u2014 nem akarunk Split Brain rendszert kapni; El\u00e9rhet\u0151s\u00e9g (nem kritikus, ha l\u00e9tezik akt\u00edv replik\u00e1ci\u00f3) \u2014 saj\u00e1t kez\u0171leg tudunk \u00e1tt\u00e9rni a tartal\u00e9k rendszerre sz\u00fcks\u00e9g eset\u00e9n, k\u00f3d alapj\u00e1n.<\/li>\n<\/ul>\n<p>\nAmi furcsa, de abban az id\u0151ben a MySQL bizonyult az ide\u00e1lis megold\u00e1snak sz\u00e1munkra. Az adatstrukt\u00far\u00e1nk rendk\u00edv\u00fcl egyszer\u0171 volt: szerver id, sz\u00e1ml\u00e1l\u00f3 id, timestamp \u00e9s \u00e9rt\u00e9k; a forr\u00f3 adatk\u00f6zl\u00e9sek gyors lek\u00e9rdez\u00e9s\u00e9t a nagy buffer pool m\u00e9ret biztos\u00edtotta, m\u00edg a t\u00f6rt\u00e9nelmi adatok lek\u00e9rdez\u00e9s\u00e9t SSD v\u00e9gezte.<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan tesztelt\u00fck t\u00f6bb id\u0151szakos adatb\u00e1zis\" src=\"\/wp-content\/uploads\/2019\/08\/555bff26c74badf85131c4d9198871af.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cdgy el\u00e9rt\u00fck a friss k\u00e9t\u00e9ves adatok lek\u00e9rdez\u00e9s\u00e9t m\u00e1sodpercre bontva 200 ms alatt az adatok teljes megjelen\u00edt\u00e9se el\u0151tt, \u00e9s el\u00e9g sok\u00e1ig \u00e9lt\u00fcnk ebben a rendszerben.<\/p>\n<p>Id\u0151k\u00f6zben azonban telt az id\u0151 \u00e9s az adatmennyis\u00e9g n\u0151tt. 2016-ra az adatok mennyis\u00e9ge t\u00f6bb tucat terab\u00e1jtot \u00e9rt el, ami a b\u00e9relt SSD-t\u00e1rol\u00f3k k\u00f6r\u00fclm\u00e9nyei k\u00f6z\u00f6tt jelent\u0151s k\u00f6lts\u00e9get jelentett.<\/p>\n<p>Ekkorra az oszlop alap\u00fa adatb\u00e1zisok akt\u00edvan elterjedtek, amikr\u0151l elkezdt\u00fcnk komolyan gondolkodni: az oszlop alap\u00fa DB-k \u00fagy t\u00e1rolj\u00e1k az adatokat, ahogy az \u00e9rthet\u0151, oszlopokban, \u00e9s ha r\u00e1n\u00e9z\u00fcnk az adatainkra, k\u00f6nnyen l\u00e1that\u00f3, hogy sok ism\u00e9tl\u0151d\u0151 adat van, amit oszlop alap\u00fa DB haszn\u00e1lat\u00e1val t\u00f6m\u00f6r\u00edteni lehetne.<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan tesztelt\u00fck t\u00f6bb id\u0151szakos adatb\u00e1zis\" src=\"\/wp-content\/uploads\/2019\/08\/2e1a6010fcb09de8cd28ec826752d160.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA f\u0151 m\u0171k\u00f6d\u00e9si rendszer\u00fcnk azonban tov\u00e1bbra is stabilan m\u0171k\u00f6d\u00f6tt, \u00e9s nem akartunk k\u00eds\u00e9rletezni valami m\u00e1sra val\u00f3 \u00e1tt\u00e9r\u00e9ssel.<\/p>\n<p>2017-ben a San Jos\u00e9-i Percona Live konferenci\u00e1n a Clickhouse fejleszt\u0151i tal\u00e1n el\u0151sz\u00f6r mutatkoztak be. Els\u0151 pillant\u00e1sra a rendszer production-ready volt (nos, a Yandex.Metrica egy szigor\u00fa produkci\u00f3), a t\u00e1mogat\u00e1s gyors \u00e9s egyszer\u0171 volt, \u00e9s ami a legfontosabb, a haszn\u00e1lata is egyszer\u0171 volt. 2018 \u00f3ta elkezdt\u00fck a folyamatot a v\u00e1lt\u00e1sra. De addigra sok '\u00e9rett' \u00e9s id\u0151ben bev\u00e1lt TSDB rendszer l\u00e9tezett, \u00e9s \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy jelent\u0151s id\u0151t sz\u00e1nunk arra, hogy \u00f6sszehasonl\u00edtsuk az alternat\u00edv\u00e1kat, hogy megbizonyosodjunk arr\u00f3l, hogy a Clickhouse-hoz k\u00e9pest nincs alternat\u00edv megold\u00e1s, amely megfelel a k\u00f6vetelm\u00e9nyeinknek.<\/p>\n<p>A m\u00e1r eml\u00edtett t\u00e1rol\u00e1si k\u00f6vetelm\u00e9nyek mellett \u00fajabbak is felmer\u00fcltek:<\/p>\n<ul>\n<li>az \u00faj rendszernek legal\u00e1bb olyan teljes\u00edtm\u00e9nyt kell biztos\u00edtania, mint a MySQL, ugyanazon a hardveren;<\/li>\n<li>az \u00faj rendszer t\u00e1rol\u00e1s\u00e1nak jelent\u0151sen kevesebb helyet kell foglalnia;<\/li>\n<li>Az SQL adatb\u00e1ziskezel\u0151nek tov\u00e1bbra is egyszer\u0171nek kell lennie a kezel\u00e9s szempontj\u00e1b\u00f3l;<\/li>\n<li>a lehet\u0151 legkisebb m\u00e9rt\u00e9kben szeretn\u00e9nk m\u00f3dos\u00edtani az alkalmaz\u00e1st az adatb\u00e1zis-kezel\u0151 v\u00e1lt\u00e1sakor.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Milyen rendszereket kezdt\u00fcnk el megvizsg\u00e1lni<\/h4>\n<p>\n<b><u>Apache Hive\/Apache Impala<\/u><\/b><br \/>\nA r\u00e9gi, megb\u00edzhatatlan Hadoop-stack. Alapvet\u0151en ez egy SQL-interf\u00e9sz, amely a saj\u00e1t form\u00e1tumaiban t\u00e1rolt adatokra \u00e9p\u00fcl az HDFS-en. <\/p>\n<p>El\u0151ny\u00f6k.<\/p>\n<ul>\n<li>Stabil \u00fczemeltet\u00e9s mellett nagyon egyszer\u0171 az adatok sk\u00e1l\u00e1z\u00e1sa.<\/li>\n<li>Vannak oszlop-alap\u00fa megold\u00e1sok az adatok t\u00e1rol\u00e1s\u00e1ra (kevesebb helyet foglal).<\/li>\n<li>Nagyon gyorsan hajtja v\u00e9gre a p\u00e1rhuzamos feladatokat a rendelkez\u00e9sre \u00e1ll\u00f3 er\u0151forr\u00e1sokkal.<\/li>\n<\/ul>\n<p>\nH\u00e1tr\u00e1nyok.<\/p>\n<ul>\n<li>Ez Hadoop, \u00e9s neh\u00e9z \u00fczemeltetni. Ha nem vagyunk k\u00e9szen arra, hogy felh\u0151alap\u00fa megold\u00e1st vegy\u00fcnk (ami k\u00f6lts\u00e9g szempontj\u00e1b\u00f3l nem \u00e1llt rendelkez\u00e9sre), akkor az eg\u00e9sz stack-et adminisztr\u00e1toroknak kell \u00f6ssze\u00e1ll\u00edtaniuk \u00e9s karbantartaniuk, amit nagyon nem szeretn\u00e9nk.<\/li>\n<li>Az adatok aggreg\u00e1l\u00f3dnak <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/blog\/2014\/04\/21\/using-apache-hadoop-and-impala-together-with-mysql-for-data-analysis\/\">val\u00f3ban gyorsan<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nViszont:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan tesztelt\u00fck t\u00f6bb id\u0151szakos adatb\u00e1zis\" src=\"\/wp-content\/uploads\/2019\/08\/6baa1b6024def8c1c7518ef386cfc8d3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA sebess\u00e9g a sz\u00e1m\u00edt\u00e1si szerverek sz\u00e1m\u00e1nak sk\u00e1l\u00e1z\u00e1s\u00e1val \u00e9rhet\u0151 el. Egyszer\u0171bben fogalmazva, ha egy nagy c\u00e9g vagyunk, amely analitik\u00e1val foglalkozik, \u00e9s \u00fczleti szempontb\u00f3l kritikus fontoss\u00e1g\u00fa, hogy a lehet\u0151 leggyorsabban aggreg\u00e1ljuk az inform\u00e1ci\u00f3t (m\u00e9g ha sok sz\u00e1m\u00edt\u00e1si er\u0151forr\u00e1s felhaszn\u00e1l\u00e1s\u00e1nak \u00e1r\u00e1val is j\u00e1r), ez lehet a v\u00e1laszt\u00e1sunk. De nem voltunk k\u00e9szen arra, hogy radik\u00e1lisan megn\u00f6velj\u00fck a hardverparkot a feladatok sebess\u00e9g\u00e9nek jav\u00edt\u00e1sa \u00e9rdek\u00e9ben.<\/p>\n<p><b><u>Druid\/Pinot<\/u><\/b><\/p>\n<p>Ez m\u00e1r sokkal ink\u00e1bb a TSDB-r\u0151l sz\u00f3l, de megint csak - Hadoop-stack.<\/p>\n<p>Van <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@leventov\/comparison-of-the-open-source-olap-systems-for-big-data-clickhouse-druid-and-pinot-8e042a5ed1c7\">nagyon j\u00f3 cikk, amely \u00f6sszehasonl\u00edtja a Druid \u00e9s Pinot el\u0151nyeit \u00e9s h\u00e1tr\u00e1nyait a ClickHouse-hoz k\u00e9pest <\/a><\/noindex>. <\/p>\n<p>Ha n\u00e9h\u00e1ny sz\u00f3val akarom kifejezni: a Druid\/Pinot jobbnak t\u0171nik a Clickhouse-n\u00e1l, amikor:<\/p>\n<ul>\n<li>Heterog\u00e9n adatszerkezettel rendelkezik (ebben az esetben csak a szervermetrik\u00e1k id\u0151beli sorait r\u00f6gz\u00edtj\u00fck, \u00e9s l\u00e9nyeg\u00e9ben ez egy t\u00e1bl\u00e1zat. De lehetnek m\u00e1s esetek is: berendez\u00e9sek id\u0151beli sorai, gazdas\u00e1gi id\u0151beli sorok stb. \u2014 mindegyik saj\u00e1t szerkezet\u00e9vel, amelyeket aggreg\u00e1lni \u00e9s feldolgozni kell).<\/li>\n<li>Ezekb\u0151l az adatokb\u00f3l nagyon sok van.<\/li>\n<li>Az id\u0151beli sorokkal rendelkez\u0151 t\u00e1bl\u00e1zatok \u00e9s adatok megjelennek \u00e9s elt\u0171nnek (azaz egy adathalmaz \u00e9rkezett, elemezt\u00e9k, majd elt\u00e1vol\u00edtott\u00e1k).<\/li>\n<li>Nincs vil\u00e1gos krit\u00e9rium, amely alapj\u00e1n az adatokat part\u00edcion\u00e1lni lehetne.<\/li>\n<\/ul>\n<p>\nEllenkez\u0151 esetekben a ClickHouse jobban teljes\u00edt, \u00e9s ez a mi eset\u00fcnk.<\/p>\n<p><b><u>clickhousedb_fdw<\/u><\/b><\/p>\n<ul>\n<li>SQL-szer\u0171.<\/li>\n<li>K\u00f6nnyen kezelhet\u0151.<\/li>\n<li>Az emberek azt mondj\u00e1k, hogy m\u0171k\u00f6dik.<\/li>\n<\/ul>\n<p>\nA tesztel\u00e9s r\u00f6vidlist\u00e1j\u00e1ra ker\u00fcl.<\/p>\n<p><b><u>InfluxDB<\/u><\/b><\/p>\n<p>K\u00fclf\u00f6ldi alternat\u00edva a ClickHouse sz\u00e1m\u00e1ra. H\u00e1tr\u00e1nyok: A High Availability csak a kereskedelmi verzi\u00f3ban \u00e9rhet\u0151 el, de \u00e9rdemes \u00f6sszehasonl\u00edtani.<\/p>\n<p>A tesztel\u00e9s r\u00f6vidlist\u00e1j\u00e1ra ker\u00fcl.<\/p>\n<p><b><u>Cassandra<\/u><\/b> <\/p>\n<p>Egyr\u00e9szt tudjuk, hogy az ilyen rendszerek, mint p\u00e9ld\u00e1ul, id\u0151beli metrikus sorok t\u00e1rol\u00e1s\u00e1ra haszn\u00e1lj\u00e1k <noindex><a rel=\"nofollow\" href=\"https:\/\/www.signalfx.com\/blog\/making-cassandra-perform-as-a-tsdb\/\">SignalFX<\/a><\/noindex> vagy OkMeter. Ugyanakkor van egy speci\u00e1lis von\u00e1s.<\/p>\n<p>A Cassandra nem klasszikus \u00e9rtelemben vett oszlopos adatb\u00e1zis. Ink\u00e1bb sorosnak t\u0171nik, de minden sorban elt\u00e9r\u0151 sz\u00e1m\u00fa oszlop lehet, ami megk\u00f6nny\u00edti az oszlopos megjelen\u00edt\u00e9st. Ebben az \u00e9rtelemben \u00e9rthet\u0151, hogy a 2 milli\u00e1rd oszlopos korl\u00e1toz\u00e1s mellett bizonyos adatokat lehet t\u00e1rolni oszlopokban (p\u00e9ld\u00e1ul ugyanazokat az id\u0151beli sorokat). P\u00e9ld\u00e1ul a MySQL-ben 4096 oszlop a korl\u00e1toz\u00e1s, \u00e9s k\u00f6nnyen belefuthatunk a 1117 k\u00f3d\u00fa hib\u00e1ba, ha megpr\u00f3b\u00e1lunk ugyanezt tenni.<\/p>\n<p>A Cassandra motor is focused on storing large volumes of data in a distributed system without a master, and in the aforementioned CAP theorem, Cassandra leans more towards AP, which means data availability and resilience against partitioning. Therefore, this tool can be perfectly suited if you only need to write to this database and read from it infrequently. It makes sense to use Cassandra as a \"cold\" storage solution. In other words, as a long-term reliable place to store large amounts of historical data that are rarely needed, but can be retrieved if necessary. However, for the sake of completeness, we will also test it. But, as I mentioned earlier, there is no desire to actively rewrite the code for the chosen database solution, so we will test it somewhat limitedly\u2014without adapting the database structure to the specifics of Cassandra.<\/p>\n<p><b><u>Prometheus<\/u><\/b><\/p>\n<p>Well, out of curiosity, we decided to test the performance of the Prometheus storage\u2014just to understand whether we are faster than the current solutions or slower, and by how much.<\/p>\n<h4>Testing methodology and results<\/h4>\n<p>\nSo, we tested 5 databases in the following 6 configurations: ClickHouse (1 node), ClickHouse (distributed table on 3 nodes), InfluxDB, MySQL 8, Cassandra (3 nodes), and Prometheus. The testing plan is as follows:<\/p>\n<ol>\n<li>We upload historical data for a week (840 million values per day; 208 thousand metrics);<\/li>\n<li>We generate write load (considering 6 load modes, see below);<\/li>\n<li>Simultaneously with the writing, we periodically perform queries, emulating a user working with graphs. To avoid complicating things too much, we selected data for 10 metrics (exactly how many there are in the CPU graph) for a week.<\/li>\n<\/ol>\n<p>\nWe load, simulating the behavior of our monitoring agent, which sends values to each metric every 15 seconds. At the same time, we are interested in varying:<\/p>\n<ul>\n<li>The total number of metrics into which data is written;<\/li>\n<li>The interval for sending values to one metric;<\/li>\n<li>The size of the batch.<\/li>\n<\/ul>\n<p>\nAbout the batch size. Since almost all of our test databases do not recommend being loaded with single inserts, we will need a relay that collects incoming metrics, groups them somehow, and writes them into the database using a batch insert.<\/p>\n<p>Ahhoz, hogy jobban meg\u00e9rts\u00fck, hogyan \u00e9rtelmezz\u00fck k\u00e9s\u0151bb az adatokat, tegy\u00fck fel, hogy nem csak egy csom\u00f3 metrik\u00e1t k\u00fcld\u00fcnk, hanem a metrik\u00e1k szerverekbe vannak szervezve - 125 metrika per szerver. Itt a szerver egyszer\u0171en egy virtu\u00e1lis entit\u00e1s - csak hogy meg\u00e9rts\u00fck, hogy p\u00e9ld\u00e1ul 10000 metrika k\u00f6r\u00fclbel\u00fcl 80 szervernek felel meg.<\/p>\n<p>\u00c9s most, mindezt figyelembe v\u00e9ve, itt vannak a 6 \u00edr\u00e1si terhel\u00e9si \u00fczemm\u00f3dunk:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan tesztelt\u00fck t\u00f6bb id\u0151szakos adatb\u00e1zis\" src=\"\/wp-content\/uploads\/2019\/08\/3ba70050dc7e711cb8f3d14ac1a6707b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00e9t dolog van. El\u0151sz\u00f6r is, a Cassandr\u00e1nak ezek a batch m\u00e9retek t\u00fal nagyok voltak, ott 50 vagy 100-as \u00e9rt\u00e9keket haszn\u00e1ltunk. M\u00e1sodszor, mivel a Prometheus szigor\u00faan pull m\u00f3dban m\u0171k\u00f6dik, vagyis saj\u00e1t mag\u00e1t\u00f3l megy \u00e9s gy\u0171jti az adatokat a metrikaforr\u00e1sokb\u00f3l (\u00e9s m\u00e9g a pushgateway, a nev\u00e9vel ellent\u00e9tben, alapvet\u0151en nem v\u00e1ltoztat a helyzeten), a megfelel\u0151 terhel\u00e9sek statikus konfigur\u00e1ci\u00f3k kombin\u00e1ci\u00f3j\u00e1val val\u00f3sultak meg.<\/p>\n<p>A tesztel\u00e9si eredm\u00e9nyek a k\u00f6vetkez\u0151k:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan tesztelt\u00fck t\u00f6bb id\u0151szakos adatb\u00e1zis\" src=\"\/wp-content\/uploads\/2019\/08\/9df12bee66ad8c5df720ba08472efead.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Hogyan tesztelt\u00fck t\u00f6bb id\u0151szakos adatb\u00e1zis\" src=\"\/wp-content\/uploads\/2019\/08\/891090bf0461c7e3c48e38eb36f9e217.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Hogyan tesztelt\u00fck t\u00f6bb id\u0151szakos adatb\u00e1zis\" src=\"\/wp-content\/uploads\/2019\/08\/137f944b3578ab5bad4ebc5fa6f96b79.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Amit \u00e9rdemes megeml\u00edteni<\/b>: fantasztikus gyors lek\u00e9rdez\u00e9sek a Prometheus-b\u00f3l, borzaszt\u00f3an lass\u00fa lek\u00e9rdez\u00e9sek a Cassandr\u00e1t\u00f3l, elfogadhatatlanul lass\u00fa lek\u00e9rdez\u00e9sek az InfluxDB-b\u0151l; \u00edr\u00e1si sebess\u00e9gben a ClickHouse mindent megvert, a Prometheus pedig nem vesz r\u00e9szt a versenyben, mert \u00f6n\u00e1ll\u00f3an hajtja v\u00e9gre az insert m\u0171veleteket, \u00e9s mi semmilyen m\u00e9r\u00e9st nem v\u00e9gz\u00fcnk.<\/p>\n<p><u><b>V\u00e9g\u00fcl<\/b><\/u>: a ClickHouse \u00e9s az InfluxDB bizonyult a legjobbnak, de az Influx klasztert csak a v\u00e1llalati verzi\u00f3 alapj\u00e1n lehet fel\u00e9p\u00edteni, ami p\u00e9nzbe ker\u00fcl, m\u00edg a ClickHouse ingyenes \u00e9s Oroszorsz\u00e1gban k\u00e9sz\u00fclt. Logikus, hogy az Egyes\u00fclt \u00c1llamokban a v\u00e1laszt\u00e1s val\u00f3sz\u00edn\u0171leg az InfluxDB mellett sz\u00f3l, m\u00edg n\u00e1lunk a ClickHouse mellett.<br \/>\n<br \/>Forr\u00e1s: <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\/hu\/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=\"hu_HU\" \/>\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\/hu\/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\udd47Hogyan tesztelt\u00fcnk t\u00f6bb id\u0151szakos adatb\u00e1zist | ProHoster","description":"Az utols\u00f3 n\u00e9h\u00e1ny \u00e9v adatb\u00e1zisai.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/36737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=36737"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/36737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/27518"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=36737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=36737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=36737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}