{"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\/fr\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","title":{"rendered":"ClickHouse + Graphite : comment r\u00e9duire consid\u00e9rablement l'espace disque utilis\u00e9.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ClickHouse + Graphite : comment r\u00e9duire consid\u00e9rablement l&#039;espace disque utilis\u00e9.\" src=\"\/wp-content\/uploads\/2019\/12\/5a2d19e6fea2a28d8d4aa9220653aefc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Bonjour, habr.<\/p>\n<p><\/p>\n<p>Si quelqu'un exploite le syst\u00e8me <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/graphite-web\">graphite-web<\/a><\/noindex> et rencontre un probl\u00e8me de performance de stockage <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/whisper\">whisper<\/a><\/noindex> (IO, espace disque consomm\u00e9), alors la probabilit\u00e9 que ClickHouse ait \u00e9t\u00e9 envisag\u00e9 comme remplacement doit tendre vers un. Cette affirmation implique que, comme m\u00e9triques, un d\u00e9mon tiers est d\u00e9j\u00e0 utilis\u00e9, par exemple <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grobian\/carbonwriter\">carbonwriter<\/a><\/noindex> ou <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/go-graphite\/go-carbon\">go-carbon<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>ClickHouse r\u00e9sout bien les probl\u00e8mes d\u00e9crits. Par exemple, apr\u00e8s avoir transf\u00e9r\u00e9 2TiB de donn\u00e9es de whisper, elles ont \u00e9t\u00e9 compress\u00e9es dans 300GiB. Je ne vais pas m\u2019arr\u00eater en d\u00e9tail sur la comparaison, il y a suffisamment d'articles \u00e0 ce sujet. De plus, jusqu'\u00e0 r\u00e9cemment, notre stockage ClickHouse n'\u00e9tait pas parfait.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"problemy-s-potreblyaemym-mestom\">Probl\u00e8mes de consommation d'espace<\/h3>\n<p><\/p>\n<p>\u00c0 premi\u00e8re vue, tout devrait fonctionner correctement. En suivant <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/table_engines\/graphitemergetree\/#primer-konfiguratsii\">documentation<\/a><\/noindex>, cr\u00e9ons un config pour le sch\u00e9ma de stockage des m\u00e9triques (ci-apr\u00e8s <code>retention<\/code>), puis cr\u00e9ons une table selon les recommandations du backend choisi pour 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> ou <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ClickHouse\/graphouse\">graphouse<\/a><\/noindex>, selon la pile utilis\u00e9e. Et... une bombe \u00e0 retardement est activ\u00e9e.<\/p>\n<p><\/p>\n<p>Pour comprendre laquelle, il faut savoir comment fonctionnent les insertions et le parcours de vie des donn\u00e9es dans les tables des moteurs de la famille *<em>MergeTree<\/em> ClickHouse (les diagrammes proviennent de <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/PLMSA_gDdyM\">pr\u00e9sentation<\/a><\/noindex> Alexei Zatelepin) :<\/p>\n<p><\/p>\n<ul>\n<li>Un <code>bloc<\/code> de donn\u00e9es est ins\u00e9r\u00e9. Dans notre cas, ce sont les m\u00e9triques qui sont arriv\u00e9es.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite : comment r\u00e9duire consid\u00e9rablement l&#039;espace disque utilis\u00e9.\" src=\"\/wp-content\/uploads\/2019\/12\/b60d482acca3c8d187d394f58a2d8a16.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Chaque bloc est tri\u00e9 avant l'\u00e9criture sur disque selon la cl\u00e9 <code>ORDER BY<\/code>, sp\u00e9cifi\u00e9e lors de la cr\u00e9ation de la table.<\/li>\n<li>Apr\u00e8s le tri, <code>un morceau<\/code> (<code>part<\/code>) de donn\u00e9es est \u00e9crit sur le disque.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite : comment r\u00e9duire consid\u00e9rablement l&#039;espace disque utilis\u00e9.\" src=\"\/wp-content\/uploads\/2019\/12\/a54903b8efa0866d24da303fa7a68134.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Le serveur surveille en arri\u00e8re-plan pour que ces morceaux ne soient pas trop nombreux et lance des <code>fusions<\/code> (<code>fusionner<\/code>, ensuite les merges).<br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite : comment r\u00e9duire consid\u00e9rablement l&#039;espace disque utilis\u00e9.\" src=\"\/wp-content\/uploads\/2019\/12\/151c18c7b73ebc4097493b13a2e26765.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite : comment r\u00e9duire consid\u00e9rablement l&#039;espace disque utilis\u00e9.\" src=\"\/wp-content\/uploads\/2019\/12\/1921908554981eca0847541f77a15790.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Le serveur arr\u00eate de lancer des merges automatiquement d\u00e8s que les donn\u00e9es cessent d'affluer activement dans <code>la partition<\/code> (<code>partition<\/code>), mais il est possible de lancer le processus manuellement avec la commande <code>OPTIMIZE<\/code>.<\/li>\n<li>Si une seule pi\u00e8ce reste dans la partition, il ne sera pas possible de lancer un merge avec une commande classique, il faut utiliser <code>OPTIMIZE ... FINAL<\/code><\/li>\n<\/ul>\n<p><\/p>\n<p>Ainsi, les premi\u00e8res m\u00e9triques arrivent. Et elles occupent un certain espace. Les \u00e9v\u00e9nements suivants peuvent varier en fonction de nombreux facteurs :<\/p>\n<p><\/p>\n<ul>\n<li>La cl\u00e9 de partitionnement peut \u00eatre tr\u00e8s petite (un jour) ou tr\u00e8s grande (plusieurs mois).<\/li>\n<li>La configuration de retention peut contenir plusieurs seuils significatifs d'agr\u00e9gation des donn\u00e9es dans la partition active (o\u00f9 les m\u00e9triques sont \u00e9crites), ou pas.<\/li>\n<li>Si les donn\u00e9es sont tr\u00e8s nombreuses, les premiers morceaux, qui peuvent d\u00e9j\u00e0 \u00eatre \u00e9normes en raison des fusions en arri\u00e8re-plan (lorsque l\u2019on choisit une cl\u00e9 de partitionnement non optimale), ne seront pas fusionn\u00e9s eux-m\u00eames avec les nouveaux petits morceaux.<\/li>\n<\/ul>\n<p><\/p>\n<p>Et tout se termine toujours de la m\u00eame mani\u00e8re. L\u2019espace occup\u00e9 par les m\u00e9triques dans ClickHouse ne fait qu\u2019augmenter si :<\/p>\n<p><\/p>\n<ul>\n<li>vous ne l\u2019appliquez pas <code>OPTIMIZE ... FINAL<\/code> manuellement ou<\/li>\n<li>vous n\u2019ins\u00e9rez pas de donn\u00e9es dans toutes les partitions de mani\u00e8re continue, afin de lancer t\u00f4t ou tard une fusion en arri\u00e8re-plan<\/li>\n<\/ul>\n<p><\/p>\n<p>La deuxi\u00e8me m\u00e9thode semble \u00eatre la plus simple \u00e0 mettre en \u0153uvre et, par cons\u00e9quent, elle est incorrecte et a \u00e9t\u00e9 test\u00e9e en premier.<br \/>\nJ'ai \u00e9crit un script assez simple en python, qui envoyait des m\u00e9triques fictives pour chaque jour des 4 derni\u00e8res ann\u00e9es et s'ex\u00e9cutait chaque heure par cron.<br \/>\nComme tout le travail du syst\u00e8me de gestion de base de donn\u00e9es ClickHouse repose sur le fait que ce syst\u00e8me fera t\u00f4t ou tard tout le travail en arri\u00e8re-plan, mais on ne sait pas quand, attendre le moment o\u00f9 les vieux \u00e9normes morceaux daigneront commencer \u00e0 fusionner avec les nouveaux petits n\u2019a pas r\u00e9ussi. Il est devenu clair qu'il fallait chercher un moyen d'automatiser les optimisations forc\u00e9es.<\/p>\n<p>\n<img decoding=\"async\" alt=\"ClickHouse + Graphite : comment r\u00e9duire consid\u00e9rablement l&#039;espace disque utilis\u00e9.\" src=\"\/wp-content\/uploads\/2019\/12\/60b0354cb65dcba6e8402b67261041ff.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3 id=\"informaciya-v-sistemnyh-tablicah-clickhouse\">Les informations dans les tables syst\u00e8me ClickHouse<\/h3>\n<p><\/p>\n<p>Examinons la structure de la table <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system_tables-parts\">system.parts<\/a><\/noindex>. Cela fournit des informations compl\u00e8tes sur chaque morceau de toutes les tables sur le serveur ClickHouse. Elle contient, entre autres, les colonnes suivantes :<\/p>\n<p><\/p>\n<ul>\n<li>nom de la base de donn\u00e9es (<code>database<\/code>);<\/li>\n<li>nom de la table (<code>table<\/code>);<\/li>\n<li>nom et ID de la partition (<code>partition<\/code> &amp; <code>partition_id<\/code>);<\/li>\n<li>quand le morceau a \u00e9t\u00e9 cr\u00e9\u00e9 (<code>modification_time<\/code>);<\/li>\n<li>date minimale et maximale dans le morceau (le partitionnement se fait par jour) (<code>min_date<\/code> &amp; <code>max_date<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Il y a aussi une table <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/docs\/ru\/operations\/system_tables\/#system-graphite-retentions\">system.graphite_retentions<\/a><\/noindex>, avec les champs int\u00e9ressants suivants :<\/p>\n<p><\/p>\n<ul>\n<li>nom de la base de donn\u00e9es (<code>Tables.database<\/code>);<\/li>\n<li>nom de la table (<code>Tables.table<\/code>);<\/li>\n<li>l'\u00e2ge de la m\u00e9trique, quand la prochaine agr\u00e9gation doit \u00eatre appliqu\u00e9e (<code>age<\/code>);<\/li>\n<\/ul>\n<p><\/p>\n<p>Donc :<\/p>\n<p><\/p>\n<ol>\n<li>Nous avons une table de morceaux et une table de r\u00e8gles d'agr\u00e9gation.<\/li>\n<li>Nous unissons leurs intersections et obtenons toutes les tables *GraphiteMergeTree.<\/li>\n<li>Nous recherchons toutes les partitions o\u00f9 :\n<ul>\n<li>il y a plus d'un morceau<\/li>\n<li>ou le moment est venu d'appliquer la prochaine r\u00e8gle d'agr\u00e9gation, et <code>modification_time<\/code> elles sont plus anciennes que ce moment.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"realizaciya\">Mise en \u0153uvre<\/h3>\n<p>\n<b class=\"spoiler_title\">Cette requ\u00eate<\/b><\/p>\n<pre><code class=\"sql\">S\u00c9LECTIONNER\n    concat(p.database, '.', p.table) AS table,\n    p.partition_id AS partition_id,\n    p.partition AS partition,\n    -- La r\u00e8gle \"la plus ancienne\" pouvant \u00eatre appliqu\u00e9e \u00e0\n    -- la partition, mais pas dans le futur, voir (*)\n    max(g.age) AS age,\n    -- Nombre de morceaux dans la partition\n    countDistinct(p.name) AS parts,\n    -- La m\u00e9trique la plus ancienne dans la partition est consid\u00e9r\u00e9e comme 00:00:00 le lendemain\n    toDateTime(max(p.max_date + 1)) AS max_time,\n    -- Quand la partition doit \u00eatre optimis\u00e9e\n    max_time + age AS rollup_time,\n    -- Quand le morceau le plus ancien dans la partition a \u00e9t\u00e9 mis \u00e0 jour\n    min(p.modification_time) AS modified_at\nDE system.parts AS p\nJOINTURE INTERNE\n(\n    -- Toutes les r\u00e8gles pour toutes les tables *GraphiteMergeTree\n    S\u00c9LECTIONNER\n        Tables.database AS database,\n        Tables.table AS table,\n        age\n    DE system.graphite_retentions\n    ARRAY JOIN Tables\n    GROUPE PAR\n        database,\n        table,\n        age\n) AS g ON\n    (p.table = g.table)\n    ET (p.database = g.database)\nO\u00d9\n    -- Seulement les morceaux actifs\n    p.active\n    -- (*) Et seulement les lignes o\u00f9 les r\u00e8gles d'agr\u00e9gation doivent d\u00e9j\u00e0 \u00eatre appliqu\u00e9es\n    ET ((toDateTime(p.max_date + 1) + g.age) &lt; maintenant())\nGROUPE PAR\n    table,\n    partition\nAYANT\n    -- Seulement les partitions plus jeunes que le moment d&#039;optimisation\n    (modified_at  1)\nORDONNER PAR\n    table ASC,\n    partition ASC,\n    age ASC<\/code><\/pre>\n<p><\/p>\n<p>renvoie chacune des partitions des tables *GraphiteMergeTree, dont la fusion doit lib\u00e9rer de l'espace disque. Il ne reste plus qu'\u00e0 traiter chacune d'elles avec la requ\u00eate <code>OPTIMIZE ... FINAL<\/code>. Dans la mise en \u0153uvre finale, il a \u00e9galement \u00e9t\u00e9 pris en compte que les partitions avec des \u00e9critures actives n'ont pas besoin d'\u00eatre touch\u00e9es.<\/p>\n<p><\/p>\n<p>C'est exactement ce que fait le projet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">graphite-ch-optimizer<\/a><\/noindex>. Anciens coll\u00e8gues de Yandex.Market l'ont test\u00e9 en production, le r\u00e9sultat peut \u00eatre vu ci-dessous. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse + Graphite : comment r\u00e9duire consid\u00e9rablement l&#039;espace disque utilis\u00e9.\" src=\"\/wp-content\/uploads\/2019\/12\/858dcbf538135d8d57964a71b2b6ca23.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si vous ex\u00e9cutez le programme sur un serveur avec ClickHouse, il commencera simplement \u00e0 fonctionner en mode d\u00e9mon. Une fois par heure, il ex\u00e9cutera une requ\u00eate pour v\u00e9rifier s'il y a de nouvelles partitions de plus de trois jours pouvant \u00eatre optimis\u00e9es.<\/p>\n<p><\/p>\n<p>Les projets \u00e0 venir incluent la fourniture, au moins, de paquets deb, et id\u00e9alement aussi de rpm.<\/p>\n<p><\/p>\n<h3 id=\"vmesto-zaklyucheniya\">En conclusion<\/h3>\n<p><\/p>\n<p>Au cours des neuf derniers mois, j'ai pass\u00e9 beaucoup de temps \u00e0 l'int\u00e9rieur de ma soci\u00e9t\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.innogames.com\/ru\/\">InnoGames<\/a><\/noindex> \u00e0 travailler \u00e0 l'intersection de ClickHouse et graphite-web. C'\u00e9tait une bonne exp\u00e9rience, dont le r\u00e9sultat a permis une transition imminente de whisper \u00e0 ClickHouse comme stockage de m\u00e9triques. J'esp\u00e8re que cet article sera comme le d\u00e9but d'une s\u00e9rie sur les am\u00e9liorations que nous avons apport\u00e9es \u00e0 diff\u00e9rentes parties de cette pile, et sur ce qui sera fait \u00e0 l'avenir.<\/p>\n<p><\/p>\n<p>Le d\u00e9veloppement de cette demande a n\u00e9cessit\u00e9 plusieurs litres de bi\u00e8re et des jours d'administration en collaboration avec <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/v0devil\/\" class=\"user_link\">v0devil<\/a><\/noindex>, pour lesquels je tiens \u00e0 exprimer ma gratitude. Ainsi que pour la r\u00e9vision de cet article.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/innogames\/graphite-ch-optimizer\">Page du projet sur github<\/a><\/noindex><\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/479564\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e, habr. \u0415\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u0443\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 graphite-web \u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 whisper (IO, \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u043e\u0435 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e), \u0442\u043e \u0448\u0430\u043d\u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b\u043b \u0431\u0440\u043e\u0448\u0435\u043d \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0430 ClickHouse \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043c\u0435\u043d\u044b, \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u044c\u0441\u044f \u043a \u0435\u0434\u0438\u043d\u0438\u0446\u0435. \u0414\u0430\u043d\u043d\u043e\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0433\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0434\u0435\u043c\u043e\u043d\u0430 \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 carbonwriter \u0438\u043b\u0438 go-carbon. ClickHouse \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0435\u0448\u0430\u0435\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-53944","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - 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\/fr\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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 : comment r\u00e9duire consid\u00e9rablement l'espace disque utilis\u00e9 | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/clickhouse-graphite-kak-znachitelno-umenshit-potreblyaemoe-mesto-na-diskah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/53944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=53944"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/53944\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=53944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=53944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=53944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}