日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

冷熱數據分層存儲

為了降低數據存儲成本、提高查詢性能和系統資源利用率。云數據庫ClickHouse提供了冷熱數據分層存儲的功能。您可以根據查詢頻率將數據存儲在不同類型的磁盤中。本文介紹如何開啟冷熱數據分層存儲功能和設置分層存儲策略。

前提條件

  • 云數據庫ClickHouse集群為社區兼容版且版本為20.8及以上版本。

  • 集群未開通數據備份功能。

說明
  • 對于不支持的低版本,可以先將數據遷移至20.8及以上版本的集群,再進行冷熱數據分層存儲。具體請參見云數據庫ClickHouse集群間的數據遷移

  • 云數據庫ClickHouse企業版基于緩存及共享存儲,自動進行冷熱分層。不依賴冷熱數據存儲規則。

背景知識

  • 熱數據:訪問頻次較高的數據,存儲在熱數據盤(即創建集群時所選的ESSD云盤或高效云盤)中,滿足高性能訪問的需求。

  • 冷數據:訪問頻次較低的數據,存儲在較低價的冷數據盤中,滿足高性價比的存儲需求。

    冷熱數據分層存儲提供了兩種存儲策略,具體如下:

    存儲策略

    詳情

    默認存儲策略

    將新寫入的數據存儲在熱數據盤中,提供高效查詢。當熱數據存儲量達到業務使用閾值時,自動將當前熱數據盤中占用空間最大的part數據文件移動到冷數據盤存儲,從而釋放熱數據盤存儲空間。

    TTL存儲策略

    在默認存儲策略基礎上,添加TTL語句,實現將間隔時間之前的所有數據自動轉移到冷數據盤中。

注意事項

  • 開通冷熱數據分層存儲功能,請在業務低峰期進行。開通該功能后集群會立即進行重啟,重啟期間只能查看集群信息,無法進行升配、擴容、縮容、修改參數配置等操作。

  • 使用冷熱數據分層存儲功能時,需要給表指定存儲策略。

    • 建表時,通過SETTINGS storage_policy = 'hot_to_cold'指定存儲策略。

    • 修改存量表的存儲策略。

      2024年1月1日之后開通冷熱存儲策略的集群

      執行以下語句進行策略修改。

      ALTER TABLE <table_name> MODIFY SETTING storage_policy = 'hot_to_cold';

      2024年1月1日之前開通冷熱存儲策略的集群

      通過管控運維操作,新增冷熱存儲策略,讓您能夠使用新策略將熱盤數據遷移到冷盤。

  • 冷熱數據分層存儲功能開通后,暫不支持關閉。

計費說明

  • 計費規則如下。

    存儲類型

    計費詳情

    熱數據存儲

    購買集群后已經擁有了熱數據存儲空間,與購買集群的存儲空間相同。

    冷數據存儲

    采用按量付費模式。無需提前購買固定的存儲空間,先使用,后付費,并按照實際使用的存儲空間每小時計費一次。

  • 冷數據存儲的詳細單價,請參見社區兼容版存儲空間費用。

  • 計費公式:冷存儲空間費用=冷數據存儲單價×冷數據存儲使用量×使用時長。

  • 示例:若冷數據存儲單價為0.0002元/GB/小時,19:00-20:00使用冷數據存儲2000 GB,則總費用為:0.0002元/GB/小時×2000 GB×1小時=0.4元。20:00-21:00釋放了500 GB冷數據存儲空間,實際使用了1500 GB存儲空間,那么20:00-21:00的總費用為:0.0002元/GB/小時×1500 GB×1小時=0.3元。

說明

本示例中的價格僅用于舉例,實際價格以控制臺為準。

開通冷熱分層存儲

  1. 登錄云數據庫ClickHouse控制臺

  2. 在頁面左上角,選擇集群所在的地域。

  3. 集群列表頁面,選擇社區版實例列表,單擊目標集群ID。

  4. 單擊左側導航欄的冷熱分層存儲。

  5. 單擊開通冷熱分層存儲

  6. 在彈出的冷熱數據分層開啟提示窗口,單擊確定。

    確定開通后,集群會進行重啟。待集群狀態從配置變更中變為運行中,即完成開通。

冷熱分層默認存儲策略

冷熱分層存儲功能開通后,默認存儲策略的相關參數如下表所示。

參數

說明

move_factor

當熱數據盤中的可用存儲空間所占比例小于該參數時,自動將當前熱數據盤中占用空間最大的part數據文件移動到冷數據盤存儲。

取值范圍為[0,1]。取值為0時,代表關閉基于磁盤存儲容量的冷熱數據分層存儲。默認值為0.1,代表可用存儲空間所占比例小于10%時,將自動進行數據移動。您也可以建表時設置TTL分層存儲策略。

說明

如何查看磁盤空間,請參見查看磁盤空間

prefer_not_to_merge

冷數據盤中的數據是否進行合并。取值范圍如下。

  • true:不合并,默認值。

  • false:合并。

建表時設置TTL分層存儲策略

在默認存儲策略的基礎上,添加TTL語句,實現將間隔時間之前的所有數據自動轉移到冷數據盤中。

語法

TTL <time_column> + INTERVAL <number> TO DISK 'cold_disk'

參數說明

參數

說明

time_column

日期或日期時間類型的列。

number

間隔時間。

常用單位有:Day、Week、Month、Year。

說明

關于TTL語句的更多信息,請參見TTL。

示例

以date列為依據,將90天之前的所有數據移動到冷數據盤。建表語句如下。

CREATE TABLE ttl_test_tbl
(
    `f1` String,
    `f2` String,
    `f3` Int64,
    `f4` Float64,
    `date` Date
)
ENGINE = MergeTree()
PARTITION BY date
ORDER BY f1
TTL date + INTERVAL 90 DAY TO DISK 'cold_disk'
SETTINGS storage_policy = 'hot_to_cold';

更改TTL分層存儲策略

您可以更改TTL分層存儲策略的日期或日期類型的列以及間隔的時間。

注意事項

  • 數據影響。

    • 存量數據:默認情況下,存量數據將按照新策略進行存儲,但需要時間異步處理,如需立即生效,您需更改TTL分層存儲策略之后,還要執行ALTER TABLE materialize TTL;語句。如果您不期望更改存量數據的TTL分層存儲策略,需要在更改TTL分層存儲策略之前,執行SET materialize_ttl_after_modify=0;語句。

    • 增量數據:默認情況下,增量數據也將按照新策略進行存儲。

  • 更改TTL分層存儲策略后,已經進入冷數據盤中的數據不會自動移動到熱數據盤。如果需要移動,請參見移動冷熱數據盤的數據

語法

ALTER TABLE <table_name> ON CLUSTER default MODIFY TTL <time_column> + INTERVAL <number> TO DISK 'cold_disk';

參數說明

參數

說明

table_name

表名。

time_column

目標日期或日期類型的列。

number

間隔時間。

常用單位有:Day、Week、Month、Year。

移動冷熱數據盤的數據

  • 移動熱數據盤數據到冷數據盤。

    ALTER TABLE <table_name> ON CLUSTER default MOVE PARTITION <partition> TO DISK 'cold_disk';
  • 移動冷數據盤數據到熱數據盤。

    ALTER TABLE <table_name> ON CLUSTER default MOVE PARTITION <partition> TO DISK 'default';
    說明

    partition為分區名稱,您可以在system.parts系統表中查看。

查看冷熱數據盤上的數據

  • 查看熱數據盤上的數據。

    SELECT * FROM system.parts WHERE database = '<db_name>' AND TABLE = '<tbl_name>' AND disk_name ='default' AND active = 1;
  • 查看冷數據盤上的數據。

    SELECT * FROM system.parts WHERE database = '<db_name>' AND TABLE = '<tbl_name>' AND disk_name ='cold_disk' AND active = 1;

查看磁盤空間

開通冷熱數據分層存儲功能后,您可以執行如下語句查看磁盤空間。

SELECT * FROM system.disks;

返回結果如下。

┌─name─────┬─────────path───────────────────────────┬─free_space───────────┬─total_space ─────────┬─used_space───┬─keep_free_space───┬──type──┐
│ cold_disk│ /clickhouse/data/data/disks/cold_disk/ │ 18446744073709551615 │ 18446744073709551615 │ 115312080698 │   0               │   OSS  │
│ default  │ /clickhouse/data/data/                 │ 201663209472         │ 207083249664         │ 5420040192   │   0               │  local │ 
└──────────┴────────────────────────────────────────┴──────────────────────┴──────────────────────┴──────────────┴───────────────────┴────────┘

結果集列名說明如下。

參數

說明

name

磁盤名稱。

  • cold_disk:冷數據盤。

  • default:熱數據盤。

path

磁盤上的數據存儲路徑。

free_space

當前磁盤剩余可用空間。冷數據盤可用空間不受限制。單位:Byte。

total_space

當前磁盤總空間。冷數據盤可用空間不受限制。單位:Byte。

used_space

當前磁盤已經被使用的空間。單位:Byte。

keep_free_space

預留的空閑空間。單位:Byte。

type

存儲介質。取值如下。

  • OSS:冷數據存儲OSS。

  • local:本地云盤。

常見問題

Q:數據尚未從熱數據盤存儲至冷數據盤的原因是什么?

A:數據是否遷至冷數據盤,取決于system.parts表中move_ttl_info.minmove_ttl_info.max的值大小。您可以使用以下語句獲取二者的值。

SELECT move_ttl_info.min,move_ttl_info.max FROM system.parts WHERE database = '<db_name>'AND table = '<tb_name>'AND disk_name = 'default'

如果查詢結果中,任意一個值未超過當前時間,則該部分數據不應被移動到冷存。也有可能是系統正在進行或準備將該數據移動至冷數據盤的操作,但操作尚未處理完畢。