{"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\/sq\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","title":{"rendered":"ClickHouse + Graphite: si t\u00eb reduktoni ndjesh\u00ebm hap\u00ebsir\u00ebn e p\u00ebrdorur n\u00eb disqe","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: si t\u00eb reduktoni ndjesh\u00ebm hap\u00ebsir\u00ebn e p\u00ebrdorur n\u00eb disqe\" src=\"\/wp-content\/uploads\/2019\/12\/5a2d19e6fea2a28d8d4aa9220653aefc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebrsh\u00ebndetje, habr.<\/p>\n<p><\/p>\n<p>N\u00ebse ndokush po shfryt\u00ebzon sistemin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/graphite-web\">graphite-web<\/a><\/noindex> dhe ka hasur n\u00eb probleme me performanc\u00ebn e ruajtjes <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/whisper\">whisper<\/a><\/noindex> (IO, hap\u00ebsira e p\u00ebrdorur disk), at\u00ebher\u00eb mund\u00ebsia q\u00eb t\u00eb jet\u00eb shqyrtuar ClickHouse si z\u00ebvend\u00ebsim duhet t\u00eb jet\u00eb af\u00ebr nj\u00eb. Ky pohim n\u00ebnkupton se nj\u00eb zbatim tjet\u00ebr \u00ebsht\u00eb duke u p\u00ebrdorur p\u00ebr t\u00eb marr\u00eb metrikat, p\u00ebr shembull <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grobian\/carbonwriter\">carbonwriter<\/a><\/noindex> ose <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/go-graphite\/go-carbon\">go-carbon<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>ClickHouse zgjidh mir\u00eb problemet e p\u00ebrmendura. P\u00ebr shembull, pas nj\u00eb transferimi t\u00eb 2TiB t\u00eb dh\u00ebnash nga whisper, ato p\u00ebrfshihen n\u00eb 300GiB. Nuk do t\u00eb ndalem n\u00eb krahasime, ka mjaft artikuj mbi k\u00ebt\u00eb tem\u00eb. Po ashtu, deri koh\u00ebt e fundit, ndonj\u00ebher\u00eb nuk ka qen\u00eb krejt\u00ebsisht e p\u00ebrsosur me ruajtjen ton\u00eb ClickHouse.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"problemy-s-potreblyaemym-mestom\">Problemet me hap\u00ebsir\u00ebn e p\u00ebrdorur<\/h3>\n<p><\/p>\n<p>N\u00eb pamje t\u00eb par\u00eb, gjith\u00e7ka duket se duhet t\u00eb funksionoj\u00eb mir\u00eb. Duke ndjekur <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/table_engines\/graphitemergetree\/#primer-konfiguratsii\">dokumentacion<\/a><\/noindex>, krijojm\u00eb konfigurimin p\u00ebr skem\u00ebn e ruajtjes s\u00eb metrikave (m\u00eb pas <code>retention<\/code>), pastaj krijojm\u00eb tabel\u00ebn sipas rekomandimeve t\u00eb backend t\u00eb zgjedhur p\u00ebr graphite-web: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lomik\/carbon-clickhouse\">P\u00ebr leximin e t\u00eb dh\u00ebnave nga ClickHouse u zgjodh graphite-slickhouse (golang). Si API p\u00ebr Graphite \u2014 carbonapi (golang). P\u00ebr organizimin e replikimit mes tabelave ClickHouse u p\u00ebrdor carbon-c-relay. P\u00ebr ruterimin e metrikave ne lan\u00eb carbon-c-relay, t\u00eb cilin e duam shum\u00eb (shihni artikullin e kaluar).<\/a><\/noindex>+<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lomik\/graphite-clickhouse\">graphite-clickhouse<\/a><\/noindex> ose <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ClickHouse\/graphouse\">graphouse<\/a><\/noindex>, n\u00eb var\u00ebsi t\u00eb stack-ut q\u00eb p\u00ebrdoret. Dhe\u2026 ndizet bomba e vonuar.<\/p>\n<p><\/p>\n<p>P\u00ebr t\u00eb kuptuar se cila \u00ebsht\u00eb ajo, duhet t\u00eb dim\u00eb si funksionojn\u00eb inserimet dhe rruga e m\u00ebtejshme e jet\u00ebs s\u00eb t\u00eb dh\u00ebnave n\u00eb tabelat e motor\u00ebve t\u00eb familjes *<em>MergeTree<\/em> ClickHouse (grafik\u00ebt jan\u00eb marr\u00eb nga <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/PLMSA_gDdyM\">prezentim<\/a><\/noindex> Alexei Zatelepina):<\/p>\n<p><\/p>\n<ul>\n<li>Nj\u00eb <code>blok<\/code> t\u00eb dh\u00ebnash. N\u00eb rastin ton\u00eb, k\u00ebto jan\u00eb metrikat q\u00eb mb\u00ebrrit\u00ebn.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: si t\u00eb reduktoni ndjesh\u00ebm hap\u00ebsir\u00ebn e p\u00ebrdorur n\u00eb disqe\" src=\"\/wp-content\/uploads\/2019\/12\/b60d482acca3c8d187d394f58a2d8a16.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Secili nga k\u00ebto blloqe para se t\u00eb shkruhen n\u00eb disk sortohen sipas \u00e7el\u00ebsit <code>RENDIT ME<\/code>, t\u00eb specifikuar gjat\u00eb krijimit t\u00eb tabel\u00ebs.<\/li>\n<li>Pas renditjes, <code>nj\u00eb pjes\u00eb<\/code> (<code>part<\/code>) e t\u00eb dh\u00ebnave shkruhet n\u00eb disk.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: si t\u00eb reduktoni ndjesh\u00ebm hap\u00ebsir\u00ebn e p\u00ebrdorur n\u00eb disqe\" src=\"\/wp-content\/uploads\/2019\/12\/a54903b8efa0866d24da303fa7a68134.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Serveri monitoron n\u00eb sfond q\u00eb t\u00eb ket\u00eb pak k\u00ebshtu blloqesh, dhe nis proceset e prapambetjes <code>, pastaj bashkimeve).<\/code> (<code>bashk\u00eb<\/code>Serveri ndalon t\u00eb nis\u00eb bashkimet automatikisht, kur t\u00eb dh\u00ebnat ndalojn\u00eb s\u00eb hyr\u00eb aktivisht n\u00eb<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: si t\u00eb reduktoni ndjesh\u00ebm hap\u00ebsir\u00ebn e p\u00ebrdorur n\u00eb disqe\" src=\"\/wp-content\/uploads\/2019\/12\/151c18c7b73ebc4097493b13a2e26765.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: si t\u00eb reduktoni ndjesh\u00ebm hap\u00ebsir\u00ebn e p\u00ebrdorur n\u00eb disqe\" src=\"\/wp-content\/uploads\/2019\/12\/1921908554981eca0847541f77a15790.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>particion <code>partition<\/code> (<code>), por mund t\u00eb nisni procesin dorazi me komand\u00ebn<\/code>N\u00ebse n\u00eb particion ka mbetur vet\u00ebm nj\u00eb pjes\u00eb, at\u00ebher\u00eb nuk mund t\u00eb nisni nj\u00eb bashkim me komand\u00ebn normale, duhet t\u00eb p\u00ebrdorni <code>OPTIMIZE<\/code>.<\/li>\n<li>OPTIMIZE ... FINAL <code>Pra, t\u00eb dh\u00ebnat e para mb\u00ebrrijn\u00eb. Ato z\u00ebn\u00eb nj\u00eb hap\u00ebsir\u00eb t\u00eb caktuar. Ngjarjet e m\u00ebpasshme mund t\u00eb ndryshojn\u00eb disi, n\u00eb var\u00ebsi t\u00eb shum\u00eb faktor\u00ebve:<\/code><\/li>\n<\/ul>\n<p><\/p>\n<p>\u00c7el\u00ebsi i ndarjes mund t\u00eb jet\u00eb shum\u00eb i vog\u00ebl (diti), ose shum\u00eb i madh (disa muaj).<\/p>\n<p><\/p>\n<ul>\n<li>Konfigurimi i retention mund t\u00eb p\u00ebrmbaj\u00eb disa pragje t\u00eb r\u00ebnd\u00ebsishme t\u00eb agregimit t\u00eb t\u00eb dh\u00ebnave brenda particionit aktiv (ku shkojn\u00eb metrikat), ose ndoshta jo.<\/li>\n<li>Konfigu i retention mund t\u00eb p\u00ebrmbaj\u00eb disa pragje t\u00eb r\u00ebnd\u00ebsishme p\u00ebr agregimin e t\u00eb dh\u00ebnave brenda seksionit aktiv (ku shkruhen metrikat), ose ndoshta jo.<\/li>\n<li>N\u00ebse ka shum\u00eb t\u00eb dh\u00ebna, copat m\u00eb t\u00eb hershme, t\u00eb cilat p\u00ebr shkak t\u00eb bashkimeve n\u00eb sfond mund t\u00eb jen\u00eb tashm\u00eb t\u00eb m\u00ebdha (n\u00eb rastin e zgjedhjes s\u00eb nj\u00eb \u00e7el\u00ebsi t\u00eb pap\u00ebrshtatsh\u00ebm t\u00eb particionimit), nuk do t\u00eb bashkohen vet\u00eb me copat e reja t\u00eb vogla.<\/li>\n<\/ul>\n<p><\/p>\n<p>Dhe gjithmon\u00eb p\u00ebrfundon gjith\u00e7ka nj\u00ebsoj. Hapsira e z\u00ebn\u00eb nga metrikat n\u00eb ClickHouse vet\u00ebm rritet, n\u00ebse:<\/p>\n<p><\/p>\n<ul>\n<li>nuk aplikohet <code>Pra, t\u00eb dh\u00ebnat e para mb\u00ebrrijn\u00eb. Ato z\u00ebn\u00eb nj\u00eb hap\u00ebsir\u00eb t\u00eb caktuar. Ngjarjet e m\u00ebpasshme mund t\u00eb ndryshojn\u00eb disi, n\u00eb var\u00ebsi t\u00eb shum\u00eb faktor\u00ebve:<\/code> manually ose<\/li>\n<li>nuk futen t\u00eb dh\u00ebnat n\u00eb t\u00eb gjitha partit\u00eb n\u00eb vazhdim\u00ebsi, p\u00ebr ta filluar her\u00ebt ose von\u00eb nj\u00eb bashkim n\u00eb sfond<\/li>\n<\/ul>\n<p><\/p>\n<p>M\u00ebnyra e dyt\u00eb duket m\u00eb e thjesht\u00eb p\u00ebr t'u realizuar dhe, pra, ajo \u00ebsht\u00eb e gabuar dhe \u00ebsht\u00eb provuar e para.<br \/>\nKam shkruar nj\u00eb skript t\u00eb mjaftuesh\u00ebm t\u00eb thjesht\u00eb n\u00eb python, i cili d\u00ebrgonte metrika fiktive p\u00ebr \u00e7do dit\u00eb p\u00ebr kat\u00ebr vitet e fundit dhe ekzekutohej \u00e7do or\u00eb nga cron.<br \/>\nDuke qen\u00eb se e gjith\u00eb puna e ClickHouse DBMS bazohen n\u00eb faktin q\u00eb kjo sistem do t\u00eb kryej\u00eb t\u00eb gjith\u00eb pun\u00ebn n\u00eb sfond, por nuk dihet kur, nuk arrita t\u00eb prisja momentin kur copat e vjetra t\u00eb m\u00ebdha do t\u00eb fillonin bashkimin me t\u00eb reja t\u00eb vogla. U b\u00eb e qart\u00eb se duhej t\u00eb k\u00ebrkoja nj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb automatizuar optimizimet e detyruara.<\/p>\n<p>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: si t\u00eb reduktoni ndjesh\u00ebm hap\u00ebsir\u00ebn e p\u00ebrdorur n\u00eb disqe\" src=\"\/wp-content\/uploads\/2019\/12\/60b0354cb65dcba6e8402b67261041ff.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3 id=\"informaciya-v-sistemnyh-tablicah-clickhouse\">Informacioni n\u00eb tabelat sistemore ClickHouse<\/h3>\n<p><\/p>\n<p>T\u00eb shohim struktur\u00ebn e tabel\u00ebs <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system_tables-parts\">system.parts<\/a><\/noindex>. Ky \u00ebsht\u00eb informacioni gjith\u00ebp\u00ebrfshir\u00ebs rreth \u00e7do cope t\u00eb t\u00eb gjitha tabelave n\u00eb serverin ClickHouse. P\u00ebrfshin, nd\u00ebr t\u00eb tjera, kolonat e m\u00ebposhtme:<\/p>\n<p><\/p>\n<ul>\n<li>emri i DB (<code>database<\/code>);<\/li>\n<li>emri i tabel\u00ebs (<code>tavolina<\/code>);<\/li>\n<li>emri dhe ID e partit\u00ebs (<code>), por mund t\u00eb nisni procesin dorazi me komand\u00ebn<\/code> &amp; <code>partition_id<\/code>);<\/li>\n<li>kur u krijua copa (<code>modification_time<\/code>);<\/li>\n<li>data minimale dhe maksimale n\u00eb cope (particionimi b\u00ebhet sipas dit\u00ebve) (<code>min_date<\/code> &amp; <code>max_date<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Ka gjithashtu tabel\u00ebn <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system-graphite-retentions\">system.graphite_retentions<\/a><\/noindex>, me fushat e m\u00ebposhtme interesante:<\/p>\n<p><\/p>\n<ul>\n<li>emri i DB (<code>Tables.database<\/code>);<\/li>\n<li>emri i tabel\u00ebs (<code>Tables.table<\/code>);<\/li>\n<li>mosha e metrik\u00ebs, kur duhet t\u00eb aplikohet agregimi i ardhsh\u00ebm (<code>age<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Pra:<\/p>\n<p><\/p>\n<ol>\n<li>Kemi nj\u00eb tabel\u00eb copash dhe nj\u00eb tabel\u00eb t\u00eb rregullave t\u00eb agregimit.<\/li>\n<li>Bashkojm\u00eb nd\u00ebrprerjen e tyre dhe marrim t\u00eb gjitha tabelat *GraphiteMergeTree.<\/li>\n<li>K\u00ebrkojm\u00eb t\u00eb gjitha partit\u00eb, ku:\n<ul>\n<li>m\u00eb shum\u00eb se nj\u00eb cop\u00eb<\/li>\n<li>ose ka ardhur koha t\u00eb aplikohet rregulli i ardhsh\u00ebm i agregimit, dhe <code>modification_time<\/code> m\u00eb i vjet\u00ebr se ky moment.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"realizaciya\">Realizimi<\/h3>\n<p>\n<b class=\"spoiler_title\">Ky k\u00ebrkes\u00eb<\/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    -- Rregulli m\u00eb \"i vjet\u00ebr\" q\u00eb mund t\u00eb aplikohet p\u00ebr\n    -- parti, por jo n\u00eb t\u00eb ardhmen, shiko *\n    max(g.age) AS age,\n    -- Numri i pjes\u00ebve n\u00eb parti\n    countDistinct(p.name) AS parts,\n    -- Metri i m\u00eb i vjet\u00ebr n\u00eb parti merret si 00:00:00 e dit\u00ebs tjet\u00ebr\n    toDateTime(max(p.max_date + 1)) AS max_time,\n    -- Kur duhet optimizuar partia\n    max_time + age AS rollup_time,\n    -- Kur \u00ebsht\u00eb p\u00ebrdit\u00ebsuar p\u00ebr her\u00eb t\u00eb par\u00eb cop\u00ebza m\u00eb e vjet\u00ebr n\u00eb parti\n    min(p.modification_time) AS modified_at\nFROM system.parts AS p\nINNER JOIN\n(\n    -- T\u00eb gjitha rregullat p\u00ebr t\u00eb gjitha tabelat *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    -- Vet\u00ebm cop\u00ebza aktive\n    p.active\n    -- (*) Dhe vet\u00ebm rreshtat, ku rregullat e agregat\u00ebs duhet t\u00eb aplikohen\n    AND ((toDateTime(p.max_date + 1) + g.age) &lt; now())\nGROUP BY\n    table,\n    partition\nHAVING\n    -- Vet\u00ebm partit\u00eb q\u00eb jan\u00eb m\u00eb t\u00eb reja se momenti i optimizimit\n    (modified_at  1)\nORDER BY\n    table ASC,\n    partition ASC,\n    age ASC<\/code><\/pre>\n<p><\/p>\n<p>kthen \u00e7do nj\u00ebr\u00ebn nga partit\u00eb e tabelave *GraphiteMergeTree, t\u00eb cilat duhet t\u00eb merren p\u00ebr t\u00eb liruar hap\u00ebsir\u00eb disk. Mbetej vet\u00ebm t\u00eb ec\u00ebsh p\u00ebrmes t\u00eb gjitha k\u00ebtyre me nj\u00eb k\u00ebrkes\u00eb <code>Pra, t\u00eb dh\u00ebnat e para mb\u00ebrrijn\u00eb. Ato z\u00ebn\u00eb nj\u00eb hap\u00ebsir\u00eb t\u00eb caktuar. Ngjarjet e m\u00ebpasshme mund t\u00eb ndryshojn\u00eb disi, n\u00eb var\u00ebsi t\u00eb shum\u00eb faktor\u00ebve:<\/code>. N\u00eb realizimin p\u00ebrfundimtar gjithashtu \u00ebsht\u00eb marr\u00eb parasysh momenti q\u00eb partit\u00eb me regjistrim aktiv nuk ka nevoj\u00eb t\u00eb preken.<\/p>\n<p><\/p>\n<p>Kjo \u00ebsht\u00eb ajo q\u00eb b\u00ebn projekti <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">graphite-ch-optimizer<\/a><\/noindex>. Ish koleg\u00ebt nga Yandex.Market e provuan at\u00eb n\u00eb prodhim, rezultatin e pun\u00ebs mund ta shihni m\u00eb posht\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: si t\u00eb reduktoni ndjesh\u00ebm hap\u00ebsir\u00ebn e p\u00ebrdorur n\u00eb disqe\" src=\"\/wp-content\/uploads\/2019\/12\/858dcbf538135d8d57964a71b2b6ca23.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00ebse e nisni programin n\u00eb nj\u00eb server me ClickHouse, ai thjesht do t\u00eb filloj\u00eb t\u00eb punoj\u00eb n\u00eb modalitetin demon. \u00c7do or\u00eb do t\u00eb ekzekutohet nj\u00eb k\u00ebrkes\u00eb, duke kontroluar n\u00ebse kan\u00eb dal\u00eb parti t\u00eb reja m\u00eb t\u00eb vjetra se tri dit\u00eb, t\u00eb cilat mund t\u00eb optimizohen.<\/p>\n<p><\/p>\n<p>N\u00eb planet e af\u00ebrta \u00ebsht\u00eb t\u00eb ofrohen, t\u00eb pakt\u00ebn, paketat deb, dhe n\u00ebse \u00ebsht\u00eb e mundur \u2014 p\u00ebr m\u00eb tep\u00ebr edhe rpm.<\/p>\n<p><\/p>\n<h3 id=\"vmesto-zaklyucheniya\">N\u00eb vend t\u00eb p\u00ebrfundimit<\/h3>\n<p><\/p>\n<p>Gjat\u00eb k\u00ebtyre mbi 9 muajve brenda kompanis\u00eb sime <noindex><a rel=\"nofollow\" href=\"https:\/\/www.innogames.com\/ru\/\">InnoGames<\/a><\/noindex> kam kaluar shum\u00eb koh\u00eb, duke u angazhuar n\u00eb lidhje me ClickHouse dhe graphite-web. Kjo ka qen\u00eb nj\u00eb p\u00ebrvoj\u00eb e mir\u00eb, rezultati i s\u00eb cil\u00ebs ka b\u00ebr\u00eb t\u00eb mundur kalimin e shpejt\u00eb nga whisper n\u00eb ClickHouse si depo t\u00eb metrikeve. Shpresoj se ky artikull \u00ebsht\u00eb nj\u00eb lloj fillimi i nj\u00eb cikli mbi p\u00ebrmir\u00ebsimet q\u00eb kemi b\u00ebr\u00eb n\u00eb pjes\u00eb t\u00eb ndryshme t\u00eb k\u00ebtij staku dhe se \u00e7far\u00eb do t\u00eb b\u00ebhet n\u00eb t\u00eb ardhmen.<\/p>\n<p><\/p>\n<p>Disa p\u00ebr zhvillimin e k\u00ebrkes\u00ebs u shpenzuan disa litra birr\u00eb dhe dit\u00eb administrative s\u00eb bashku me <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/v0devil\/\" class=\"user_link\">v0devil<\/a><\/noindex>, p\u00ebr t\u00eb cilin dua t\u00eb shpreh mir\u00ebnjohjen time. Gjithashtu p\u00ebr rishikimin e k\u00ebtij artikulli.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">Faqja e projektit n\u00eb github<\/a><\/noindex><\/p>\n<p>Burimi: <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.0.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\/sq\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\/sq\/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: si t\u00eb reduktohet ndjesh\u00ebm hap\u00ebsira e mbajtur n\u00eb disqe | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/53944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=53944"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/53944\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=53944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=53944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=53944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}