{"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\/ro\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","title":{"rendered":"ClickHouse + Graphite: cum s\u0103 reduci semnificativ spa\u021biul consumat pe discuri","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: cum s\u0103 reduci semnificativ spa\u021biul consumat pe discuri\" src=\"\/wp-content\/uploads\/2019\/12\/5a2d19e6fea2a28d8d4aa9220653aefc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Salut, habr.<\/p>\n<p><\/p>\n<p>Dac\u0103 cineva exploateaz\u0103 sistemul <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/graphite-web\">graphite-web<\/a><\/noindex> \u0219i s-a confruntat cu o problem\u0103 de performan\u021b\u0103 a stoc\u0103rii <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/whisper\">whisper<\/a><\/noindex> (IO, spa\u021biul de stocare utilizat), atunci \u0219ansa ca cineva s\u0103 fi privit ClickHouse ca o alternativ\u0103 ar trebui s\u0103 tinde spre unu. Aceast\u0103 afirma\u021bie implic\u0103 faptul c\u0103, ca receptor al metricelor, se folose\u0219te deja o implementare ter\u021b\u0103, de exemplu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grobian\/carbonwriter\">carbonwriter<\/a><\/noindex> sau <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/go-graphite\/go-carbon\">go-carbon<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>ClickHouse rezolv\u0103 bine problemele descrise. De exemplu, dup\u0103 ce am transferat 2TiB de date din whisper, acestea s-au \u00eencadrat \u00een 300GiB. Nu voi insista pe compara\u021bii, exist\u0103 suficiente articole pe aceast\u0103 tem\u0103. \u00cen plus, p\u00e2n\u0103 de cur\u00e2nd, nu totul era perfect cu depozitul nostru ClickHouse.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"problemy-s-potreblyaemym-mestom\">Probleme cu spa\u021biul utilizat<\/h3>\n<p><\/p>\n<p>La prima vedere, totul ar trebui s\u0103 func\u021bioneze bine. Urm\u00e2nd <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/table_engines\/graphitemergetree\/#primer-konfiguratsii\">documentation<\/a><\/noindex>, cre\u0103m un config pentru schema de stocare a metricelor (ulterior <code>retention<\/code>), apoi cre\u0103m o tabel\u0103 conform recomand\u0103rii backend-ului ales pentru graphite-web: <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> sau <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ClickHouse\/graphouse\">graphouse<\/a><\/noindex>, \u00een func\u021bie de ce stiv\u0103 este utilizat\u0103. \u0218i... se activeaz\u0103 o bomb\u0103 cu ceas.<\/p>\n<p><\/p>\n<p>Pentru a \u00een\u021belege care este aceasta, trebuie s\u0103 \u0219tim cum func\u021bioneaz\u0103 inser\u021biile \u0219i parcursul ulterior al datelor \u00een tabelele motoarelor din familia *<em>MergeTree<\/em> ClickHouse (diagrama este preluat\u0103 din <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/PLMSA_gDdyM\">prezentarea<\/a><\/noindex> Alexei Zatelepin):<\/p>\n<p><\/p>\n<ul>\n<li>Se introduce <code>un bloc<\/code> de date. \u00cen cazul nostru, acestea sunt metricile primite.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: cum s\u0103 reduci semnificativ spa\u021biul consumat pe discuri\" src=\"\/wp-content\/uploads\/2019\/12\/b60d482acca3c8d187d394f58a2d8a16.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Fiecare astfel de bloc, \u00eenainte de a fi scris pe disc, este sortat conform cheii <code>ORDER BY<\/code>, specificat\u0103 la crearea tabelului.<\/li>\n<li>Dup\u0103 sortare, <code>un fragment<\/code> (<code>part<\/code>) de date este scris pe disc.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: cum s\u0103 reduci semnificativ spa\u021biul consumat pe discuri\" src=\"\/wp-content\/uploads\/2019\/12\/a54903b8efa0866d24da303fa7a68134.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Serverul monitorizeaz\u0103 \u00een fundal, pentru a se asigura c\u0103 nu exist\u0103 multe astfel de fragmente, \u0219i porne\u0219te procesul de <code>\u00eembinare<\/code> (<code>merge<\/code>, ulterior, \u00eembin\u0103ri).<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: cum s\u0103 reduci semnificativ spa\u021biul consumat pe discuri\" src=\"\/wp-content\/uploads\/2019\/12\/151c18c7b73ebc4097493b13a2e26765.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: cum s\u0103 reduci semnificativ spa\u021biul consumat pe discuri\" src=\"\/wp-content\/uploads\/2019\/12\/1921908554981eca0847541f77a15790.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Serverul \u00eenceteaz\u0103 s\u0103 porneasc\u0103 \u00eembin\u0103rile automat, imediat ce datele \u00eenceteaz\u0103 s\u0103 mai curg\u0103 activ \u00een <code>parti\u021bie<\/code> (<code>partition<\/code>), dar procesul poate fi pornit manual cu comanda <code>OPTIMIZE<\/code>.<\/li>\n<li>Dac\u0103 \u00een parti\u021bie a r\u0103mas doar un singur fragment, atunci o \u00eembinare obi\u0219nuit\u0103 nu va putea fi efectuat\u0103, este necesar s\u0103 folose\u0219ti <code>OPTIMIZE ... FINAL<\/code><\/li>\n<\/ul>\n<p><\/p>\n<p>A\u0219adar, primele metrici sosesc. \u0218i ele ocup\u0103 un anumit spa\u021biu. Evenimentele ulterioare pot varia \u00een func\u021bie de mul\u021bi factori:<\/p>\n<p><\/p>\n<ul>\n<li>Cheia de parti\u021bionare poate fi foarte mic\u0103 (zi) sau foarte mare (c\u00e2teva luni).<\/li>\n<li>Configura\u021bia de reten\u021bie poate con\u021bine mai multe praguri semnificative de agregare a datelor \u00een interiorul unei parti\u021bii active (unde sunt scrise metricile), sau nu.<\/li>\n<li>Dac\u0103 sunt foarte multe date, cele mai vechi buc\u0103\u021bi, care din cauza fuziunilor de fundal pot fi deja enorme (aleg\u00e2nd o cheie de parti\u021bionare suboptim\u0103), nu se vor fuziona singure cu buc\u0103\u021bile proaspete mici.<\/li>\n<\/ul>\n<p><\/p>\n<p>\u0218i totul se termin\u0103 \u00eentotdeauna la fel. Locul ocupat de metrici \u00een ClickHouse cre\u0219te doar dac\u0103:<\/p>\n<p><\/p>\n<ul>\n<li>nu aplici <code>OPTIMIZE ... FINAL<\/code> manual sau<\/li>\n<li>nu introduci date \u00een toate parti\u021biile \u00een mod constant, astfel \u00eenc\u00e2t, mai devreme sau mai t\u00e2rziu, s\u0103 ini\u021biezi o fuziune de fundal<\/li>\n<\/ul>\n<p><\/p>\n<p>A doua metod\u0103 pare cea mai simpl\u0103 de implementat \u0219i, prin urmare, este gre\u0219it\u0103 \u0219i a fost testat\u0103 mai \u00eent\u00e2i.<br \/>\nAm scris un script destul de simplu \u00een python, care trimitea metrici fictive pentru fiecare zi din ultimii 4 ani \u0219i rula\u021bi la fiecare or\u0103 prin cron.<br \/>\nAv\u00e2nd \u00een vedere c\u0103 \u00eentreaga activitate a ClickHouse DBMS se bazeaz\u0103 pe faptul c\u0103 acest sistem va efectua mai devreme sau mai t\u00e2rziu toat\u0103 munca de fundal, dar nu se \u0219tie c\u00e2nd, nu am reu\u0219it s\u0103 a\u0219tept momentul \u00een care vechile buc\u0103\u021bi enorme vor \u00eencepe fuziunea cu noi buc\u0103\u021bi mici. A devenit clar c\u0103 trebuie s\u0103 c\u0103ut\u0103m o modalitate de a automatiza optimiz\u0103rile for\u021bate.<\/p>\n<p>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: cum s\u0103 reduci semnificativ spa\u021biul consumat pe discuri\" src=\"\/wp-content\/uploads\/2019\/12\/60b0354cb65dcba6e8402b67261041ff.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3 id=\"informaciya-v-sistemnyh-tablicah-clickhouse\">Informa\u021biile din tabelele sistemului ClickHouse<\/h3>\n<p><\/p>\n<p>S\u0103 ne uit\u0103m la structura tabelului <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system_tables-parts\">system.parts<\/a><\/noindex>. Aceasta este informa\u021bia exhaustiv\u0103 despre fiecare bucat\u0103 din toate tabelele de pe serverul ClickHouse. Include, printre altele, urm\u0103toarele coloane:<\/p>\n<p><\/p>\n<ul>\n<li>numele BD (<code>database<\/code>);<\/li>\n<li>numele tabelului (<code>table<\/code>);<\/li>\n<li>numele \u0219i ID-ul parti\u021biei (<code>partition<\/code> &amp; <code>partition_id<\/code>);<\/li>\n<li>c\u00e2nd a fost creat bucata (<code>modification_time<\/code>);<\/li>\n<li>data minim\u0103 \u0219i maxim\u0103 din bucat\u0103 (parti\u021bionarea se face pe zile) (<code>min_date<\/code> &amp; <code>max_date<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Exist\u0103, de asemenea, un tabel <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system-graphite-retentions\">system.graphite_retentions<\/a><\/noindex>, cu c\u00e2mpurile interesante urm\u0103toare:<\/p>\n<p><\/p>\n<ul>\n<li>numele BD (<code>Tables.database<\/code>);<\/li>\n<li>numele tabelului (<code>Tables.table<\/code>);<\/li>\n<li>v\u00e2rsta metricii, c\u00e2nd ar trebui s\u0103 fie aplicat\u0103 urm\u0103toarea agregare (<code>age<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Deci:<\/p>\n<p><\/p>\n<ol>\n<li>Avem un tabel de buc\u0103\u021bi \u0219i un tabel de reguli de agregare.<\/li>\n<li>Combin\u0103m intersec\u021bia lor \u0219i ob\u021binem toate tabelele *GraphiteMergeTree.<\/li>\n<li>C\u0103ut\u0103m toate parti\u021biile \u00een care:\n<ul>\n<li>exist\u0103 mai mult de o bucat\u0103<\/li>\n<li>sau a venit momentul s\u0103 aplic\u0103m urm\u0103toarea regul\u0103 de agregare \u0219i <code>modification_time<\/code> sunt mai vechi dec\u00e2t acest moment.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"realizaciya\">Implementarea<\/h3>\n<p>\n<b class=\"spoiler_title\">Aceast\u0103 interogare<\/b><\/p>\n<pre><code class=\"sql\">SELECT\n    concat(p.database, '.', p.table) AS table,\n    p.partition_id AS partition_id,\n    p.partition AS partition,\n    -- Cea mai \"veche\" regul\u0103 care poate fi aplicat\u0103 pentru\n    -- parti\u021bie, dar nu \u00een viitor, vezi (*)\n    max(g.age) AS age,\n    -- Num\u0103rul de buc\u0103\u021bi \u00een parti\u021bie\n    countDistinct(p.name) AS parts,\n    -- Cea mai veche metric\u0103 din parti\u021bie este considerat\u0103 00:00:00 din urm\u0103toarea zi\n    toDateTime(max(p.max_date + 1)) AS max_time,\n    -- C\u00e2nd ar trebui s\u0103 fie optimizat\u0103 parti\u021bia\n    max_time + age AS rollup_time,\n    -- C\u00e2nd cea mai veche bucat\u0103 din parti\u021bie a fost actualizat\u0103\n    min(p.modification_time) AS modified_at\nFROM system.parts AS p\nINNER JOIN\n(\n    -- Toate regulile pentru toate tabelele *GraphiteMergeTree\n    SELECT\n        Tables.database AS database,\n        Tables.table AS table,\n        age\n    FROM system.graphite_retentions\n    ARRAY JOIN Tables\n    GROUP BY\n        database,\n        table,\n        age\n) AS g ON\n    (p.table = g.table)\n    AND (p.database = g.database)\nWHERE\n    -- Doar buc\u0103\u021bi active\n    p.active\n    -- (*) \u0218i doar r\u00e2nduri unde regulile de agregare ar trebui s\u0103 fie deja aplicate\n    AND ((toDateTime(p.max_date + 1) + g.age) &lt; now())\nGROUP BY\n    table,\n    partition\nHAVING\n    -- Doar parti\u021bii care sunt mai tinere dec\u00e2t momentul optimiz\u0103rii\n    (modified_at  1)\nORDER BY\n    table ASC,\n    partition ASC,\n    age ASC<\/code><\/pre>\n<p><\/p>\n<p>returneaz\u0103 fiecare dintre parti\u021biile tabelelor *GraphiteMergeTree, \u00eembin\u0103rile c\u0103rora ar trebui s\u0103 conduc\u0103 la eliberarea spa\u021biului pe disc. R\u0103m\u00e2ne doar s\u0103 trecem prin ele toate cu o interogare <code>OPTIMIZE ... FINAL<\/code>. \u00cen implementarea final\u0103 este luat \u00een considerare \u0219i faptul c\u0103 nu este necesar s\u0103 atingem parti\u021biile cu scriere activ\u0103.<\/p>\n<p><\/p>\n<p>Exact asta face proiectul <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">graphite-ch-optimizer<\/a><\/noindex>. Fo\u0219tii colegi de la Yandex.Market l-au testat \u00een produc\u021bie, rezultatul muncii se poate vedea mai jos. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: cum s\u0103 reduci semnificativ spa\u021biul consumat pe discuri\" src=\"\/wp-content\/uploads\/2019\/12\/858dcbf538135d8d57964a71b2b6ca23.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dac\u0103 rula\u021bi programul pe un server cu ClickHouse, acesta va \u00eencepe pur \u0219i simplu s\u0103 func\u021bioneze \u00een modul demon. Odat\u0103 la o or\u0103 va fi executat\u0103 o interogare, verific\u00e2nd dac\u0103 au ap\u0103rut noi parti\u021bii mai vechi de trei zile care pot fi optimizate.<\/p>\n<p><\/p>\n<p>Printre planurile viitoare \u2014 s\u0103 oferim, cel pu\u021bin, pachete deb, iar dac\u0103 este posibil \u2014 \u0219i rpm.<\/p>\n<p><\/p>\n<h3 id=\"vmesto-zaklyucheniya\">\u00cen concluzie<\/h3>\n<p><\/p>\n<p>\u00cen ultimele 9 luni am petrecut mult timp \u00een cadrul companiei mele <noindex><a rel=\"nofollow\" href=\"https:\/\/www.innogames.com\/ru\/\">InnoGames<\/a><\/noindex> am fost \u00eempotmolit la intersec\u021bia dintre ClickHouse \u0219i graphite-web. A fost o experien\u021b\u0103 bun\u0103, rezultatul c\u0103reia a f\u0103cut posibil\u0103 tranzi\u021bia rapid\u0103 de la whisper la ClickHouse ca depozit de metrici. Sper c\u0103 acest articol este ceva de genul unui \u00eenceput de ciclu despre ce \u00eembun\u0103t\u0103\u021biri am adus \u00een diferite p\u0103r\u021bi ale acestui stiv\u0103 \u0219i ce va fi f\u0103cut \u00een viitor.<\/p>\n<p><\/p>\n<p>Au dezvoltarea cererii au fost consumate c\u00e2teva litri de bere \u0219i zile de munc\u0103 \u00eempreun\u0103 cu <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/v0devil\/\" class=\"user_link\">v0devil<\/a><\/noindex>, pentru care vreau s\u0103-i exprim recuno\u0219tin\u021ba mea. De asemenea, pentru recenzia acestui articol.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">Pagina proiectului pe github<\/a><\/noindex><\/p>\n<p>Sursa: <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.2.1 - 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\/ro\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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: cum s\u0103 reduci semnificativ spa\u021biul consumat pe discuri | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/53944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=53944"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/53944\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=53944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=53944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=53944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}