閱識風云是華為云資訊大咖,擅長將復雜資訊多元化呈現,其出品的一張圖(云圖說)、深入淺出的博文(云小課)或短視頻(云視廳)總有一款能讓您快速上手華為云,更多精彩內容請單擊此處,
摘要: GaussDB(DWS)支持根據業務系統的不同使用需求,對膨脹的資料進行冷熱分級管理,將資料按照時間分為熱資料、冷資料,這不僅可以提高資料分析性能還能降低業務成本,
本文分享自華為云社區《【云小課】EI第50課 GaussDB(DWS)資料存盤盡在掌控,冷熱資料切換自如》,作者:閱識風云
背景資訊
海量大資料場景下,隨著業務和資料量的不斷增長,資料存盤與消耗的資源也日益增長,根據業務系統中用戶對不同時期資料的不同使用需求,對膨脹的資料進行“冷熱”分級管理,不僅可以提高資料分析性能還能降低業務成本,針對資料使用的一些場景,可以將資料按照時間分為:熱資料、冷資料,
冷熱資料主要從資料訪問頻率、更新頻率進行劃分,
- Hot(熱資料):訪問、更新頻率較高,對訪問的回應時間要求很高的資料,
- Cold(冷資料):不允許更新或更新訪問頻率較低,對訪問的回應時間要求不高的資料,
冷熱切換策略
冷熱切換的策略支持LMT(last modify time)和HPN(hot partition number),LMT指按磁區的最后更新時間切換,HPN指保留熱磁區的個數切換,
- LMT:表示切換[day]時間前修改的熱磁區資料為冷磁區,將該資料遷至OBS表空間中,其中[day]為整型,范圍[0, 36500],單位為天,
如下圖中,設定day為2,即在冷熱切換時,根據磁區資料的最晚修改時間,保留2日內所修改的磁區為熱磁區,其余資料為冷磁區資料,假設當前時間為4月30日,4月30日對[4-26]磁區進行了delete操作,4月29日對[4-27]磁區進行了insert操作,故在冷熱切換時,保留[4-26][4-27][4-29][4-30]四個磁區為熱磁區,
- HPN:表示保留HPN個有資料的磁區為熱磁區,磁區順序按照磁區的Sequence ID來確定,磁區的Sequence ID是根據磁區邊界值的大小,內置生成的序號,此序號不對外呈現,對于RANGE磁區,磁區的邊界值越大,磁區對應的Sequence ID越大;對于LIST磁區,磁區邊界列舉值中的最大值越大,磁區對應的Sequence ID越大,在冷熱切換時,需要將資料遷移至OBS表空間中,其中HPN為整型,范圍為[0,1600],
如下圖中,設定HPN為3,即在冷熱切換時,保留最新的3個有資料的磁區為熱磁區資料,其余磁區均切為冷磁區,
準備作業
- 已注冊華為云賬號,且在使用GaussDB(DWS)前檢查賬號狀態,賬號不能處于欠費或凍結狀態,
- 已下載客戶端并連接到GaussDB(DWS)集群,
創建冷熱表
創建列存冷熱資料管理表,指定熱資料有效期LMT為100天,
CREATE TABLE lifecycle_table(i int, val text) WITH (ORIENTATION = COLUMN, storage_policy = 'LMT:100') PARTITION BY RANGE (i) ( PARTITION P1 VALUES LESS THAN(5), PARTITION P2 VALUES LESS THAN(10), PARTITION P3 VALUES LESS THAN(15), PARTITION P8 VALUES LESS THAN(MAXVALUE) ) ENABLE ROW MOVEMENT;
冷熱資料切換
切換冷資料至OBS表空間,
- 自動切換:每日0點調度框架自動觸發,無需關注切換情況;
可自定義自動切換時間:根據業務情況調整自動觸發時間,修改為每天早晨6點30分:
select * from pg_obs_cold_refresh_time('lifecycle_table', '06:30:00'); pg_obs_cold_refresh_time -------------------------- SUCCESS (1 row)
- 手動切換
執行如下操作手動切換單表:
alter table lifecycle_table refresh storage;
ALTER TABLE
執行如下操作批量切換所有冷熱表:
select pg_catalog.pg_refresh_storage(); pg_refresh_storage -------------------- (1,0) (1 row)
查看資料分布
查看冷熱表資料分布情況,
查看單表資料分布情況:
select * from pg_catalog.pg_lifecycle_table_data_distribute('lifecycle_table'); schemaname | tablename | nodename | hotpartition | coldpartition | switchablepartition | hotdatasize | colddatasize | switchabledatasize ------------+-----------------+--------------+--------------+---------------+---------------------+-------------+--------------+-------------------- public | lifecycle_table | dn_6001_6002 | p1,p2,p3,p8 | | | 96 KB | 0 bytes | 0 bytes public | lifecycle_table | dn_6003_6004 | p1,p2,p3,p8 | | | 96 KB | 0 bytes | 0 bytes public | lifecycle_table | dn_6005_6006 | p1,p2,p3,p8 | | | 96 KB | 0 bytes | 0 bytes (3 rows)
查看所有冷熱表資料分布情況:
select * from pg_catalog.pg_lifecycle_node_data_distribute(); schemaname | tablename | nodename | hotpartition | coldpartition | switchablepartition | hotdatasize | colddatasize | switchabledatasize ------------+-----------------+--------------+--------------+---------------+---------------------+-------------+--------------+-------------------- public | lifecycle_table | dn_6001_6002 | p1,p2,p3,p8 | | | 98304 | 0 | 0 public | lifecycle_table | dn_6003_6004 | p1,p2,p3,p8 | | | 98304 | 0 | 0 public | lifecycle_table | dn_6005_6006 | p1,p2,p3,p8 | | | 98304 | 0 | 0 (3 rows)
了解更多華為云資料倉庫GaussDB(DWS),請點擊這里,
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/543134.html
標籤:大數據
上一篇:數倉建設保姆級5W字教程,離線實時一網打盡(理論+實戰)
下一篇:ClickHouse(12)ClickHouse合并樹MergeTree家族表引擎之AggregatingMergeTree詳細決議
