ClickHouse(15)ClickHouse合併樹MergeTree家族表引擎之GraphiteMergeTree詳細解析

来源:https://www.cnblogs.com/the-pig-of-zf/archive/2023/09/21/17720745.html
-Advertisement-
Play Games

GraphiteMergeTree該引擎用來對Graphite數據(圖數據)進行瘦身及彙總。對於想使用ClickHouse來存儲Graphite數據的開發者來說可能有用。 如果不需要對Graphite數據做彙總,那麼可以使用任意的ClickHouse表引擎;但若需要,那就採用GraphiteMerg ...


GraphiteMergeTree該引擎用來對Graphite數據(圖數據)進行瘦身及彙總。對於想使用ClickHouse來存儲Graphite數據的開發者來說可能有用。

如果不需要對Graphite數據做彙總,那麼可以使用任意的ClickHouse表引擎;但若需要,那就採用GraphiteMergeTree引擎。它能減少存儲空間,同時能提高Graphite數據的查詢效率。

該引擎繼承自MergeTree.

創建表

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    Path String,
    Time DateTime,
    Value <Numeric_type>,
    Version <Numeric_type>
    ...
) ENGINE = GraphiteMergeTree(config_section)
[PARTITION BY expr]
[ORDER BY expr]
[SAMPLE BY expr]
[SETTINGS name=value, ...]

含有Graphite數據集的表應該包含以下的數據列:

  • 指標名稱(Graphite sensor),數據類型:String
  • 指標的時間度量,數據類型:DateTime
  • 指標的值,數據類型:任意數值類型
  • 指標的版本號,數據類型:任意數值類型

ClickHouse以最大的版本號保存行記錄,若版本號相同,保留最後寫入的數據。

以上列必須設置在彙總參數配置中。

GraphiteMergeTree參數

  • config_section - 配置文件中標識彙總規則的節點名稱

建表語句

在創建GraphiteMergeTree表時,需要採用和clauses相同的語句,就像創建MergeTree一樣。

彙總配置的參數

彙總的配置參數由伺服器配置的graphite_rollup參數定義。參數名稱可以是任意的。允許為多個不同表創建多組配置並使用。

彙總配置的結構如下: 所需的列模式Patterns

所需的列

  • path_column_name — 保存指標名稱的列名 (Graphite sensor). 預設值: Path.
  • time_column_name — 保存指標時間度量的列名. Default value: Time.
  • value_column_name — The name of the column storing the value of the metric at the time set * in time_column_name.預設值: Value.
  • version_column_name - 保存指標的版本號列. 預設值: Timestamp.

模式Patterns

patterns 的結構:

pattern
    regexp
    function
pattern
    regexp
    age + precision
    ...
pattern
    regexp
    function
    age + precision
    ...
pattern
    ...
default
    function
    age + precision
    ...

!!! 註意 "Attention" 模式必須嚴格按順序配置:

  1. 不含'function' or 'retention'的Patterns
  2. 同時含有'function' and 'retention'的Patterns
  3. 'default'的Patterns.

ClickHouse在處理行記錄時,會檢查pattern節點的規則。每個pattern(含default)節點可以包含function用於聚合操作,或retention參數,或者兩者都有。如果指標名稱和regexp相匹配,相應pattern的規則會生效;否則,使用default節點的規則。

pattern和default節點的欄位設置:

  • regexp– 指標名的pattern.
  • age – 數據的最小存活時間(按秒算).
  • precision– 按秒來衡量數據存活時間時的精確程度. 必須能被86400整除 (一天的秒數).
  • function – 對於存活時間在 [age, age + precision]之內的數據,需要使用的聚合函數

配置示例

<graphite_rollup>
    <version_column_name>Version</version_column_name>
    <pattern>
        <regexp>click_cost</regexp>
        <function>any</function>
        <retention>
            <age>0</age>
            <precision>5</precision>
        </retention>
        <retention>
            <age>86400</age>
            <precision>60</precision>
        </retention>
    </pattern>
    <default>
        <function>max</function>
        <retention>
            <age>0</age>
            <precision>60</precision>
        </retention>
        <retention>
            <age>3600</age>
            <precision>300</precision>
        </retention>
        <retention>
            <age>86400</age>
            <precision>3600</precision>
        </retention>
    </default>
</graphite_rollup>

資料分享

ClickHouse經典中文文檔分享

參考文章

本文來自博客園,作者:張飛的豬,轉載請註明原文鏈接:https://www.cnblogs.com/the-pig-of-zf/p/17720745.html

公眾號:張飛的豬大數據分享,不定期分享大數據學習的總結和相關資料,歡迎關註。

個人網站"張飛的豬編程工作室"鏈接: https://zhangfeidezhu.com


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在.Net Framework時代,我們生成驗證碼大多都是用System.Drawing。 在.Net 6中使用也是沒有問題的。 但是,System.Drawing卻依賴於Windows GDI+。 為了實現跨平臺,我陷入了沉思!! 微軟推薦使用SkiaSharp 進行替代,所以就開始了,踩坑之旅 ...
  • 上篇文章講述了C#集合知識點,本文將介紹C#異常處理知識點。異常處理是.NET開發中至關重要的一部分,它允許開發者在程式出現錯誤或不正常情況時採取適當的措施,從而提高應用程式的穩定性和可靠性。本文將介紹C#異常處理知識點,異常的基本概念略過,請查看官網。 1、自定義異常 開發者可以創建自定義異常類, ...
  • 在學習C#中的記錄類型時,對出現的Equals和ReferenceEquals得到的不同結果表示不理解,隨即進行相關資料查找。 值類型 == : 比較兩者的“內容”是否相同,即“值”是否一樣Equals:比較兩者的“內容”是否相同,即“值”是否一樣ReferenceEquals:返回false,因為 ...
  • shell批量執行命令與文件傳輸腳本 需求: 對未進行主機信任操作的伺服器進行批量操作 實現: 由於ssh只能在交互模式中輸入伺服器密碼進行登錄登操作,不便於進行大批量伺服器進行巡檢或日誌採集。sshpass恰好又解決了這個問題,使用ssh -p passwd可以實現命令行輸入密碼操作,便於進行規模 ...
  • 一、目錄介紹 /:表示的是根的意思 /bin:(binary)存放的是一些二進位文件,但是在Linux中二進位文件是可以被執行的。這個目錄中的命令文件是給普通用戶使用(非超級管理員用戶)。 /etc:Linux下所有的配置文件都會存放到etc目錄。 /home:是所有非root用戶家目錄的一個集合。 ...
  • 測試伺服器CPU單核及多核SuperPI圓周率測試real和user值,SuperPI是利用CPU的浮點運算能力來計算出π(圓周率),測試系統穩定性和測試CPU計算完後特定位數圓周率所需的時間;及Unixbench單核及多核測試Index得分,測試方法如下: 類型 預期結果 測試步驟 SuperPI ...
  • 可擴展性對於物聯網管理系統的設計和開發非常重要,它直接影響著系統的性能、可靠性和能耗等方面,是評估一個系統優劣的重要因素之一。可擴展性對物聯網管理系統的影響主要體現在以下幾個方面: ...
  • 1. 為什麼需要加鎖 在日常生活中,如果你心情不好想靜靜,不想被比別人打擾,你就可以把自己關進房間里,並且反鎖。這就是生活中的加鎖。 同理,對於MySQL資料庫來說的話,一般的對象都是一個事務一個事務來說的。所以,如果一個事務內,一個SQL正在更新某條記錄,我們肯定不想它被別的事務影響到嘛?因此,數 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...