{"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\/az\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","title":{"rendered":"ClickHouse + Graphite: diskd\u0259 istifad\u0259 olunan yeri \u0259h\u0259miyy\u0259tli d\u0259r\u0259c\u0259d\u0259 azaltmaq.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: diskd\u0259 istifad\u0259 olunan yeri \u0259h\u0259miyy\u0259tli d\u0259r\u0259c\u0259d\u0259 azaltmaq.\" src=\"\/wp-content\/uploads\/2019\/12\/5a2d19e6fea2a28d8d4aa9220653aefc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Salam, habr.<\/p>\n<p><\/p>\n<p>Kims\u0259 sistemi istismar edirs\u0259 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/graphite-web\">graphite-web<\/a><\/noindex> v\u0259 saxlama performans\u0131 problemi il\u0259 qar\u015f\u0131la\u015f\u0131rsa <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/whisper\">whisper<\/a><\/noindex> (IO, istifad\u0259 olunan disk sah\u0259si), ClickHouse-un alternativ olaraq n\u0259z\u0259rd\u0259n ke\u00e7irilm\u0259 ehtimal\u0131 bir\u0259 yax\u0131n olmal\u0131d\u0131r. Bu ifad\u0259, indi metrikl\u0259rin q\u0259bul edilm\u0259si \u00fc\u00e7\u00fcn \u00fc\u00e7\u00fcnc\u00fc t\u0259r\u0259f bir h\u0259llin istifad\u0259sind\u0259 oldu\u011funu g\u00f6st\u0259rir, m\u0259s\u0259l\u0259n <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grobian\/carbonwriter\">carbonwriter<\/a><\/noindex> v\u0259 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/go-graphite\/go-carbon\">go-carbon<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>ClickHouse t\u0259svir olunan probleml\u0259ri yax\u015f\u0131 h\u0259ll edir. M\u0259s\u0259l\u0259n, whisper-dan 2TiB m\u0259lumat k\u00f6\u00e7\u00fcrd\u00fckd\u0259n sonra, bunlar 300GiB-\u0259 s\u0131\u011fd\u0131. M\u0259s\u0259l\u0259nin m\u00fcqayis\u0259si il\u0259 uzun m\u00fcdd\u0259t dayanmayaca\u011fam, bu m\u00f6vzuda kifay\u0259t q\u0259d\u0259r m\u0259qal\u0259 var. H\u0259m\u00e7inin, son zamanlarda bizim ClickHouse saxlama sistemi il\u0259 h\u0259r \u015fey ideal deyildi.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"problemy-s-potreblyaemym-mestom\">\u0130stifad\u0259 olunan yer probleml\u0259ri<\/h3>\n<p><\/p>\n<p>Birinci bax\u0131\u015fda, h\u0259r \u015fey yax\u015f\u0131 i\u015fl\u0259m\u0259lidir. \u0130zl\u0259y\u0259r\u0259k <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/table_engines\/graphitemergetree\/#primer-konfiguratsii\">s\u0259n\u0259d<\/a><\/noindex>, metrikl\u0259rin saxlanma sxemi \u00fc\u00e7\u00fcn konfiqurasiya yarad\u0131r\u0131q (daha sonra <code>retention<\/code>), sonra se\u00e7ilmi\u015f arxa t\u0259r\u0259f \u00fczr\u0259 graphite-web \u00fc\u00e7\u00fcn t\u00f6vsiy\u0259l\u0259r\u0259 uy\u011fun olaraq c\u0259dv\u0259l yarad\u0131r\u0131q: <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> v\u0259 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ClickHouse\/graphouse\">graphouse<\/a><\/noindex>, hans\u0131 y\u0131\u011f\u0131mdan as\u0131l\u0131 olaraq. V\u0259... gecikmi\u015f bomba i\u015f\u0259 d\u00fc\u015f\u00fcr.<\/p>\n<p><\/p>\n<p>Hans\u0131n\u0131n oldu\u011funu anlamaq \u00fc\u00e7\u00fcn, daxil etm\u0259l\u0259rin v\u0259 m\u0259lumatlar\u0131n c\u0259dv\u0259ll\u0259rd\u0259ki sonrak\u0131 ya\u015fam d\u00f6vrl\u0259rinin nec\u0259 i\u015fl\u0259diyini bilm\u0259k laz\u0131md\u0131r<em>MergeTree<\/em> ClickHouse (diaqramlar <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/PLMSA_gDdyM\">Alexey Zatelepinin t\u0259qdimat\u0131ndan al\u0131nm\u0131\u015fd\u0131r):<\/a><\/noindex> Daxil edilir<\/p>\n<p><\/p>\n<ul>\n<li>m\u0259lumat <code>blokudur. Bizim halda, buraya metrikl\u0259r g\u0259ldi.<\/code> H\u0259r bel\u0259 blok disk\u0259 yaz\u0131lmadan \u0259vv\u0259l yarad\u0131lan c\u0259dv\u0259l\u0259 uy\u011fun olaraq<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: diskd\u0259 istifad\u0259 olunan yeri \u0259h\u0259miyy\u0259tli d\u0259r\u0259c\u0259d\u0259 azaltmaq.\" src=\"\/wp-content\/uploads\/2019\/12\/b60d482acca3c8d187d394f58a2d8a16.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>s\u0131ralan\u0131r. <code>ORDER BY<\/code>S\u0131ralamadan sonra,<\/li>\n<li>par\u00e7a <code>) m\u0259lumat diskin\u0259 yaz\u0131l\u0131r.<\/code> (<code>part<\/code>Server, arxa planda \u00e7ox sayda par\u00e7an\u0131n olmamas\u0131na diqq\u0259t yetirir v\u0259 arxa plan<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: diskd\u0259 istifad\u0259 olunan yeri \u0259h\u0259miyy\u0259tli d\u0259r\u0259c\u0259d\u0259 azaltmaq.\" src=\"\/wp-content\/uploads\/2019\/12\/a54903b8efa0866d24da303fa7a68134.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>birl\u0259\u015fm\u0259l\u0259rini <code>merge<\/code> (<code>merge<\/code>, sonra m\u0259rl\u0259\u015fdirir).<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: diskd\u0259 istifad\u0259 olunan yeri \u0259h\u0259miyy\u0259tli d\u0259r\u0259c\u0259d\u0259 azaltmaq.\" src=\"\/wp-content\/uploads\/2019\/12\/151c18c7b73ebc4097493b13a2e26765.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: diskd\u0259 istifad\u0259 olunan yeri \u0259h\u0259miyy\u0259tli d\u0259r\u0259c\u0259d\u0259 azaltmaq.\" src=\"\/wp-content\/uploads\/2019\/12\/1921908554981eca0847541f77a15790.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Server, m\u0259lumatlar aktiv \u015f\u0259kild\u0259 daxil olma\u011fa ba\u015flad\u0131qda m\u0259rl\u0259rini avtomatik olaraq dayand\u0131r\u0131r <code>partiya<\/code> (<code>partition<\/code>), lakin prosesi \u0259ll\u0259 i\u015f\u0259 salmaq m\u00fcmk\u00fcnd\u00fcr <code>i\u015fl\u0259tm\u0259k laz\u0131m olsa, MySQL m\u0259lumat fayllar\u0131n\u0131 yenil\u0259r\u0259k onlar\u0131 m\u00fcasir saxlanma format\u0131na ke\u00e7ir\u0259c\u0259k.<\/code>.<\/li>\n<li>\u018fg\u0259r partiyada yaln\u0131z bir par\u00e7a qal\u0131bsa, sad\u0259 komanda il\u0259 birl\u0259\u015fdirm\u0259k m\u00fcmk\u00fcn deyil, buna g\u00f6r\u0259 istifad\u0259 etm\u0259k laz\u0131md\u0131r <code>OPTIMIZE ... FINAL<\/code><\/li>\n<\/ul>\n<p><\/p>\n<p>Bel\u0259likl\u0259, ilk metrikl\u0259r g\u0259lir. V\u0259 bunlar bir q\u0259d\u0259r yer tutur. Sonrak\u0131 hadis\u0259l\u0259r bir \u00e7ox faktordan as\u0131l\u0131 olaraq bir az d\u0259yi\u015f\u0259 bil\u0259r:<\/p>\n<p><\/p>\n<ul>\n<li>Partiya a\u00e7ar\u0131 \u00e7ox ki\u00e7ik (bir g\u00fcn) v\u0259 ya \u00e7ox b\u00f6y\u00fck (bir ne\u00e7\u0259 ay) ola bil\u0259r.<\/li>\n<li>Retention konfiqurasiyas\u0131 aktiv partiyada (metrikl\u0259rin yaz\u0131ld\u0131\u011f\u0131 yer) bir ne\u00e7\u0259 m\u00fch\u00fcm m\u0259lumat toplama h\u0259ddini saxlay\u0131r, ya da saxlamaya bil\u0259r.<\/li>\n<li>\u018fg\u0259r \u00e7ox m\u0259lumat varsa, arxa planda birl\u0259\u015fdirilm\u0259l\u0259r s\u0259b\u0259biyl\u0259 \u0259n erk\u0259n par\u00e7alar (optimal olmayanda) yeni ki\u00e7ik par\u00e7alarla \u00f6z-\u00f6z\u00fcn\u0259 birl\u0259\u015fm\u0259y\u0259c\u0259k.<\/li>\n<\/ul>\n<p><\/p>\n<p>V\u0259 h\u0259mi\u015f\u0259 eyni formada bitir. ClickHouse-da metrikl\u0259rin tutdu\u011fu yer yaln\u0131z art\u0131r, \u0259g\u0259r:<\/p>\n<p><\/p>\n<ul>\n<li>d\u0259yi\u015fik etm\u0259zs\u0259 <code>OPTIMIZE ... FINAL<\/code> \u0259ll\u0259 v\u0259 ya<\/li>\n<li>B\u00fct\u00fcn par\u00e7alara davaml\u0131 olaraq m\u0259lumat daxil etm\u0259m\u0259k, n\u0259hay\u0259t fon birl\u0259\u015fm\u0259ni ba\u015flatmaq \u00fc\u00e7\u00fcn<\/li>\n<\/ul>\n<p><\/p>\n<p>\u0130kinci metod, h\u0259yata ke\u00e7irilm\u0259si \u0259n sad\u0259 g\u00f6r\u00fcn\u00fcr v\u0259 bel\u0259likl\u0259, o yanl\u0131\u015fd\u0131r v\u0259 \u0259vv\u0259lc\u0259 s\u0131nanm\u0131\u015fd\u0131r.<br \/>\nM\u0259n python-da kifay\u0259t q\u0259d\u0259r sad\u0259 bir skript yazd\u0131m ki, bu skript son 4 il \u0259rzind\u0259 h\u0259r g\u00fcn \u00fc\u00e7\u00fcn saxta metrikl\u0259r g\u00f6nd\u0259rirdi v\u0259 h\u0259r saat crontab il\u0259 i\u015f\u0259 d\u00fc\u015f\u00fcrd\u00fc.<br \/>\nClickHouse DBMS-in b\u00fct\u00fcn i\u015fi o prinsipi \u0259sas\u0131nda qurulub ki, bu sistem n\u0259hay\u0259t b\u00fct\u00fcn fon i\u015fl\u0259rini g\u00f6r\u0259c\u0259k, amma n\u0259 vaxt olaca\u011f\u0131 bilinmir, buna g\u00f6r\u0259 d\u0259 k\u00f6hn\u0259 b\u00f6y\u00fck hiss\u0259l\u0259rin yeni ki\u00e7ikl\u0259rl\u0259 birl\u0259\u015fm\u0259k \u00fc\u00e7\u00fcn ba\u015flayaca\u011f\u0131 an\u0131 g\u00f6zl\u0259y\u0259 bilm\u0259dim. Ayd\u0131n oldu ki, m\u0259cburi optimizasiyalar\u0131n avtomatla\u015fd\u0131r\u0131lmas\u0131 \u00fcsulunu axtarmaq laz\u0131md\u0131r.<\/p>\n<p>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: diskd\u0259 istifad\u0259 olunan yeri \u0259h\u0259miyy\u0259tli d\u0259r\u0259c\u0259d\u0259 azaltmaq.\" src=\"\/wp-content\/uploads\/2019\/12\/60b0354cb65dcba6e8402b67261041ff.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3 id=\"informaciya-v-sistemnyh-tablicah-clickhouse\">ClickHouse sistem c\u0259dv\u0259lind\u0259ki m\u0259lumat<\/h3>\n<p><\/p>\n<p>C\u0259dv\u0259l strukturuna n\u0259z\u0259r salaq <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system_tables-parts\">system.parts<\/a><\/noindex>. Bu, ClickHouse serverind\u0259ki b\u00fct\u00fcn c\u0259dv\u0259ll\u0259rin h\u0259r bir par\u00e7as\u0131 haqq\u0131nda \u0259trafl\u0131 m\u0259lumatd\u0131r. O, a\u015fa\u011f\u0131dak\u0131 s\u00fctunlar\u0131 \u0259hat\u0259 edir:<\/p>\n<p><\/p>\n<ul>\n<li>veril\u0259nl\u0259r bazas\u0131n\u0131n ad\u0131 (<code>database<\/code>);<\/li>\n<li>c\u0259dv\u0259l ad\u0131 (<code>table<\/code>);<\/li>\n<li>hiss\u0259nin ad\u0131 v\u0259 ID (<code>partition<\/code> &amp; <code>partition_id<\/code>);<\/li>\n<li>hiss\u0259nin yarad\u0131ld\u0131\u011f\u0131 vaxt (<code>modification_time<\/code>);<\/li>\n<li>hiss\u0259d\u0259 minimum v\u0259 maksimum tarix (par\u00e7alanma g\u00fcnl\u0259r \u00fczr\u0259 apar\u0131l\u0131r) (<code>min_date<\/code> &amp; <code>max_date<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>H\u0259m\u00e7inin a\u015fa\u011f\u0131dak\u0131 maraql\u0131 sah\u0259l\u0259ri olan c\u0259dv\u0259l var <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system-graphite-retentions\">system.graphite_retentions<\/a><\/noindex>,<\/p>\n<p><\/p>\n<ul>\n<li>veril\u0259nl\u0259r bazas\u0131n\u0131n ad\u0131 (<code>Tables.database<\/code>);<\/li>\n<li>c\u0259dv\u0259l ad\u0131 (<code>Tables.table<\/code>);<\/li>\n<li>metrikan\u0131n ya\u015f\u0131, n\u00f6vb\u0259ti agregasiyan\u0131n t\u0259tbiq olunmal\u0131 oldu\u011fu vaxt (<code>age<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Bel\u0259likl\u0259:<\/p>\n<p><\/p>\n<ol>\n<li>Bizim par\u00e7alar c\u0259dv\u0259limiz v\u0259 agregasiya qaydalar\u0131 c\u0259dv\u0259limiz var.<\/li>\n<li>Onlar\u0131n k\u0259si\u015fm\u0259sini birl\u0259\u015fdir\u0259r\u0259k b\u00fct\u00fcn *GraphiteMergeTree c\u0259dv\u0259ll\u0259rini al\u0131r\u0131q.<\/li>\n<li>B\u00fct\u00fcn par\u00e7alarda axtar\u0131r\u0131q ki,\n<ul>\n<li>bir ne\u00e7\u0259 hiss\u0259 vard\u0131r<\/li>\n<li>v\u0259 ya n\u00f6vb\u0259ti agregasiya qaydas\u0131n\u0131n t\u0259tbiq olunma vaxt\u0131 g\u0259lib \u00e7at\u0131b, <code>modification_time<\/code> bu vaxtdan k\u00f6hn\u0259dir.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"realizaciya\">H\u0259yata ke\u00e7irm\u0259<\/h3>\n<p>\n<b class=\"spoiler_title\">Bu sorgu<\/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    -- T\u0259tbiq oluna bil\u0259n \"\u0259n k\u00f6hn\u0259\" qayda\n    -- par\u00e7a \u00fc\u00e7\u00fcn, amma g\u0259l\u0259c\u0259kd\u0259 deyil, sm (*)\n    max(g.age) AS age,\n    -- Hiss\u0259d\u0259ki hiss\u0259l\u0259rin say\u0131\n    countDistinct(p.name) AS parts,\n    -- Hiss\u0259d\u0259 \u0259n k\u00f6hn\u0259 metrik 00:00:00 n\u00f6vb\u0259ti g\u00fcnd\u00fcr\n    toDateTime(max(p.max_date + 1)) AS max_time,\n    -- Hiss\u0259 hans\u0131 vaxt optimalla\u015fd\u0131r\u0131lmal\u0131d\u0131r\n    max_time + age AS rollup_time,\n    -- Hiss\u0259d\u0259ki \u0259n k\u00f6hn\u0259 hiss\u0259nin n\u0259 vaxt yenil\u0259ndiyi\n    min(p.modification_time) AS modified_at\nFROM system.parts AS p\nINNER JOIN\n(\n    -- B\u00fct\u00fcn *GraphiteMergeTree c\u0259dv\u0259ll\u0259ri \u00fc\u00e7\u00fcn b\u00fct\u00fcn qaydalar\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    -- Yaln\u0131z aktiv hiss\u0259l\u0259r\n    p.active\n    -- (*) V\u0259 yaln\u0131z o sat\u0131rlar, harada ki, agregasiya qaydalar\u0131 art\u0131q t\u0259tbiq olunmal\u0131d\u0131r\n    AND ((toDateTime(p.max_date + 1) + g.age) &lt; now())\nGROUP BY\n    table,\n    partition\nHAVING\n    -- Yaln\u0131z optimizasiya vaxt\u0131ndan g\u0259nc par\u00e7alar\n    (modified_at  1)\nORDER BY\n    table ASC,\n    partition ASC,\n    age ASC<\/code><\/pre>\n<p><\/p>\n<p>h\u0259r bir *GraphiteMergeTree c\u0259dv\u0259linin b\u00f6lm\u0259l\u0259rini qaytar\u0131r ki, m\u0259rk\u0259zl\u0259\u015fdirm\u0259l\u0259ri, disk sah\u0259sinin bo\u015fald\u0131lmas\u0131 il\u0259 n\u0259tic\u0259l\u0259nm\u0259lidir. \u0130ndi is\u0259 sad\u0259c\u0259 olaraq, onlar\u0131n ham\u0131s\u0131na sor\u011fu il\u0259 ke\u00e7m\u0259k laz\u0131md\u0131r. <code>OPTIMIZE ... FINAL<\/code>. Son icraatda, aktiv yazma olan b\u00f6lm\u0259l\u0259ri it\u0259l\u0259m\u0259 ehtiyac\u0131n\u0131n olmad\u0131\u011f\u0131 da n\u0259z\u0259r\u0259 al\u0131n\u0131b.<\/p>\n<p><\/p>\n<p>B \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">graphite-ch-optimizer<\/a><\/noindex>. Ke\u00e7mi\u015f yolda\u015flar\u0131m Yandex.Market-d\u0259 bunu prod-da test etdil\u0259r, i\u015fin n\u0259tic\u0259l\u0259rini a\u015fa\u011f\u0131da g\u00f6r\u0259 bil\u0259rsiniz. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: diskd\u0259 istifad\u0259 olunan yeri \u0259h\u0259miyy\u0259tli d\u0259r\u0259c\u0259d\u0259 azaltmaq.\" src=\"\/wp-content\/uploads\/2019\/12\/858dcbf538135d8d57964a71b2b6ca23.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u018fg\u0259r proqram\u0131 ClickHouse serverind\u0259 i\u015f\u0259 salsan\u0131z, o, sad\u0259c\u0259 olaraq, demon rejimind\u0259 i\u015fl\u0259m\u0259y\u0259 ba\u015flayacaq. Saatda bir d\u0259f\u0259 sor\u011fu icra olunacaq, yeni bir ne\u00e7\u0259 g\u00fcn \u0259rzind\u0259 optimalla\u015fd\u0131r\u0131la bil\u0259c\u0259k b\u00f6lm\u0259l\u0259rin olub-olmad\u0131\u011f\u0131n\u0131 yoxlayacaq.<\/p>\n<p><\/p>\n<p>G\u0259l\u0259c\u0259k planlar\u0131m\u0131z \u2014 \u0259n az\u0131 deb paketl\u0259rini t\u0259min etm\u0259kdir, m\u00fcmk\u00fcn olduqda is\u0259 rpm paketl\u0259ri d\u0259.<\/p>\n<p><\/p>\n<h3 id=\"vmesto-zaklyucheniya\">N\u0259tic\u0259 olaraq<\/h3>\n<p><\/p>\n<p>Ke\u00e7\u0259n 9 aydan \u00e7ox m\u00fcdd\u0259td\u0259 m\u0259n i\u00e7ind\u0259ki \u015firk\u0259timd\u0259 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.innogames.com\/ru\/\">InnoGames<\/a><\/noindex> ClickHouse v\u0259 graphite-web aras\u0131nda i\u015fl\u0259m\u0259kd\u0259 \u00e7ox zaman ke\u00e7irdim. Bu, yax\u015f\u0131 bir t\u0259cr\u00fcb\u0259 idi, n\u0259tic\u0259d\u0259 whisper-dan ClickHouse-a m\u00fc\u015ft\u0259ril\u0259r \u00fc\u00e7\u00fcn metrikl\u0259rinin saxlanmas\u0131 \u00fc\u00e7\u00fcn ke\u00e7id ed\u0259 bil\u0259c\u0259yik. \u00dcmid edir\u0259m ki, bu m\u0259qal\u0259 \u2014 bizim bu stekd\u0259 m\u00fcxt\u0259lif hiss\u0259l\u0259rd\u0259 etdiyimiz t\u0259kmill\u0259\u015fdirm\u0259l\u0259r haqq\u0131nda bir s\u0131ra yaz\u0131lar\u0131n ba\u015flan\u011f\u0131c\u0131 olacaq, eyni zamanda g\u0259l\u0259c\u0259kd\u0259 n\u0259l\u0259rin edil\u0259c\u0259yini g\u00f6st\u0259r\u0259c\u0259k.<\/p>\n<p><\/p>\n<p>Sor\u011funun haz\u0131rlanmas\u0131 \u00fc\u00e7\u00fcn bir ne\u00e7\u0259 litr piv\u0259 v\u0259 admin g\u00fcnl\u0259ri vurdum ki, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/v0devil\/\" class=\"user_link\">v0devil<\/a><\/noindex>, ona g\u00f6r\u0259 d\u0259 ona t\u0259\u015f\u0259kk\u00fcr\u00fcm\u00fc ifad\u0259 etm\u0259k ist\u0259yir\u0259m. H\u0259m\u00e7inin bu m\u0259qal\u0259nin redakt\u0259si \u00fc\u00e7\u00fcn.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">Layih\u0259nin github-da s\u0259hif\u0259si<\/a><\/noindex><\/p>\n<p>M\u0259nb\u0259: <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\/az\/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=\"az_AZ\" \/>\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\/az\/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: diskl\u0259rd\u0259 istehlak olunan sah\u0259ni nec\u0259 \u0259h\u0259miyy\u0259tli d\u0259r\u0259c\u0259d\u0259 azaltmaq olar | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/az\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"az_AZ","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\/az\/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\/az\/wp-json\/wp\/v2\/posts\/53944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/comments?post=53944"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/posts\/53944\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/media?parent=53944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/categories?post=53944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/tags?post=53944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}