{"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\/da\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","title":{"rendered":"ClickHouse + Graphite: hvordan man betydeligt reducerer det anvendte lagerplads p\u00e5 diskene","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: hvordan man betydeligt reducerer det anvendte lagerplads p\u00e5 diskene\" src=\"\/wp-content\/uploads\/2019\/12\/5a2d19e6fea2a28d8d4aa9220653aefc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hej, habr.<\/p>\n<p><\/p>\n<p>Hvis nogen udnytter systemet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/graphite-web\">graphite-web<\/a><\/noindex> og har oplevet problemer med lagerets ydeevne <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/whisper\">whisper<\/a><\/noindex> (IO, diskpladsen der forbruges), s\u00e5 burde chancen for, at ClickHouse er blevet overvejet som en erstatning, n\u00e6rme sig 1. Denne p\u00e5stand antager, at en tredjepartsimplementering allerede bruges som metric daemon, f.eks. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grobian\/carbonwriter\">carbonwriter<\/a><\/noindex> eller <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/go-graphite\/go-carbon\">go-carbon<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>ClickHouse l\u00f8ser de beskrevne problemer effektivt. For eksempel, efter at have flyttet 2TiB data fra whisper, kunne de rumme sig i 300GiB. Jeg vil ikke g\u00e5 i dybden med sammenligningen, da der er nok artikler om dette. Desuden har vores ClickHouse lager ikke v\u00e6ret helt perfekt indtil for nylig.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"problemy-s-potreblyaemym-mestom\">Problemer med det brugte rum<\/h3>\n<p><\/p>\n<p>Ved f\u00f8rste \u00f8jekast skulle alt fungere godt. I henhold til <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/table_engines\/graphitemergetree\/#primer-konfiguratsii\">dokumentationen<\/a><\/noindex>, opretter vi en konfiguration for metrics lagringsplanen (herefter <code>retention<\/code>), derefter opretter vi en tabel i henhold til anbefalingen fra den valgte backend til 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> eller <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ClickHouse\/graphouse\">graphouse<\/a><\/noindex>, afh\u00e6ngigt af hvilken stak der anvendes. Og... en tidsindstillet bombe aktiveres.<\/p>\n<p><\/p>\n<p>For at forst\u00e5 hvilken, er det n\u00f8dvendigt at vide, hvordan inds\u00e6ttelser fungerer og den videre livscyklus af data i tabelmotorfamilien *<em>MergeTree<\/em> ClickHouse (diagrammerne er taget fra <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/PLMSA_gDdyM\">pr\u00e6sentationen<\/a><\/noindex> Aleksey Zatelepins):<\/p>\n<p><\/p>\n<ul>\n<li>Et <code>data<\/code> blok inds\u00e6ttes. I vores tilf\u00e6lde er det metrics, der er ankommet.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hvordan man betydeligt reducerer det anvendte lagerplads p\u00e5 diskene\" src=\"\/wp-content\/uploads\/2019\/12\/b60d482acca3c8d187d394f58a2d8a16.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Hver s\u00e5dan blok sorteres f\u00f8r skrivning til disk i henhold til den n\u00f8gle <code>ORDER BY<\/code>, der er angivet ved oprettelsen af tabellen.<\/li>\n<li>Efter sorteringen, <code>et stykke<\/code> (<code>part<\/code>) data skrives til disken.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hvordan man betydeligt reducerer det anvendte lagerplads p\u00e5 diskene\" src=\"\/wp-content\/uploads\/2019\/12\/a54903b8efa0866d24da303fa7a68134.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Serveren overv\u00e5ger i baggrunden for at sikre, at der ikke er for mange s\u00e5danne stykker, og starter baggrunds- <code>sammensmeltninger<\/code> (<code>sammenslutte<\/code>, derefter merges).<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hvordan man betydeligt reducerer det anvendte lagerplads p\u00e5 diskene\" src=\"\/wp-content\/uploads\/2019\/12\/151c18c7b73ebc4097493b13a2e26765.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hvordan man betydeligt reducerer det anvendte lagerplads p\u00e5 diskene\" src=\"\/wp-content\/uploads\/2019\/12\/1921908554981eca0847541f77a15790.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Serveren stopper med at starte merges automatisk, s\u00e5 snart dataene stopper med aktivt at blive indsendt til <code>partitionen<\/code> (<code>partition<\/code>), men det er muligt at starte processen manuelt med kommandoen <code>OPTIMIZE<\/code>.<\/li>\n<li>Hvis der kun er \u00e9t stykke tilbage i partitionen, kan man ikke starte en merge med den almindelige kommando, man skal bruge <code>OPTIMIZE ... FINAL<\/code><\/li>\n<\/ul>\n<p><\/p>\n<p>S\u00e5, de f\u00f8rste metrics ankommer. Og de optager et vist rum. De efterf\u00f8lgende h\u00e6ndelser kan variere afh\u00e6ngigt af mange faktorer:<\/p>\n<p><\/p>\n<ul>\n<li>Partitioneringsn\u00f8glen kan v\u00e6re meget lille (en dag) eller meget stor (flere m\u00e5neder).<\/li>\n<li>Retention-konfigurationen kan indeholde flere betydelige t\u00e6rskler for dataggregering inde i den aktive partition (hvor metrics skrives), eller det kan v\u00e6re tilf\u00e6ldet, at den ikke g\u00f8r.<\/li>\n<li>Hvis der er meget data, s\u00e5 vil de tidligste stykker, der p\u00e5 grund af baggrundsmerge allerede kan v\u00e6re enorme (ved valg af en suboptimal partitioneringsn\u00f8gle), ikke blive merged med de friske, sm\u00e5 stykker.<\/li>\n<\/ul>\n<p><\/p>\n<p>Og det ender altid p\u00e5 samme m\u00e5de. Pladsen, som metrics optager i ClickHouse, vokser kun, hvis:<\/p>\n<p><\/p>\n<ul>\n<li>man ikke anvender <code>OPTIMIZE ... FINAL<\/code> manuelt eller<\/li>\n<li>ikke inds\u00e6tter data i alle partitioner kontinuerligt for at f\u00f8r eller senere starte en baggrundsmerge<\/li>\n<\/ul>\n<p><\/p>\n<p>Den anden metode virker til at v\u00e6re den mest enkle at implementere, s\u00e5 den er forkert og blev afpr\u00f8vet f\u00f8rst.<br \/>\nJeg skrev et ret simpelt script p\u00e5 python, som sendte fiktive metrics for hver dag over de seneste 4 \u00e5r og k\u00f8rte hver time med cron.<br \/>\nDa hele arbejdet i ClickHouse DBMS er opbygget p\u00e5 den antagelse, at systemet f\u00f8r eller senere vil udf\u00f8re al det baggrundsarbejde, men hvorn\u00e5r der ikke er klart, kunne jeg ikke vente p\u00e5, at de gamle enorme stykker ville begynde at merge med de nye sm\u00e5. Det blev klart, at jeg m\u00e5tte finde en m\u00e5de at automatisere tvungne optimeringer p\u00e5.<\/p>\n<p>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite: hvordan man betydeligt reducerer det anvendte lagerplads p\u00e5 diskene\" src=\"\/wp-content\/uploads\/2019\/12\/60b0354cb65dcba6e8402b67261041ff.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3 id=\"informaciya-v-sistemnyh-tablicah-clickhouse\">Informationen i ClickHouse-systemtabellerne<\/h3>\n<p><\/p>\n<p>Lad os se p\u00e5 strukturen af tabellen <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system_tables-parts\">system.parts<\/a><\/noindex>. Det er udt\u00f8mmende information om hvert stykke af alle tabeller p\u00e5 ClickHouse-serveren. Det indeholder blandt andet f\u00f8lgende kolonner:<\/p>\n<p><\/p>\n<ul>\n<li>database navn (<code>database<\/code>);<\/li>\n<li>tabelnavn (<code>table<\/code>);<\/li>\n<li>partition navn og ID (<code>partition<\/code> &amp; <code>partition_id<\/code>);<\/li>\n<li>hvorn\u00e5r stykket blev oprettet (<code>modification_time<\/code>);<\/li>\n<li>minimum og maksimum dato i stykket (partitioneringen sker dagligt) (<code>min_date<\/code> &amp; <code>max_date<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Der er ogs\u00e5 en tabel <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system-graphite-retentions\">system.graphite_retentions<\/a><\/noindex>, med f\u00f8lgende interessante felter:<\/p>\n<p><\/p>\n<ul>\n<li>database navn (<code>Tables.database<\/code>);<\/li>\n<li>tabelnavn (<code>Tables.table<\/code>);<\/li>\n<li>metrics' alder, n\u00e5r den n\u00e6ste aggregering skal anvendes (<code>age<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>S\u00e5:<\/p>\n<p><\/p>\n<ol>\n<li>Vi har en tabel med stykker og en tabel med aggregeringsregler.<\/li>\n<li>Vi samler deres snit og f\u00e5r alle tabellerne *GraphiteMergeTree.<\/li>\n<li>Vi s\u00f8ger efter alle partitioner, hvor:\n<ul>\n<li>mere end \u00e9t stykke<\/li>\n<li>eller det er tid til at anvende den n\u00e6ste aggregeringsregel, og <code>modification_time<\/code> \u00e6ldre end dette tidspunkt.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"realizaciya\">Implementering<\/h3>\n<p>\n<b class=\"spoiler_title\">Denne foresp\u00f8rgsel<\/b><\/p>\n<pre><code class=\"sql\">V\u00c6LG\n    concat(p.database, '.', p.table) AS tabel,\n    p.partition_id AS partition_id,\n    p.partition AS partition,\n    -- Den \"\u00e6ldste\" regel, der kan anvendes for\n    -- partitionen, men ikke i fremtiden, se (*)\n    max(g.age) AS alder,\n    -- Antal stykker i partitionen\n    countDistinct(p.name) AS dele,\n    -- Den \u00e6ldste metric i partitionen tages som 00:00:00 n\u00e6ste dag\n    toDateTime(max(p.max_date + 1)) AS max_tid,\n    -- Hvorn\u00e5r partitionen skal optimeres\n    max_tid + alder AS rollup_tid,\n    -- Hvorn\u00e5r det \u00e6ldste stykke i partitionen blev opdateret\n    min(p.modification_time) AS modificeret_dato\nFRA system.parts AS p\nINNER JOIN\n(\n    -- Alle regler for alle tabeller *GraphiteMergeTree\n    V\u00c6LG\n        Tables.database AS database,\n        Tables.table AS tabel,\n        alder\n    FRA system.graphite_retentions\n    ARRAY JOIN Tables\n    GRUPPER EFTER\n        database,\n        tabel,\n        alder\n) AS g ON\n    (p.table = g.table)\n    OG (p.database = g.database)\nHVOR\n    -- Kun aktive stykker\n    p.active\n    -- (*) Og kun r\u00e6kker, hvor aggregeringsreglerne allerede skal anvendes\n    OG ((toDateTime(p.max_date + 1) + g.age) &lt; now())\nGRUPPER EFTER\n    tabel,\n    partition\nHAVENDE\n    -- Kun partitioner, der er yngre end optimerings\u00f8jeblikket\n    (modificeret_dato  1)\nORDNE EFTER\n    tabel ASC,\n    partition ASC,\n    alder ASC<\/code><\/pre>\n<p><\/p>\n<p>returnerer hver af partitionerne i tabellerne *GraphiteMergeTree, hvis sammensmeltning skal f\u00f8re til frigivelse af diskplads. Nu er det kun et sp\u00f8rgsm\u00e5l om at k\u00f8re en foresp\u00f8rgsel for dem alle. <code>OPTIMIZE ... FINAL<\/code>. I den endelige implementering er det ogs\u00e5 taget h\u00f8jde for, at det ikke er n\u00f8dvendigt at ber\u00f8re partitioner med aktiv skrivning.<\/p>\n<p><\/p>\n<p>Det er netop dette, der g\u00f8r projektet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">graphite-ch-optimizer<\/a><\/noindex>. Tidligere kolleger fra Yandex.Market har testet det i produktion, og resultatet kan ses nedenfor. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse + Graphite: hvordan man betydeligt reducerer det anvendte lagerplads p\u00e5 diskene\" src=\"\/wp-content\/uploads\/2019\/12\/858dcbf538135d8d57964a71b2b6ca23.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvis du k\u00f8rer programmet p\u00e5 en server med ClickHouse, vil det blot begynde at fungere i d\u00e6montilstand. Hver time vil en foresp\u00f8rgsel blive udf\u00f8rt for at kontrollere, om der er opst\u00e5et nye partitioner, der er \u00e6ldre end tre dage, som kan optimeres.<\/p>\n<p><\/p>\n<p>I de n\u00e6rmeste planer er der at levere, i det mindste, deb-pakker, og hvis det er muligt, ogs\u00e5 rpm.<\/p>\n<p><\/p>\n<h3 id=\"vmesto-zaklyucheniya\">Afslutning<\/h3>\n<p><\/p>\n<p>I de sidste 9 m\u00e5neder har jeg inden for min virksomhed <noindex><a rel=\"nofollow\" href=\"https:\/\/www.innogames.com\/ru\/\">InnoGames<\/a><\/noindex> brugt meget tid p\u00e5 at arbejde med ClickHouse og graphite-web. Det har v\u00e6ret en god oplevelse, hvis resultat nu g\u00f8r det muligt at overg\u00e5 fra whisper til ClickHouse som datalager for metrics. Jeg h\u00e5ber, at denne artikel er noget, der ligner begyndelsen p\u00e5 en serie om de forbedringer, vi har foretaget i forskellige dele af denne stak, og hvad der vil blive gjort i fremtiden.<\/p>\n<p><\/p>\n<p>Der udvikling af foresp\u00f8rgslen kostede flere liter \u00f8l og admin-dage i f\u00e6llesskab med <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/v0devil\/\" class=\"user_link\">v0devil<\/a><\/noindex>, som jeg gerne vil udtrykke min taknemmelighed over for. Og ogs\u00e5 for gennemgang af denne artikel.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">Projektets side p\u00e5 github<\/a><\/noindex><\/p>\n<p>Kilde: <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\/da\/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=\"da_DK\" \/>\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\/da\/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: hvordan man v\u00e6sentligt kan reducere det pladsforbrug, der kr\u00e6ves p\u00e5 diskene | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/53944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=53944"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/53944\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=53944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=53944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=53944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}