{"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\/nl\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","title":{"rendered":"ClickHouse + Graphite: hoe je de schijfruimte aanzienlijk kunt verkleinen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: hoe je de schijfruimte aanzienlijk kunt verkleinen\" src=\"\/wp-content\/uploads\/2019\/12\/5a2d19e6fea2a28d8d4aa9220653aefc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hallo, habr.<\/p>\n<p><\/p>\n<p>Als iemand het systeem gebruikt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/graphite-web\">graphite-web<\/a><\/noindex> en tegen prestatieproblemen aanloopt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/whisper\">whisper<\/a><\/noindex> (IO, gebruikte schijfruimte), dan zou de kans dat er naar ClickHouse als vervanging is gekeken,naar \u00e9\u00e9n moeten neigen. Deze verklaring impliceert dat er al een externe implementatie als metriek demon wordt gebruikt, bijvoorbeeld <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grobian\/carbonwriter\">carbonwriter<\/a><\/noindex> of <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/go-graphite\/go-carbon\">go-carbon<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>ClickHouse lost de beschreven problemen goed op. Bijvoorbeeld, na het migreren van 2TiB gegevens uit whisper, pasten ze in 300GiB. Ik zal niet in detail treden over de vergelijking, er zijn genoeg artikelen over dit onderwerp. Bovendien was er tot voor kort niet alles perfect met onze ClickHouse opslag.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"problemy-s-potreblyaemym-mestom\">Problemen met gebruikte ruimte<\/h3>\n<p><\/p>\n<p>Op het eerste gezicht zou alles goed moeten werken. Volg <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/table_engines\/graphitemergetree\/#primer-konfiguratsii\">de documentatie<\/a><\/noindex>, we maken een configuratie voor het opslag-schema (verder <code>retention<\/code>), daarna maken we een tabel volgens de aanbeveling van de gekozen backend voor 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> of <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ClickHouse\/graphouse\">graphouse<\/a><\/noindex>, afhankelijk van welke stack wordt gebruikt. En... er wordt een tijdbom geactiveerd.<\/p>\n<p><\/p>\n<p>Om te begrijpen welke, moet je weten hoe inserts werken en de verdere levenscyclus van gegevens in de tabellen van de *<em>MergeTree<\/em> ClickHouse (diagrammen zijn afkomstig van <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/PLMSA_gDdyM\">presentatie<\/a><\/noindex> Alexey Zatelepin):<\/p>\n<p><\/p>\n<ul>\n<li>Er wordt een <code>blok<\/code> gegevens ingevoegd. In ons geval kwamen de metrics binnen.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hoe je de schijfruimte aanzienlijk kunt verkleinen\" src=\"\/wp-content\/uploads\/2019\/12\/b60d482acca3c8d187d394f58a2d8a16.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Elk zulk blok wordt gesorteerd volgens de sleutel <code>ORDER BY<\/code>, opgegeven bij het aanmaken van de tabel.<\/li>\n<li>Na sortering, <code>een stuk<\/code> (<code>part<\/code>) gegevens wordt naar de schijf geschreven.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hoe je de schijfruimte aanzienlijk kunt verkleinen\" src=\"\/wp-content\/uploads\/2019\/12\/a54903b8efa0866d24da303fa7a68134.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>De server houdt op de achtergrond in de gaten dat er niet te veel van zulke stukken zijn, en start achtergrond <code>samenvoegingen<\/code> (<code>merge<\/code>, daarna mergen).<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hoe je de schijfruimte aanzienlijk kunt verkleinen\" src=\"\/wp-content\/uploads\/2019\/12\/151c18c7b73ebc4097493b13a2e26765.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hoe je de schijfruimte aanzienlijk kunt verkleinen\" src=\"\/wp-content\/uploads\/2019\/12\/1921908554981eca0847541f77a15790.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>De server stopt met het automatisch starten van merges zodra er geen actieve gegevens meer binnenkomen in <code>de partitie<\/code> (<code>partition<\/code>), maar je kunt het proces handmatig starten met het commando <code>OPTIMIZE<\/code>.<\/li>\n<li>Als er in de partitie nog maar \u00e9\u00e9n stuk over is, dan kan je de merge niet met een gewoon commando starten, je moet <code>OPTIMIZE ... FINAL<\/code><\/li>\n<\/ul>\n<p><\/p>\n<p>Dus, de eerste metrics komen binnen. En ze nemen enige ruimte in beslag. De daaropvolgende gebeurtenissen kunnen enigszins vari\u00ebren afhankelijk van verschillende factoren:<\/p>\n<p><\/p>\n<ul>\n<li>De partitioneringssleutel kan ofwel heel klein zijn (dag), of heel groot (meerdere maanden).<\/li>\n<li>De retention-configuratie kan verschillende significante aggregatiedrempels binnen de actieve partitie (waar de metrics worden geregistreerd) bevatten, of dat kan ook niet.<\/li>\n<li>Als er veel data is, zullen de oudste stukken, die door achtergrondmarges enorm kunnen zijn (bij het kiezen van een suboptimale partitie-sleutel), niet samensmelten met de nieuwe kleine stukken.<\/li>\n<\/ul>\n<p><\/p>\n<p>En het eindigt altijd op dezelfde manier. De ruimte die door metrics in ClickHouse wordt ingenomen, groeit alleen als:<\/p>\n<p><\/p>\n<ul>\n<li>we geen toepassing maken <code>OPTIMIZE ... FINAL<\/code> handmatig of<\/li>\n<li>geen data in alle partities continu invoeren, zodat vroeg of laat een achtergrondmerge kan plaatsvinden.<\/li>\n<\/ul>\n<p><\/p>\n<p>De tweede aanpak lijkt het eenvoudigst te realiseren en is daarom foutief; deze werd als eerste getest.<br \/>\nIk heb een vrij eenvoudige Python-script geschreven dat fictieve metrics voor elke dag van de afgelopen 4 jaar verzond en elk uur werd uitgevoerd door cron.<br \/>\nAangezien al het werk van ClickHouse DBMS is gebaseerd op het feit dat dit systeem vroeg of laat al het achtergrondwerk zal uitvoeren, maar niet bekend is wanneer, kreeg ik het niet voor elkaar om te wachten tot oude enorme stukken gebruikbaar werden voor een merge met nieuwe kleine. Het werd duidelijk dat ik een manier moest vinden om gedwongen optimalisaties te automatiseren.<\/p>\n<p>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hoe je de schijfruimte aanzienlijk kunt verkleinen\" src=\"\/wp-content\/uploads\/2019\/12\/60b0354cb65dcba6e8402b67261041ff.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3 id=\"informaciya-v-sistemnyh-tablicah-clickhouse\">Informatie in de systeemtabellen van ClickHouse<\/h3>\n<p><\/p>\n<p>Laten we naar de structuur van de tabel <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system_tables-parts\">system.parts<\/a><\/noindex>. Dit is uitputtende informatie over elk stuk van alle tabellen op de ClickHouse-server. Het bevat onder andere de volgende kolommen:<\/p>\n<p><\/p>\n<ul>\n<li>database naam (<code>database<\/code>);<\/li>\n<li>tabel naam (<code>table<\/code>);<\/li>\n<li>naam en ID van de partitie (<code>partition<\/code> &amp; <code>partition_id<\/code>);<\/li>\n<li>wanneer het stuk is aangemaakt (<code>modification_time<\/code>);<\/li>\n<li>minimum en maximum datum in het stuk (de partiti\u00ebring is per dag) (<code>min_date<\/code> &amp; <code>max_date<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Er is ook een tabel <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system-graphite-retentions\">system.graphite_retentions<\/a><\/noindex>, met de volgende interessante velden:<\/p>\n<p><\/p>\n<ul>\n<li>database naam (<code>Tables.database<\/code>);<\/li>\n<li>tabel naam (<code>Tables.table<\/code>);<\/li>\n<li>de leeftijd van de metric, wanneer de volgende aggregatie moet worden toegepast (<code>age<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Dus:<\/p>\n<p><\/p>\n<ol>\n<li>We hebben een tabel met stukken en een tabel met aggregatieregels.<\/li>\n<li>We combineren hun snijpunt en krijgen alle tabellen *GraphiteMergeTree.<\/li>\n<li>We zoeken naar alle partities waar:\n<ul>\n<li>meer dan \u00e9\u00e9n stuk<\/li>\n<li>of het tijd is om de volgende aggregatieregel toe te passen, en <code>modification_time<\/code> ouder is dan dit moment.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"realizaciya\">Implementatie<\/h3>\n<p>\n<b class=\"spoiler_title\">Deze query<\/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    -- De \"oudste\" regel die kan worden toegepast voor\n    -- de partition, maar niet in de toekomst, zie (*)\n    max(g.age) AS age,\n    -- Aantal stukken in de partition\n    countDistinct(p.name) AS parts,\n    -- De oudste metriek in de partition wordt beschouwd als 00:00:00 van de volgende dag\n    toDateTime(max(p.max_date + 1)) AS max_time,\n    -- Wanneer de partition geoptimaliseerd moet worden\n    max_time + age AS rollup_time,\n    -- Wanneer het oudste stuk in de partition is bijgewerkt\n    min(p.modification_time) AS modified_at\nFROM system.parts AS p\nINNER JOIN\n(\n    -- Alle regels voor alle tabellen *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    -- Alleen actieve stukken\n    p.active\n    -- (*) En alleen rijen waar aggregatieregels al van toepassing moeten zijn\n    AND ((toDateTime(p.max_date + 1) + g.age) &lt; now())\nGROUP BY\n    table,\n    partition\nHAVING\n    -- Alleen partitions die jonger zijn dan het optimalisatiepunt\n    (modified_at  1)\nORDER BY\n    table ASC,\n    partition ASC,\n    age ASC<\/code><\/pre>\n<p><\/p>\n<p>geeft elk van de partitions van de tabellen *GraphiteMergeTree terug, waarvan het samenvoegen zou moeten leiden tot het vrijmaken van schijfruimte. Alleen de laatste stap blijft: ze allemaal doorlopen met de query <code>OPTIMIZE ... FINAL<\/code>. In de uiteindelijke implementatie is er ook rekening mee gehouden dat partitions met actieve schrijftoegang niet aangeraakt hoeven te worden.<\/p>\n<p><\/p>\n<p>Dit is precies wat het project doet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">graphite-ch-optimizer<\/a><\/noindex>. Voormalige collega's van Yandex.Market hebben het in productie getest, het resultaat is hieronder zichtbaar. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: hoe je de schijfruimte aanzienlijk kunt verkleinen\" src=\"\/wp-content\/uploads\/2019\/12\/858dcbf538135d8d57964a71b2b6ca23.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Als je het programma op een server met ClickHouse uitvoert, begint het gewoon te draaien in daemon-modus. Elke hour wordt er een query uitgevoerd om te controleren of er nieuwe partitions zijn ouder dan drie dagen die geoptimaliseerd kunnen worden.<\/p>\n<p><\/p>\n<p>In de nabije toekomst is het plan om in ieder geval deb-pakketten te verstrekken, en waar mogelijk ook rpm.<\/p>\n<p><\/p>\n<h3 id=\"vmesto-zaklyucheniya\">Ter afsluiting<\/h3>\n<p><\/p>\n<p>In de afgelopen 9 maanden heb ik binnen mijn bedrijf <noindex><a rel=\"nofollow\" href=\"https:\/\/www.innogames.com\/ru\/\">InnoGames<\/a><\/noindex> veel tijd doorgebracht aan de kruising van ClickHouse en graphite-web. Het was een goede ervaring, het resultaat hiervan was de mogelijke snelle overgang van whisper naar ClickHouse als opslag voor metrics. Ik hoop dat dit artikel een soort begin is van een serie over welke verbeteringen we hebben aangebracht in verschillende onderdelen van deze stack, en wat in de toekomst zal worden gedaan.<\/p>\n<p><\/p>\n<p>Voor de ontwikkeling van de aanvraag zijn er verschillende liters bier en admin-dagen besteed samen met <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/v0devil\/\" class=\"user_link\">v0devil<\/a><\/noindex>, waarvoor ik mijn dank wil uitspreken. Ook voor het beoordelen van dit artikel.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">Projectpagina op github<\/a><\/noindex><\/p>\n<p>Bron: <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\/nl\/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=\"nl_NL\" \/>\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\/nl\/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: hoe je de gebruikte schijfruimte aanzienlijk kunt verminderen | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/53944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=53944"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/53944\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=53944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=53944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=53944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}