{"id":53944,"date":"2019-12-13T00:00:00","date_gmt":"2019-12-12T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah"},"modified":"2020-02-18T14:01:53","modified_gmt":"2020-02-18T11:01:53","slug":"clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","title":{"rendered":"ClickHouse + Graphite: hogyan cs\u00f6kkenthetj\u00fck jelent\u0151sen a lemezekre fogyasztott helyet","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: hogyan cs\u00f6kkenthetj\u00fck jelent\u0151sen a lemezekre fogyasztott helyet\" src=\"\/wp-content\/uploads\/2019\/12\/5a2d19e6fea2a28d8d4aa9220653aefc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00dcdv\u00f6zl\u00f6m, habr.<\/p>\n<p><\/p>\n<p>Ha valaki kihaszn\u00e1lja a rendszert <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/graphite-web\">graphite-web<\/a><\/noindex> \u00e9s teljes\u00edtm\u00e9nyprobl\u00e9m\u00e1ba \u00fctk\u00f6z\u00f6tt a t\u00e1rol\u00f3val <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/whisper\">whisper<\/a><\/noindex> (IO, felhaszn\u00e1lt lemezter\u00fclet), akkor a ClickHouse-ra val\u00f3 tekint\u00e9s mint alternat\u00edva val\u00f3sz\u00edn\u0171s\u00e9ge k\u00f6zel\u00edti a egyet. Ez az \u00e1ll\u00edt\u00e1s azt sugallja, hogy m\u00e1r egy harmadik f\u00e9l megold\u00e1sa, p\u00e9ld\u00e1ul <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grobian\/carbonwriter\">carbonwriter<\/a><\/noindex> vagy <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/go-graphite\/go-carbon\">go-carbon<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>a ClickHouse j\u00f3l megoldja az eml\u00edtett probl\u00e9m\u00e1kat. P\u00e9ld\u00e1ul, miut\u00e1n 2TiB adatot \u00e1tkonvert\u00e1ltunk whisper-b\u0151l, 300GiB-ra tudtuk zsugor\u00edtani \u0151ket. A r\u00e9szletes \u00f6sszehasonl\u00edt\u00e1son nem \u00e1llok meg, a t\u00e9m\u00e1ban elegend\u0151 cikk \u00e1ll rendelkez\u00e9sre. R\u00e1ad\u00e1sul, a k\u00f6zelm\u00faltig a ClickHouse t\u00e1rol\u00f3nk sem volt t\u00f6k\u00e9letes.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"problemy-s-potreblyaemym-mestom\">Probl\u00e9m\u00e1k a felhaszn\u00e1lt hellyel<\/h3>\n<p><\/p>\n<p>Els\u0151 r\u00e1n\u00e9z\u00e9sre minden j\u00f3l m\u0171k\u00f6dik. K\u00f6vetve <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/table_engines\/graphitemergetree\/#primer-konfiguratsii\">dokument\u00e1ci\u00f3<\/a><\/noindex>, l\u00e9trehozzuk a metrik\u00e1k t\u00e1rol\u00e1si s\u00e9ma konfigur\u00e1ci\u00f3j\u00e1t (tov\u00e1bbiakban <code>retention<\/code>), majd l\u00e9trehozzuk a t\u00e1bl\u00e1zatot a v\u00e1lasztott backend aj\u00e1nl\u00e1sa szerint a graphite-web-hez: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lomik\/carbon-clickhouse\">carbon-clickhouse<\/a><\/noindex>+<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lomik\/graphite-clickhouse\">graphite-clickhouse<\/a><\/noindex> vagy <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ClickHouse\/graphouse\">graphouse<\/a><\/noindex>, att\u00f3l f\u00fcgg\u0151en, hogy melyik stacket haszn\u00e1lj\u00e1k. \u00c9s... elindul egy id\u0151z\u00edtett bomba.<\/p>\n<p><\/p>\n<p>Ahhoz, hogy meg\u00e9rts\u00fck, mi az, tudnunk kell, hogyan m\u0171k\u00f6dnek a besz\u00far\u00e1sok \u00e9s az adatok tov\u00e1bbi sorsa a *<em>MergeTree<\/em> ClickHouse (a diagramok Alekszey Zatelepint\u0151l sz\u00e1rmaznak): <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/PLMSA_gDdyM\">prezent\u00e1ci\u00f3ban<\/a><\/noindex> Blockot<\/p>\n<p><\/p>\n<ul>\n<li>d\u00e1tumokkal. A mi eset\u00fcnkben ezek a metrik\u00e1k \u00e9rkeztek. <code>Minden ilyen blokk \u00edr\u00e1s el\u0151tt a lemezre a<\/code> ORDER BY<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hogyan cs\u00f6kkenthetj\u00fck jelent\u0151sen a lemezekre fogyasztott helyet\" src=\"\/wp-content\/uploads\/2019\/12\/b60d482acca3c8d187d394f58a2d8a16.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>, az asztal l\u00e9trehoz\u00e1sakor megadott kulcs szerint rendez\u0151dik. <code>Rendez\u00e9s ut\u00e1n,<\/code>darab<\/li>\n<li>) adat felker\u00fcl a lemezre. <code>A szerver a h\u00e1tt\u00e9rben figyel arra, hogy ne legyen sok ilyen darab, \u00e9s elind\u00edtja a h\u00e1tt\u00e9r<\/code> (<code>part<\/code>\u00f6sszevon\u00e1sokat<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hogyan cs\u00f6kkenthetj\u00fck jelent\u0151sen a lemezekre fogyasztott helyet\" src=\"\/wp-content\/uploads\/2019\/12\/a54903b8efa0866d24da303fa7a68134.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>, tov\u00e1bbi mergen kereszt\u00fcl. <code>A szerver m\u00e1r nem ind\u00edtja el automatikusan a merge-t, amint az adatok akt\u00edvan le\u00e1llnak<\/code> (<code>merge<\/code>partition<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hogyan cs\u00f6kkenthetj\u00fck jelent\u0151sen a lemezekre fogyasztott helyet\" src=\"\/wp-content\/uploads\/2019\/12\/151c18c7b73ebc4097493b13a2e26765.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hogyan cs\u00f6kkenthetj\u00fck jelent\u0151sen a lemezekre fogyasztott helyet\" src=\"\/wp-content\/uploads\/2019\/12\/1921908554981eca0847541f77a15790.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>), de a folyamatot k\u00e9zzel elind\u00edthatjuk a <code>OPTIMIZE<\/code> (<code>Ha a part\u00edci\u00f3ban csak egy darab maradt, akkor a merge-t a szok\u00e1sos parancs szerint nem lehet elind\u00edtani, haszn\u00e1lni kell<\/code>OPTIMIZE ... FINAL <code>\u00cdgy \u00e9rkeznek az els\u0151 metrik\u00e1k. \u00c9s ezek bizonyos helyet foglalnak el. A k\u00f6vetkez\u0151 esem\u00e9nyek v\u00e1ltozhatnak sz\u00e1mos t\u00e9nyez\u0151t\u0151l f\u00fcgg\u0151en:<\/code>.<\/li>\n<li>A part\u00edci\u00f3 kulcsa lehet nagyon kicsi (nap), de nagyon nagy is (t\u00f6bb h\u00f3nap). <code>A retention konfigur\u00e1ci\u00f3 t\u00f6bb jelent\u0151s adategyes\u00edt\u00e9si k\u00fcsz\u00f6b\u00f6t tud tartalmazni a akt\u00edv part\u00edci\u00f3ban (ahova a metrik\u00e1k ker\u00fclnek), de lehet, hogy nem.<\/code><\/li>\n<\/ul>\n<p><\/p>\n<p>A retention konfigur\u00e1ci\u00f3 tartalmazhat t\u00f6bb jelent\u0151s aggreg\u00e1ci\u00f3s k\u00fcsz\u00f6b\u00f6t az akt\u00edv part\u00edci\u00f3ban (ahova a metrik\u00e1k \u00edr\u00f3dnak), de ez nem biztos.<\/p>\n<p><\/p>\n<ul>\n<li>A retention konfigur\u00e1ci\u00f3 tartalmazhat t\u00f6bb jelent\u0151s aggreg\u00e1ci\u00f3s k\u00fcsz\u00f6b\u00f6t az akt\u00edv part\u00edci\u00f3ban (ahova a metrik\u00e1k \u00edr\u00f3dnak), de ez nem biztos.<\/li>\n<li>A retention konfigur\u00e1ci\u00f3 tartalmazhat t\u00f6bb jelent\u0151s aggreg\u00e1ci\u00f3s k\u00fcsz\u00f6b\u00f6t az akt\u00edv part\u00edci\u00f3ban (ahova a metrik\u00e1k \u00edr\u00f3dnak), de ez nem biztos.<\/li>\n<li>Ha nagyon sok adat van, akkor a legkor\u00e1bbi darabok, amelyek h\u00e1tt\u00e9rmargek miatt m\u00e1r hatalmasak lehetnek (nem optim\u00e1lis part\u00edci\u00f3s kulcs v\u00e1laszt\u00e1s eset\u00e9n), nem fognak egyes\u00fclni az \u00fajabb, kis darabokkal.<\/li>\n<\/ul>\n<p><\/p>\n<p>\u00c9s mindig ugyanazzal v\u00e9gz\u0151dik. A ClickHouse-ban a metrik\u00e1k \u00e1ltal elfoglalt hely csak n\u0151, ha:<\/p>\n<p><\/p>\n<ul>\n<li>nem alkalmazzuk <code>A retention konfigur\u00e1ci\u00f3 t\u00f6bb jelent\u0151s adategyes\u00edt\u00e9si k\u00fcsz\u00f6b\u00f6t tud tartalmazni a akt\u00edv part\u00edci\u00f3ban (ahova a metrik\u00e1k ker\u00fclnek), de lehet, hogy nem.<\/code> k\u00e9zzel, vagy<\/li>\n<li>nem helyezz\u00fck el az adatokat az \u00f6sszes part\u00edci\u00f3ba folyamatosan, hogy el\u0151bb-ut\u00f3bb elinduljon a h\u00e1tt\u00e9rmerg.<\/li>\n<\/ul>\n<p><\/p>\n<p>A m\u00e1sodik m\u00f3dszer a legk\u00f6nnyebben megval\u00f3s\u00edthat\u00f3nak t\u0171nik, ez\u00e9rt helytelen, \u00e9s ezt pr\u00f3b\u00e1ltuk ki el\u0151sz\u00f6r.<br \/>\n\u00cdrtam egy el\u00e9g egyszer\u0171 Python szkriptet, amely hamis metrik\u00e1kat k\u00fcld\u00f6tt minden egyes napra az el\u0151z\u0151 4 \u00e9vben, \u00e9s \u00f3r\u00e1nk\u00e9nt futott a cron.<br \/>\nMivel a ClickHouse DBMS teljes munk\u00e1ja azon alapul, hogy ez a rendszer el\u0151bb-ut\u00f3bb elv\u00e9gzi a h\u00e1tt\u00e9rmunk\u00e1t, de nem tudni mikor, ez\u00e9rt nem tudtam megv\u00e1rni, hogy a r\u00e9gi hatalmas darabok v\u00e9gre elkezdjenek egyes\u00fclni az \u00faj kis darabokkal. Nyilv\u00e1nval\u00f3v\u00e1 v\u00e1lt, hogy automatiz\u00e1lnom kell a k\u00f6telez\u0151 optimaliz\u00e1l\u00e1sokat.<\/p>\n<p>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hogyan cs\u00f6kkenthetj\u00fck jelent\u0151sen a lemezekre fogyasztott helyet\" src=\"\/wp-content\/uploads\/2019\/12\/60b0354cb65dcba6e8402b67261041ff.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3 id=\"informaciya-v-sistemnyh-tablicah-clickhouse\">Inform\u00e1ci\u00f3 a ClickHouse rendszert\u00e1bl\u00e1iban<\/h3>\n<p><\/p>\n<p>N\u00e9zz\u00fck meg a t\u00e1bl\u00e1zat szerkezet\u00e9t <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system_tables-parts\">system.parts<\/a><\/noindex>. Ez a ClickHouse szerveren tal\u00e1lhat\u00f3 \u00f6sszes t\u00e1bl\u00e1zat minden darabj\u00e1r\u00f3l teljes k\u00f6r\u0171 inform\u00e1ci\u00f3t ny\u00fajt. Tartalmazza t\u00f6bbek k\u00f6z\u00f6tt a k\u00f6vetkez\u0151 oszlopokat:<\/p>\n<p><\/p>\n<ul>\n<li>adatb\u00e1zis neve (<code>database<\/code>);<\/li>\n<li>t\u00e1bla neve (<code>table<\/code>);<\/li>\n<li>part\u00edci\u00f3 neve \u00e9s ID (<code>Ha a part\u00edci\u00f3ban csak egy darab maradt, akkor a merge-t a szok\u00e1sos parancs szerint nem lehet elind\u00edtani, haszn\u00e1lni kell<\/code> &amp; <code>partition_id<\/code>);<\/li>\n<li>mikor k\u00e9sz\u00fclt a darab (<code>modification_time<\/code>);<\/li>\n<li>minimum \u00e9s maximum d\u00e1tum a darabban (a part\u00edci\u00f3z\u00e1s napokra t\u00f6rt\u00e9nik) (<code>min_date<\/code> &amp; <code>max_date<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Van egy m\u00e1sik t\u00e1bla is <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system-graphite-retentions\">system.graphite_retentions<\/a><\/noindex>, a k\u00f6vetkez\u0151 \u00e9rdekes mez\u0151kkel:<\/p>\n<p><\/p>\n<ul>\n<li>adatb\u00e1zis neve (<code>Tables.database<\/code>);<\/li>\n<li>t\u00e1bla neve (<code>Tables.table<\/code>);<\/li>\n<li>a metrik\u00e1k \u00e9letkora, amikor a k\u00f6vetkez\u0151 aggreg\u00e1ci\u00f3s szab\u00e1lyt alkalmazni kell (<code>age<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Teh\u00e1t:<\/p>\n<p><\/p>\n<ol>\n<li>Van egy darabok t\u00e1bl\u00e1nk \u00e9s egy aggreg\u00e1ci\u00f3s szab\u00e1lyok t\u00e1bl\u00e1nk.<\/li>\n<li>\u00d6sszevonjuk \u0151ket \u00e9s megkapjuk az \u00f6sszes *GraphiteMergeTree t\u00e1bl\u00e1t.<\/li>\n<li>Megkeress\u00fck az \u00f6sszes part\u00edci\u00f3t, amelyek:\n<ul>\n<li>t\u00f6bb mint egy darab<\/li>\n<li>vagy el\u00e9rkezett az id\u0151, hogy alkalmazzuk a k\u00f6vetkez\u0151 aggreg\u00e1ci\u00f3s szab\u00e1lyt, \u00e9s <code>modification_time<\/code> id\u0151sebb enn\u00e9l a pillanatn\u00e1l.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"realizaciya\">Megval\u00f3s\u00edt\u00e1s<\/h3>\n<p>\n<b class=\"spoiler_title\">Ez a lek\u00e9rdez\u00e9s<\/b><\/p>\n<pre><code class=\"sql\">V\u00c1LASSZ\n    concat(p.database, '.', p.table) AS t\u00e1bl\u00e1zat,\n    p.partition_id AS part\u00edci\u00f3_id,\n    p.partition AS part\u00edci\u00f3,\n    -- A \"leg\u00f6regebb\" szab\u00e1ly, amely alkalmazhat\u00f3 a\n    -- part\u00edci\u00f3ra, de nem a j\u00f6v\u0151ben, l\u00e1sd (*)\n    max(g.age) AS \u00e9letkor,\n    -- A part\u00edci\u00f3ban l\u00e9v\u0151 darabok sz\u00e1ma\n    countDistinct(p.name) AS r\u00e9szek,\n    -- A legid\u0151sebb metrika a part\u00edci\u00f3ban a k\u00f6vetkez\u0151 nap 00:00:00\n    toDateTime(max(p.max_date + 1)) AS max_id\u0151,\n    -- Amikor a part\u00edci\u00f3 optimaliz\u00e1l\u00e1sra ker\u00fcl\n    max_id\u0151 + \u00e9letkor AS rollup_id\u0151,\n    -- Amikor a leg\u00f6regebb darabot a part\u00edci\u00f3ban friss\u00edtett\u00e9k\n    min(p.modification_time) AS m\u00f3dos\u00edtva\nFROM system.parts AS p\nINNER JOIN\n(\n    -- Minden szab\u00e1ly minden t\u00e1bl\u00e1hoz a *GraphiteMergeTree\n    V\u00c1LASSZ\n        Tables.database AS adatb\u00e1zis,\n        Tables.table AS t\u00e1bla,\n        \u00e9letkor\n    FROM system.graphite_retentions\n    ARRAY JOIN Tables\n    Csoportos\u00edt\u00e1s alapj\u00e1n\n        adatb\u00e1zis,\n        t\u00e1bla,\n        \u00e9letkor\n) AS g ON\n    (p.table = g.table)\n    AND (p.database = g.database)\nHOL\n    -- Csak akt\u00edv darabok\n    p.active\n    -- (*) \u00c9s csak azok a sorok, ahol az aggreg\u00e1ci\u00f3s szab\u00e1lyok m\u00e1r alkalmazand\u00f3k\n    \u00c9S ((toDateTime(p.max_date + 1) + g.age) &lt; now())\nCsoportos\u00edt\u00e1s alapj\u00e1n\n    t\u00e1bl\u00e1zat,\n    part\u00edci\u00f3\nHAVING\n    -- Csak azok a part\u00edci\u00f3k, amelyek fiatalabbak az optimaliz\u00e1l\u00e1si id\u0151pontn\u00e1l\n    (m\u00f3dos\u00edtva  1)\nRENDEZ\u00c9S\n    t\u00e1bl\u00e1zat ASC,\n    part\u00edci\u00f3 ASC,\n    \u00e9letkor ASC<\/code><\/pre>\n<p><\/p>\n<p>visszaadja a *GraphiteMergeTree t\u00e1bl\u00e1k minden part\u00edci\u00f3j\u00e1t, melyek egyes\u00edt\u00e9se szabad disk t\u00e9rhez vezet. Csak annyi marad, hogy v\u00e9gigmenj\u00fcnk rajtuk egy lek\u00e9rdez\u00e9ssel <code>A retention konfigur\u00e1ci\u00f3 t\u00f6bb jelent\u0151s adategyes\u00edt\u00e9si k\u00fcsz\u00f6b\u00f6t tud tartalmazni a akt\u00edv part\u00edci\u00f3ban (ahova a metrik\u00e1k ker\u00fclnek), de lehet, hogy nem.<\/code>. A v\u00e9gs\u0151 megval\u00f3s\u00edt\u00e1s sor\u00e1n figyelembe lett v\u00e9ve az a t\u00e9ny, hogy a part\u00edci\u00f3kat akt\u00edv \u00edr\u00e1s eset\u00e9n nem sz\u00fcks\u00e9ges meg\u00e9rinteni.<\/p>\n<p><\/p>\n<p>Pontosan ezt teszi a projekt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">graphite-ch-optimizer<\/a><\/noindex>. A volt koll\u00e9g\u00e1k a Yandex.Market-b\u00f3l kipr\u00f3b\u00e1lt\u00e1k a termel\u00e9sben, az eredm\u00e9nyek az al\u00e1bbiakban l\u00e1that\u00f3k. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: hogyan cs\u00f6kkenthetj\u00fck jelent\u0151sen a lemezekre fogyasztott helyet\" src=\"\/wp-content\/uploads\/2019\/12\/858dcbf538135d8d57964a71b2b6ca23.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ha a programot egy ClickHouse szerveren futtatj\u00e1k, akkor egyszer\u0171en elkezd m\u0171k\u00f6dni d\u00e9mon \u00fczemm\u00f3dban. Minden \u00f3r\u00e1ban v\u00e9grehajt egy lek\u00e9rdez\u00e9st, ellen\u0151rizve, hogy jelentek-e meg \u00faj part\u00edci\u00f3k, amelyek h\u00e1rom napn\u00e1l id\u0151sebbek \u00e9s optimaliz\u00e1lhat\u00f3k.<\/p>\n<p><\/p>\n<p>A k\u00f6zelj\u00f6v\u0151 tervei k\u00f6z\u00f6tt szerepel, hogy legal\u00e1bb deb csomagokat biztos\u00edtunk, \u00e9s lehet\u0151s\u00e9g szerint rpm-t is.<\/p>\n<p><\/p>\n<h3 id=\"vmesto-zaklyucheniya\">\u00d6sszegz\u00e9sk\u00e9nt<\/h3>\n<p><\/p>\n<p>A k\u00f6zelm\u00falt 9 h\u00f3napj\u00e1ban a c\u00e9gemen bel\u00fcl <noindex><a rel=\"nofollow\" href=\"https:\/\/www.innogames.com\/ru\/\">InnoGames<\/a><\/noindex> sok id\u0151t t\u00f6lt\u00f6ttem a ClickHouse \u00e9s a graphite-web hat\u00e1r\u00e1n. Ez egy j\u00f3 tapasztalat volt, amelynek eredm\u00e9nyek\u00e9nt gyors \u00e1t\u00e1ll\u00e1s v\u00e1lik lehet\u0151v\u00e9 a whisper-r\u0151l ClickHouse-ra mint metrik\u00e1kkal kapcsolatos t\u00e1rol\u00f3ra. Rem\u00e9lem, hogy ez a cikk valami olyasmi, mint egy ciklus kezdete a k\u00fcl\u00f6nb\u00f6z\u0151 r\u00e9szeinkben v\u00e9grehajtott fejleszt\u00e9sekr\u0151l, \u00e9s arr\u00f3l, hogy mi fog m\u00e9g t\u00f6rt\u00e9nni a j\u00f6v\u0151ben.<\/p>\n<p><\/p>\n<p>A k\u00e9rd\u00e9s kidolgoz\u00e1s\u00e1ra n\u00e9h\u00e1ny liter s\u00f6rt \u00e9s adminisztr\u00e1tori napokat k\u00f6lt\u00f6ttem, k\u00f6z\u00f6sen <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/v0devil\/\" class=\"user_link\">v0devil<\/a><\/noindex>, ez\u00e9rt szeretn\u00e9m megk\u00f6sz\u00f6nni neki. Tov\u00e1bb\u00e1, hogy \u00e1tn\u00e9zte ezt a cikket.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">A projekt oldala a githubon<\/a><\/noindex><\/p>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/479564\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e, habr. \u0415\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u0443\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 graphite-web \u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 whisper (IO, \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u043e\u0435 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e), \u0442\u043e \u0448\u0430\u043d\u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b\u043b \u0431\u0440\u043e\u0448\u0435\u043d \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0430 ClickHouse \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043c\u0435\u043d\u044b, \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u044c\u0441\u044f \u043a \u0435\u0434\u0438\u043d\u0438\u0446\u0435. \u0414\u0430\u043d\u043d\u043e\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0433\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0434\u0435\u043c\u043e\u043d\u0430 \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 carbonwriter \u0438\u043b\u0438 go-carbon. ClickHouse \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0435\u0448\u0430\u0435\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-53944","post","type-post","status-publish","format-standard","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=\".\" \/>\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\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah\" \/>\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\udd47ClickHouse + Graphite: \u043a\u0430\u043a \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u0434\u0438\u0441\u043a\u0430\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\".\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah\" \/>\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-12-12T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:01:53+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\udd47ClickHouse + Graphite: hogyan cs\u00f6kkenthetj\u00fck jelent\u0151sen a lemezhaszn\u00e1latot | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","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\udd47ClickHouse + Graphite: \u043a\u0430\u043a \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u0434\u0438\u0441\u043a\u0430\u0445 | ProHoster","og:description":".","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","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-12-12T21:00:00+00:00","article:modified_time":"2020-02-18T11:01:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53944","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-24 09:26:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:15:54","updated":"2026-01-24 09:26:21","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\/53944","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=53944"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/53944\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=53944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=53944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=53944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}