{"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\/pl\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","title":{"rendered":"Jak testowali\u015bmy kilka baz danych szereg\u00f3w czasowych","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Jak testowali\u015bmy kilka baz danych szereg\u00f3w czasowych\" src=\"\/wp-content\/uploads\/2019\/08\/14e07eac02df8d1276c46c33276d8a26.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW ci\u0105gu ostatnich kilku lat bazy danych czasowych (Time-series databases) przesz\u0142y z rzadkiego narz\u0119dzia (specjalnie u\u017cywanego w systemach monitorowania lub w projektach Big Data) do \u201etowaru powszechnego u\u017cytku\u201d. Na terenie Rosji w szczeg\u00f3lno\u015bci nale\u017cy podzi\u0119kowa\u0107 za to Yandexowi i ClickHouse'owi. Do tego momentu, je\u015bli potrzebowa\u0142e\u015b przechowa\u0107 du\u017c\u0105 ilo\u015b\u0107 danych czasowych, musia\u0142e\u015b albo pogodzi\u0107 si\u0119 z konieczno\u015bci\u0105 wdro\u017cenia monstrualnego stosu Hadoop i jego utrzymaniem, albo skomunikowa\u0107 si\u0119 z protoko\u0142ami specyficznymi dla ka\u017cdej systemu. <\/p>\n<p>Mo\u017ce si\u0119 wydawa\u0107, \u017ce w 2019 roku artyku\u0142 o tym, kt\u00f3r\u0105 TSDB warto u\u017cy\u0107, b\u0119dzie sk\u0142ada\u0142 si\u0119 z jednego zdania: \u201epo prostu u\u017cyj ClickHouse\u201d. Ale\u2026 s\u0105 niuanse. <\/p>\n<p>Rzeczywi\u015bcie, ClickHouse aktywnie si\u0119 rozwija, baza u\u017cytkownik\u00f3w ro\u015bnie, a wsparcie jest prowadzone bardzo intensywnie, ale czy przypadkiem nie stali\u015bmy si\u0119 zak\u0142adnikami publicznego sukcesu ClickHouse'a, kt\u00f3ry przy\u0107mi\u0142 inne, by\u0107 mo\u017ce bardziej efektywne\/niezawodne rozwi\u0105zania? <\/p>\n<p>Na pocz\u0105tku ubieg\u0142ego roku zaj\u0119li\u015bmy si\u0119 przekszta\u0142ceniem naszego w\u0142asnego systemu monitorowania, w trakcie kt\u00f3rego pojawi\u0142 si\u0119 temat wyboru odpowiedniej bazy do przechowywania danych. O historii tego wyboru chc\u0119 tutaj opowiedzie\u0107.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Sformu\u0142owanie zadania<\/h4>\n<p>\nPrzede wszystkim \u2013 niezb\u0119dne wprowadzenie. Czemu w og\u00f3le potrzebujemy w\u0142asnego systemu monitorowania i jak on zosta\u0142 zbudowany?<\/p>\n<p>Rozpocz\u0119li\u015bmy \u015bwiadczenie us\u0142ug wsparcia w 2008 roku, a do 2010 roku sta\u0142o si\u0119 jasne, \u017ce agregowanie danych o procesach zachodz\u0105cych w infrastrukturze klient\u00f3w przy u\u017cyciu dost\u0119pnych wtedy rozwi\u0105za\u0144 sta\u0142o si\u0119 trudne (m\u00f3wimy o, przepraszam, Cacti, Zabbixie i rozwijaj\u0105cym si\u0119 Graphite).<\/p>\n<p>Nasze g\u0142\u00f3wne wymagania by\u0142y nast\u0119puj\u0105ce:<\/p>\n<ul>\n<li>wsparcie (wtedy \u2013 dziesi\u0105tek, a w przysz\u0142o\u015bci \u2013 setek) klient\u00f3w w ramach jednego systemu oraz posiadanie scentralizowanego systemu zarz\u0105dzania powiadomieniami;<\/li>\n<li>elastyczno\u015b\u0107 w zarz\u0105dzaniu systemem powiadomie\u0144 (escalacja powiadomie\u0144 mi\u0119dzy dy\u017curami, uwzgl\u0119dnianie harmonogramu, baza wiedzy);<\/li>\n<li>mo\u017cliwo\u015b\u0107 g\u0142\u0119bokiego stawiania szczeg\u00f3\u0142\u00f3w na wykresach (Zabbix w tamtym czasie rysowa\u0142 wykresy jako obrazy);<\/li>\n<li>d\u0142ugoterminowe przechowywanie du\u017cej ilo\u015bci danych (rok lub wi\u0119cej) oraz mo\u017cliwo\u015b\u0107 ich szybkiego wydobycia.<\/li>\n<\/ul>\n<p>\nW tym artykule interesuje nas ostatni punkt.<\/p>\n<p>M\u00f3wi\u0105c o przechowywaniu, wymagania by\u0142y nast\u0119puj\u0105ce:<\/p>\n<ul>\n<li>system musi dzia\u0142a\u0107 szybko;<\/li>\n<li>po\u017c\u0105dane, aby system mia\u0142 interfejs SQL;<\/li>\n<li>system musi by\u0107 stabilny i mie\u0107 aktywn\u0105 baz\u0119 u\u017cytkownik\u00f3w oraz wsparcie (kiedy\u015b mieli\u015bmy do czynienia z konieczno\u015bci\u0105 utrzymywania takich system\u00f3w jak MemcacheDB, kt\u00f3re przesta\u0142y by\u0107 rozwijane, czy rozproszonego magazynu MooseFS, kt\u00f3rego \u015bledzenie b\u0142\u0119d\u00f3w prowadzone by\u0142o w j\u0119zyku chi\u0144skim: nie chcieli\u015bmy powtarza\u0107 tej historii w naszym projekcie);<\/li>\n<li>zgodno\u015b\u0107 z teori\u0105 CAP: Sp\u00f3jno\u015b\u0107 (konieczna) \u2014 dane musz\u0105 by\u0107 aktualne, nie chcemy, aby system zarz\u0105dzania powiadomieniami nie otrzyma\u0142 nowych danych i wygenerowa\u0142 alerty o braku danych we wszystkich projektach; Tolerancja partycji (konieczna) \u2014 nie chcemy mie\u0107 systemu typu Split Brain; Dost\u0119pno\u015b\u0107 (niekrytyczna, w przypadku istnienia aktywnej repliki) \u2014 mo\u017cemy przestawi\u0107 si\u0119 na system zapasowy, w przypadku awarii, kodem.<\/li>\n<\/ul>\n<p>\nJak to dziwnie brzmi, w tym momencie idealnym rozwi\u0105zaniem dla nas okaza\u0142 si\u0119 MySQL. Nasza struktura danych by\u0142a niezwykle prosta: id serwera, id licznika, znacznik czasu i warto\u015b\u0107; szybkie pobieranie gor\u0105cych danych by\u0142o zapewnione przez du\u017c\u0105 pojemno\u015b\u0107 bufora, a pobieranie danych historycznych \u2014 przez SSD.<\/p>\n<p><img decoding=\"async\" alt=\"Jak testowali\u015bmy kilka baz danych szereg\u00f3w czasowych\" src=\"\/wp-content\/uploads\/2019\/08\/555bff26c74badf85131c4d9198871af.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW ten spos\u00f3b osi\u0105gn\u0119li\u015bmy pobieranie \u015bwie\u017cych danych dwutygodniowych, z dok\u0142adno\u015bci\u0105 do sekundy w czasie 200 ms do momentu pe\u0142nego wy\u015bwietlenia danych, i \u017cyli\u015bmy w tym systemie przez do\u015b\u0107 d\u0142ugi czas.<\/p>\n<p>Tymczasem czas mija\u0142, a ilo\u015b\u0107 danych ros\u0142a. Do 2016 roku obj\u0119to\u015b\u0107 danych osi\u0105gn\u0119\u0142a dziesi\u0105tki terabajt\u00f3w, co w warunkach wynajmowanych magazyn\u00f3w SSD stanowi\u0142o znaczny wydatek.<\/p>\n<p>W tym momencie aktywne rozpowszechnienie uzyska\u0142y bazy danych kolumnowych, o kt\u00f3rych zacz\u0119li\u015bmy intensywnie my\u015ble\u0107: w bazach danych kolumnowych dane s\u0105 przechowywane, jak mo\u017cna to zrozumie\u0107, w kolumnach, a je\u015bli spojrze\u0107 na nasze dane, \u0142atwo dostrzec du\u017c\u0105 ilo\u015b\u0107 duplikat\u00f3w, kt\u00f3re mog\u0142yby by\u0107 w przypadku zastosowania bazy kolumnowej skompresowane.<\/p>\n<p><img decoding=\"async\" alt=\"Jak testowali\u015bmy kilka baz danych szereg\u00f3w czasowych\" src=\"\/wp-content\/uploads\/2019\/08\/2e1a6010fcb09de8cd28ec826752d160.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJednak kluczowy system firmy nadal dzia\u0142a\u0142 stabilnie, i nie chcieli\u015bmy eksperymentowa\u0107 z przej\u015bciem na co\u015b innego.<\/p>\n<p>W 2017 roku, na konferencji Percona Live w San Jose, po raz pierwszy zaprezentowali si\u0119 deweloperzy Clickhouse. Na pierwszy rzut oka system wydawa\u0142 si\u0119 gotowy do produkcji (no bo Yandex.Metrica to jeden z powa\u017cniejszych projekt\u00f3w produkcyjnych), wsparcie by\u0142o szybkie i proste, a co najwa\u017cniejsze, obs\u0142uga by\u0142a bezproblemowa. Od 2018 roku rozpocz\u0119li\u015bmy proces migracji. Jednak w tym czasie na rynku pojawi\u0142o si\u0119 wiele \"dojrza\u0142ych\" i sprawdzonych system\u00f3w TSDB, postanowili\u015bmy wi\u0119c po\u015bwi\u0119ci\u0107 znaczn\u0105 ilo\u015b\u0107 czasu na por\u00f3wnanie alternatyw, aby upewni\u0107 si\u0119, \u017ce nie ma \u017cadnych rozwi\u0105za\u0144 alternatywnych do Clickhouse, kt\u00f3re spe\u0142nia\u0142yby nasze wymagania.<\/p>\n<p>Opr\u00f3cz ju\u017c wymienionych wymaga\u0144 dotycz\u0105cych magazynu pojawi\u0142y si\u0119 nowe:<\/p>\n<ul>\n<li>nowy system musi zapewnia\u0107 co najmniej tak\u0105 sam\u0105 wydajno\u015b\u0107 jak MySQL, na tym samym sprz\u0119cie;<\/li>\n<li>magazyn nowego systemu powinien zajmowa\u0107 znacznie mniej miejsca;<\/li>\n<li>DBMS nadal powinien by\u0107 \u0142atwy w zarz\u0105dzaniu;<\/li>\n<li>chcieli\u015bmy minimalnie zmienia\u0107 aplikacj\u0119 przy zmianie DBMS.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Jakie systemy zacz\u0119li\u015bmy rozwa\u017ca\u0107<\/h4>\n<p>\n<b><u>Apache Hive\/Apache Impala<\/u><\/b><br \/>\nStary, sprawdzony Hadoop stack. W zasadzie jest to interfejs SQL zbudowany na bazie danych w specjalnych formatach na HDFS. <\/p>\n<p>Zalety.<\/p>\n<ul>\n<li>Przy stabilnej eksploatacji bardzo \u0142atwo skalowa\u0107 dane.<\/li>\n<li>Istniej\u0105 rozwi\u0105zania kolumnowe do przechowywania danych (mniej miejsca).<\/li>\n<li>Bardzo szybkie wykonywanie zr\u00f3wnoleglonych zada\u0144 przy odpowiednich zasobach.<\/li>\n<\/ul>\n<p>\nWady.<\/p>\n<ul>\n<li>To Hadoop, a jego obs\u0142uga jest skomplikowana. Je\u015bli nie jeste\u015bmy gotowi na gotowe rozwi\u0105zanie w chmurze (a nie jeste\u015bmy ze wzgl\u0119du na koszty), ca\u0142y stack b\u0119dzie musia\u0142 by\u0107 sk\u0142adany i utrzymywany przez administrator\u00f3w, a tego bardzo nie chcemy.<\/li>\n<li>Dane agregowane s\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/blog\/2014\/04\/21\/using-apache-hadoop-and-impala-together-with-mysql-for-data-analysis\/\">naprawd\u0119 szybko<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nJednak\u017ce:<\/p>\n<p><img decoding=\"async\" alt=\"Jak testowali\u015bmy kilka baz danych szereg\u00f3w czasowych\" src=\"\/wp-content\/uploads\/2019\/08\/6baa1b6024def8c1c7518ef386cfc8d3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSzybko\u015b\u0107 osi\u0105ga si\u0119 przez zwi\u0119kszenie liczby serwer\u00f3w obliczeniowych. M\u00f3wi\u0105c pro\u015bciej, je\u015bli jeste\u015bmy du\u017c\u0105 firm\u0105 zajmuj\u0105c\u0105 si\u0119 analiz\u0105 i dla nas krytycznie wa\u017cne jest jak najszybsze agregowanie informacji (nawet kosztem u\u017cycia du\u017cej ilo\u015bci zasob\u00f3w obliczeniowych) \u2014 mo\u017ce to by\u0107 nasz wyb\u00f3r. Jednak nie byli\u015bmy gotowi do znacz\u0105cego zwi\u0119kszenia floty sprz\u0119towej w celu przyspieszenia realizacji zada\u0144.<\/p>\n<p><b><u>Druid\/Pinot<\/u><\/b><\/p>\n<p>Ju\u017c zdecydowanie bardziej konkretny w zakresie TSDB, ale znowu \u2014 Hadoop stack.<\/p>\n<p>Tak <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@leventov\/comparison-of-the-open-source-olap-systems-for-big-data-clickhouse-druid-and-pinot-8e042a5ed1c7\">\u015bwietny artyku\u0142 por\u00f3wnuj\u0105cy zalety i wady Druid i Pinot w por\u00f3wnaniu do ClickHouse <\/a><\/noindex>. <\/p>\n<p>Je\u015bli w kilku s\u0142owach: Druid\/Pinot wypadaj\u0105 lepiej ni\u017c ClickHouse w sytuacjach, gdy:<\/p>\n<ul>\n<li>Masz heterogeniczny charakter danych (w naszym przypadku zapisujemy tylko szereg czasowy metryk serwerowych i w istocie jest to jedna tabela. Mog\u0105 istnie\u0107 tak\u017ce inne przypadki: szeregi czasowe urz\u0105dze\u0144, szeregi czasowe ekonomiczne itp. \u2014 ka\u017cdy z w\u0142asn\u0105 struktur\u0105, kt\u00f3re nale\u017cy agregowa\u0107 i przetwarza\u0107).<\/li>\n<li>Jednak tych danych jest bardzo wiele.<\/li>\n<li>Tabele i dane z szeregami czasowymi pojawiaj\u0105 si\u0119 i znikaj\u0105 (to znaczy, \u017ce jaki\u015b zestaw danych przyszed\u0142, zosta\u0142 przeanalizowany i usuni\u0119ty).<\/li>\n<li>Nie ma wyra\u017anego kryterium, wed\u0142ug kt\u00f3rego dane mog\u0105 by\u0107 partycjonowane.<\/li>\n<\/ul>\n<p>\nW przeciwnych przypadkach lepiej sprawdza si\u0119 ClickHouse, a to jest nasz przypadek.<\/p>\n<p><b><u>ClickHouse<\/u><\/b><\/p>\n<ul>\n<li>SQL-owy.<\/li>\n<li>Prosty w zarz\u0105dzaniu.<\/li>\n<li>Ludzie m\u00f3wi\u0105, \u017ce dzia\u0142a.<\/li>\n<\/ul>\n<p>\nWchodzi na kr\u00f3tk\u0105 list\u0119 test\u00f3w.<\/p>\n<p><b><u>InfluxDB<\/u><\/b><\/p>\n<p>Zagraniczna alternatywa dla ClickHouse'a. Z wad: Wysoka dost\u0119pno\u015b\u0107 wyst\u0119puje tylko w wersji komercyjnej, ale warto por\u00f3wna\u0107.<\/p>\n<p>Wchodzi na kr\u00f3tk\u0105 list\u0119 test\u00f3w.<\/p>\n<p><b><u>Cassandra<\/u><\/b> <\/p>\n<p>Z jednej strony wiemy, \u017ce u\u017cywa si\u0119 go do przechowywania metrycznych szereg\u00f3w czasowych w takich systemach monitoruj\u0105cych jak, na przyk\u0142ad, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.signalfx.com\/blog\/making-cassandra-perform-as-a-tsdb\/\">SignalFX<\/a><\/noindex> lub OkMeter. Jest jednak pewna specyfika.<\/p>\n<p>Cassandra nie jest kolumnow\u0105 baz\u0105 danych w tradycyjnym rozumieniu. Wygl\u0105da bardziej jak liniowa, ale w ka\u017cdym wierszu mo\u017ce by\u0107 r\u00f3\u017cna liczba kolumn, co pozwala \u0142atwo zorganizowa\u0107 przedstawienie kolumnowe. W tym sensie jasne jest, \u017ce przy ograniczeniu do 2 miliard\u00f3w kolumn mo\u017cna przechowywa\u0107 pewne dane w\u0142a\u015bnie w kolumnach (np. te same szeregi czasowe). Na przyk\u0142ad, w MySQL istnieje ograniczenie do 4096 kolumn i \u0142atwo natkn\u0105\u0107 si\u0119 na b\u0142\u0105d o kodzie 1117, je\u015bli spr\u00f3bujesz zrobi\u0107 to samo.<\/p>\n<p>Silnik Cassandra jest zaprojektowany do przechowywania du\u017cych ilo\u015bci danych w rozproszonej systemie bez mastera, a wed\u0142ug wspomnianej teorii CAP, Cassandra bardziej koncentruje si\u0119 na AP, czyli dost\u0119pno\u015bci danych i odporno\u015bci na podzia\u0142y partycji. Dlatego narz\u0119dzie to mo\u017ce by\u0107 idealne, je\u015bli potrzebujesz tylko zapisywa\u0107 w tej bazie i rzadko z niej odczytywa\u0107. W zwi\u0105zku z tym sensowne jest u\u017cycie Cassandry jako \"zimnego\" magazynu. To znaczy jako d\u0142ugoterminowego, niezawodnego miejsca do przechowywania du\u017cych zbior\u00f3w danych historycznych, kt\u00f3re s\u0105 rzadko potrzebne, ale mo\u017cna je odzyska\u0107 w razie potrzeby. Niemniej jednak, dla pe\u0142no\u015bci obrazu, przetestujemy j\u0105 r\u00f3wnie\u017c. Jednak, jak wcze\u015bniej m\u00f3wi\u0142em, nie chc\u0119 aktywnie przepisywa\u0107 kodu pod wybrane rozwi\u0105zanie bazodanowe, wi\u0119c przetestujemy j\u0105 w ograniczonym zakresie \u2014 bez dostosowywania struktury bazy do specyfiki Cassandry.<\/p>\n<p><b><u>Prometheus<\/u><\/b><\/p>\n<p>C\u00f3\u017c, z czystej ciekawo\u015bci postanowili\u015bmy przetestowa\u0107 wydajno\u015b\u0107 magazynu Prometheus \u2014 po prostu po to, aby zrozumie\u0107, czy jeste\u015bmy szybszy ni\u017c obecne rozwi\u0105zania, czy wolniejszy i w jakim stopniu.<\/p>\n<h4>Metodyka i wyniki testowania<\/h4>\n<p>\nPrzetestowali\u015bmy 5 baz danych w nast\u0119puj\u0105cych 6 konfiguracjach: ClickHouse (1 w\u0119ze\u0142), ClickHouse (dystrybuowana tabela na 3 w\u0119z\u0142y), InfluxDB, Mysql 8, Cassandra (3 w\u0119z\u0142y) i Prometheus. Plan test\u00f3w wygl\u0105da tak:<\/p>\n<ol>\n<li>za\u0142adowanie danych historycznych za tydzie\u0144 (840 milion\u00f3w warto\u015bci dziennie; 208 tysi\u0119cy metryk);<\/li>\n<li>generowanie obci\u0105\u017cenia zapisu (rozwa\u017cali\u015bmy 6 tryb\u00f3w obci\u0105\u017cenia, patrz poni\u017cej);<\/li>\n<li>r\u00f3wnocze\u015bnie z zapisem okresowo wykonujemy odczyty, emuluj\u0105c zapytania u\u017cytkownika pracuj\u0105cego z wykresami. Aby nie komplikowa\u0107 zbytnio, wybierali\u015bmy dane dla 10 metryk (dok\u0142adnie tyle ich by\u0142o na wykresie CPU) za tydzie\u0144.<\/li>\n<\/ol>\n<p>\nObci\u0105\u017camy, emuluj\u0105c zachowanie agenta naszego monitoringu, kt\u00f3ry wysy\u0142a warto\u015bci do ka\u017cdej metryki co 15 sekund. Przy tym interesuje nas zmieni\u0107:<\/p>\n<ul>\n<li>og\u00f3ln\u0105 liczb\u0119 metryk, do kt\u00f3rych s\u0105 zapisywane dane;<\/li>\n<li>interwa\u0142 wysy\u0142ania warto\u015bci do jednej metryki;<\/li>\n<li>rozmiar partii.<\/li>\n<\/ul>\n<p>\nO rozmiarze partii. Poniewa\u017c niemal wszystkie nasze testowe bazy nie zalecaj\u0105 obci\u0105\u017cania jednorazowymi insertami, potrzebujemy relay'a, kt\u00f3ry zbiera przychodz\u0105ce metryki i grupuje je, a nast\u0119pnie zapisuje je do bazy za pomoc\u0105 batch insert.<\/p>\n<p>Aby lepiej zrozumie\u0107, jak p\u00f3\u017aniej interpretowa\u0107 otrzymane dane, wyobra\u017amy sobie, \u017ce nie wysy\u0142amy po prostu mn\u00f3stwa metryk, ale metryki zorganizowane w serwery \u2014 po 125 metryk na serwer. Tutaj serwer to po prostu wirtualna jednostka \u2014 by zrozumie\u0107, \u017ce na przyk\u0142ad 10 000 metryk odpowiada oko\u0142o 80 serwerom.<\/p>\n<p>I z uwagi na to, nasze 6 tryb\u00f3w obci\u0105\u017cenia bazy na zapis:<\/p>\n<p><img decoding=\"async\" alt=\"Jak testowali\u015bmy kilka baz danych szereg\u00f3w czasowych\" src=\"\/wp-content\/uploads\/2019\/08\/3ba70050dc7e711cb8f3d14ac1a6707b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS\u0105 tu dwie rzeczy. Po pierwsze, dla Cassandry te rozmiary batchy okaza\u0142y si\u0119 zbyt du\u017ce, tam u\u017cywali\u015bmy warto\u015bci 50 lub 100. Po drugie, poniewa\u017c Prometeusz dzia\u0142a wy\u0142\u0105cznie w trybie pull, tzn. sam pobiera dane z \u017ar\u00f3de\u0142 metryk (a nawet pushgateway, mimo nazwy, w zasadzie nie zmienia sytuacji), odpowiednie obci\u0105\u017cenia zosta\u0142y zrealizowane za pomoc\u0105 kombinacji statycznych konfiguracji.<\/p>\n<p>Wyniki testowania s\u0105 nast\u0119puj\u0105ce:<\/p>\n<p><img decoding=\"async\" alt=\"Jak testowali\u015bmy kilka baz danych szereg\u00f3w czasowych\" src=\"\/wp-content\/uploads\/2019\/08\/9df12bee66ad8c5df720ba08472efead.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Jak testowali\u015bmy kilka baz danych szereg\u00f3w czasowych\" src=\"\/wp-content\/uploads\/2019\/08\/891090bf0461c7e3c48e38eb36f9e217.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Jak testowali\u015bmy kilka baz danych szereg\u00f3w czasowych\" src=\"\/wp-content\/uploads\/2019\/08\/137f944b3578ab5bad4ebc5fa6f96b79.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Co warto zauwa\u017cy\u0107<\/b>: fantastycznie szybkie zapytania z Prometheusa, przera\u017caj\u0105co wolne zapytania z Cassandry, nieakceptowalnie wolne zapytania z InfluxDB; pod wzgl\u0119dem pr\u0119dko\u015bci zapisu wsz\u0119dzie wygra\u0142 ClickHouse, a Prometheus nie bierze udzia\u0142u w konkursie, poniewa\u017c sam wykonuje inserty i niczego nie mierzymy.<\/p>\n<p><u><b>W konsekwencji,<\/b><\/u>: najlepiej wypadaj\u0105 ClickHouse i InfluxDB, ale klaster z Influxa mo\u017cna zbudowa\u0107 tylko na podstawie wersji Enterprise, kt\u00f3ra kosztuje pieni\u0105dze, podczas gdy ClickHouse jest darmowy i stworzony w Rosji. Logicznym jest, \u017ce w USA wyb\u00f3r mo\u017ce by\u0107 na rzecz InfluxDB, a u nas \u2014 na rzecz ClickHouse'a.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <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.1.1 - 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\/pl\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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 testowali\u015bmy kilka baz danych czasowych | ProHoster","description":"W ci\u0105gu ostatnich kilku lat baz danych.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-my-testirovali-neskolko-baz-dannyh-vremennyh-ryadov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/36737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=36737"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/36737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/27518"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=36737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=36737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=36737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}