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

數(shù)據(jù)分層存儲(chǔ)

Hologres從V1.3.37版本開始支持冷熱數(shù)據(jù)分層存儲(chǔ),幫助客戶科學(xué)管理數(shù)據(jù)分層。本文為您詳細(xì)介紹數(shù)據(jù)分層存儲(chǔ)的使用方式。

功能介紹

Hologres的數(shù)據(jù)存儲(chǔ)類型分為標(biāo)準(zhǔn)存儲(chǔ)、低頻訪問存儲(chǔ)。

  • 標(biāo)準(zhǔn)存儲(chǔ)即全SSD熱存儲(chǔ),是Hologres的默認(rèn)存儲(chǔ),滿足低延時(shí)、高性能訪問數(shù)據(jù)需求,對(duì)于大多數(shù)使用場(chǎng)景而言,標(biāo)準(zhǔn)存儲(chǔ)是最有效且最具成本效益的選擇,文中簡(jiǎn)稱為熱存。

  • 低頻訪問存儲(chǔ)即全HDD冷存,滿足低頻訪問數(shù)據(jù)的低成本存儲(chǔ)需求,適用于對(duì)延遲不敏感或不常訪問的超大型數(shù)據(jù)集,文中簡(jiǎn)稱為冷存。

  • 對(duì)于主從實(shí)例,建議升級(jí)到V1.3.55及以上版本開啟冷存。

同時(shí)也支持表級(jí)別的冷熱數(shù)據(jù)分層,可以使用Hologres提供的CREATE PARTITION TABLE功能動(dòng)態(tài)的設(shè)置分區(qū)子表的存儲(chǔ)介質(zhì)。

Hologres從 V2.1版本開始支持基于SSD的緩存加速,幫助您提高冷存訪問速度,當(dāng)前僅支持默認(rèn)分配的緩存空間。緩存加速默認(rèn)開啟,預(yù)計(jì)訪問性能會(huì)提高一倍以上。

前提條件

  • 僅HologresV1.3.37及以上版本支持?jǐn)?shù)據(jù)冷熱分層存儲(chǔ),如果您的實(shí)例低于該版本,請(qǐng)您使用自助升級(jí)或加入Hologres釘釘交流群反饋,詳情請(qǐng)參見如何獲取更多的在線支持?。

  • 對(duì)于低版本的包年包月的實(shí)例,升級(jí)到V1.3.37版本后,實(shí)例的低頻訪問存儲(chǔ)的配額默認(rèn)是0GB。

注意事項(xiàng)

  • Hologres表的存儲(chǔ)分為Data和Meta兩部分,Data為用戶的數(shù)據(jù),Meta為表的一些元數(shù)據(jù)信息。在冷熱分層存儲(chǔ)中,用戶只能設(shè)置表的Data部分存儲(chǔ)的存儲(chǔ)介質(zhì)。出于性能考慮Meta只能存儲(chǔ)在熱存儲(chǔ),因此即使將表的存儲(chǔ)策略設(shè)置為冷存儲(chǔ),也會(huì)占用少量熱存儲(chǔ)介質(zhì),因此會(huì)產(chǎn)生少量的熱存儲(chǔ)費(fèi)用。

  • 為了不影響用戶服務(wù),冷熱搬遷的任務(wù)優(yōu)先級(jí)較低,即用戶修改表Data的存儲(chǔ)策略后,不是立即生效,Hologres會(huì)在后臺(tái)異步進(jìn)行數(shù)據(jù)冷熱搬遷,搬遷時(shí)間默認(rèn)為當(dāng)天晚上0點(diǎn),從V2.2版本開始支持自定義搬遷時(shí)間,詳情請(qǐng)參見動(dòng)態(tài)分區(qū)管理

  • 向冷存表新寫數(shù)據(jù)時(shí),數(shù)據(jù)會(huì)先寫到熱存儲(chǔ),后臺(tái)任務(wù)會(huì)異步的搬遷至冷存儲(chǔ),因此會(huì)產(chǎn)生一定的熱存儲(chǔ)費(fèi)用。

  • 由于磁盤尋道時(shí)間的限制,不推薦使用冷存表支撐點(diǎn)查場(chǎng)景(例如Flink維度表,Serving場(chǎng)景等)。冷存表支持的每秒讀取行數(shù)比熱存表低2個(gè)數(shù)量級(jí)。

  • 不推薦將行存表的存儲(chǔ)策略設(shè)為冷存儲(chǔ)介質(zhì)。

  • 批量進(jìn)行冷熱數(shù)據(jù)轉(zhuǎn)換過程中會(huì)打開所有表的tablet,導(dǎo)致內(nèi)存占用增加,建議一次性轉(zhuǎn)換的表數(shù)量不超過200張。

創(chuàng)建冷熱分層表

在執(zhí)行建表時(shí),您可以通過設(shè)置SET_TABLE_PROPERTY中的storage_mode參數(shù)來(lái)指定表的數(shù)據(jù)存儲(chǔ)策略。詳情請(qǐng)參見CREATE TABLE。

非分區(qū)表

指定非分區(qū)表的存儲(chǔ)策略

如果是非分區(qū)表,可以通過SET_TABLE_PROPERTY來(lái)設(shè)置表的存儲(chǔ)策略。支持的選項(xiàng)有:

  • hot(熱存儲(chǔ))。

  • cold(冷存儲(chǔ))。

例如將tbl1設(shè)置為使用冷存存儲(chǔ),代碼如下:

-- 建表時(shí)指定存儲(chǔ)策略為冷存儲(chǔ)
BEGIN;
CREATE TABLE tbl1 (
 "id" int NOT NULL,
 "name" text NOT NULL
);
CALL set_table_property('tbl1', 'storage_mode', 'cold');
COMMIT;

修改非分區(qū)表的存儲(chǔ)介質(zhì)

Hologres支持建表后修改存儲(chǔ)介質(zhì)。例如將表tbl1的存儲(chǔ)介質(zhì)改為熱存存儲(chǔ),系統(tǒng)會(huì)異步的將數(shù)據(jù)搬遷到熱存存儲(chǔ)。示例如下:

-- 建表后修改存儲(chǔ)介質(zhì)為熱存儲(chǔ)
CALL set_table_property('tbl1', 'storage_mode', 'hot');

分區(qū)表

創(chuàng)建分區(qū)表的存儲(chǔ)策略

分區(qū)表也可以通過SET_TABLE_PROPERTY來(lái)設(shè)置表的存儲(chǔ)策略,分區(qū)子表默認(rèn)繼承父表的存儲(chǔ)屬性,也可以分別設(shè)置父表和子表的存儲(chǔ)策略。支持的選項(xiàng)有:

  • hot(熱存儲(chǔ))。

  • cold(冷存儲(chǔ))。

例如將分區(qū)父表(tbl2)設(shè)置為使用冷存存儲(chǔ),之后該分區(qū)父表(tbl2)對(duì)應(yīng)的分區(qū)子表(tbl2_v1)都會(huì)使用冷存進(jìn)行數(shù)據(jù)存儲(chǔ),代碼如下:

-- 建表時(shí)指定存儲(chǔ)策略為冷存儲(chǔ)
BEGIN;
CREATE TABLE tbl2(
  c1 text NOT NULL,
  c2 text
)
PARTITION BY LIST(c2);
CALL set_table_property('tbl2', 'storage_mode', 'cold');
CREATE TABLE tbl2_v1 PARTITION OF tbl2 FOR VALUES IN ('v1');
COMMIT;

修改分區(qū)表的存儲(chǔ)

Hologres支持在建表后修改存儲(chǔ)介質(zhì)。例如將分區(qū)父表tbl2的存儲(chǔ)介質(zhì)改為熱存存儲(chǔ),系統(tǒng)會(huì)將該分區(qū)父表對(duì)應(yīng)所有分區(qū)子表的數(shù)據(jù)都異步的搬遷到熱存存儲(chǔ)。示例如下:

-- 建表后修改存儲(chǔ)策略為熱存儲(chǔ)介質(zhì)
CALL set_table_property('tbl2', 'storage_mode', 'hot');

如果您需要單獨(dú)設(shè)置某個(gè)分區(qū)子表使用冷存存儲(chǔ),則需要修改該分區(qū)子表的storage_mode屬性。示例如下:

-- 創(chuàng)建多個(gè)分區(qū)子表

CREATE TABLE tbl2_v2 PARTITION OF tbl2 FOR VALUES IN ('v2');
CREATE TABLE tbl2_v3 PARTITION OF tbl2 FOR VALUES IN ('v3');

-- 查詢表屬性,當(dāng)前默認(rèn)繼承父表的熱存屬性

SELECT * FROM hg_table_storage_status('public', 'tbl2');

-- 修改分區(qū)子表為冷存存儲(chǔ)

CALL set_table_property('tbl2_v3', 'storage_mode', 'cold');
                

動(dòng)態(tài)管理分區(qū)表的存儲(chǔ)介質(zhì)

為了更智能的管理表分區(qū)的存儲(chǔ)介質(zhì),可以使用動(dòng)態(tài)分區(qū)功能來(lái)設(shè)置數(shù)據(jù)冷熱轉(zhuǎn)換規(guī)則,實(shí)現(xiàn)智能冷熱分層存儲(chǔ),有效的平衡成本和性能。更多對(duì)于動(dòng)態(tài)管理分區(qū)表的信息,詳情請(qǐng)參見動(dòng)態(tài)分區(qū)管理。

查詢存儲(chǔ)介質(zhì)狀態(tài)

可以通過調(diào)用hg_table_storage_status函數(shù),查詢表的存儲(chǔ)狀態(tài)。hg_table_storage_status僅顯示數(shù)據(jù)存儲(chǔ)大小,不包含Meta存儲(chǔ)大小。使用方法如下:

SELECT * FROM hg_table_storage_status('<schema_name>', '<table_name>');

參數(shù)

描述

schema_name

表的Schema名

table_name

表名

返回結(jié)果如下:

列名

內(nèi)容

table_name

  • 非分區(qū)表:表名

  • 分區(qū)父表:分區(qū)子表名。會(huì)返回多行,每行代表一張分區(qū)子表

  • 分區(qū)子表:分區(qū)子表名

hot_size

熱存儲(chǔ)的大小,單位Byte

cold_size

冷存儲(chǔ)的大小,單位Byte

status

狀態(tài):

  • hot:數(shù)據(jù)在熱存中

  • cold:數(shù)據(jù)在冷存中

  • transferring:數(shù)據(jù)正在搬遷

示例如下:

-- 非分區(qū)父表
SELECT * FROM hg_table_storage_status('public', 'tbl1');--返回單位是Byte
 table_name | hot_size |   cold_size   | status
------------+----------+---------------+--------
 tbl1       |  145643  |      3685     | transferring

-- 分區(qū)父表
SELECT * FROM hg_table_storage_status('public', 'tbl2');--返回單位是Byte
   table_name    | hot_size | cold_size | status
-----------------+----------+-----------+--------
 tbl2_2022062222 |        0 |         0 | hot
 tbl2_2022062221 |     1125 |         0 | hot
 tbl2_2022062220 |     1245 |         0 | hot
 tbl2_2022062219 |     1358 |         0 | hot
 tbl2_2022062218 |        0 |      1875 | cold
 tbl2_2022062217 |        0 |      1143 | cold
 tbl2_2022062216 |        0 |      1299 | cold

查詢表訪問頻率

Hologres從V1.3.37版本開始提供日志系統(tǒng)表hologres.hg_table_info來(lái)按日收集實(shí)例內(nèi)表的統(tǒng)計(jì)信息,幫助您對(duì)實(shí)例中的表信息進(jìn)行查看、分析,以針對(duì)性的做優(yōu)化,詳情請(qǐng)參見表統(tǒng)計(jì)信息查看與分析,我們可以通過查詢?cè)摫慝@取冷熱數(shù)據(jù)的存儲(chǔ)量、表數(shù)據(jù)的訪問頻次、分區(qū)數(shù)據(jù)訪問頻次,以此來(lái)判斷是否需要做冷熱數(shù)據(jù)轉(zhuǎn)換,詳細(xì)查詢語(yǔ)句如下:

非分區(qū)表

SELECT a.table_name,
       (a.total_read_count - b.total_read_count) AS read_count,
       (a.total_write_count - b.total_write_count) AS write_count,
       a.hot_storage_size
FROM (SELECT * FROM hologres.hg_table_info
      WHERE type='TABLE' AND collect_time::DATE = CURRENT_DATE - interval '1 day') a
JOIN
    (SELECT * FROM hologres.hg_table_info
    WHERE type='TABLE' AND collect_time::DATE = CURRENT_DATE - interval '${days} day') b
ON a.table_name = b.table_name
ORDER BY hot_storage_size DESC;

分區(qū)表

查詢所有分區(qū):

SELECT parent_table_name,count(*) AS partition_cnt, 
       sum(hot_storage_size)/1024/1024/1024 AS hot_size_gb 
FROM hologres.hg_table_info
WHERE type = 'PARTITION' AND collect_time::DATE = CURRENT_DATE - interval '1 day'
GROUP BY parent_table_name
ORDER BY hot_size_gb DESC;

查詢特定分區(qū)訪問頻次:

SELECT a.table_name,
      (a.total_read_count - b.total_read_count) as read_count,
      (a.total_write_count - b.total_write_count) as write_count,
       a.hot_storage_size
FROM (SELECT * FROM hologres.hg_table_info
      WHERE type = 'PARTITION'
      AND parent_table_name = '${p_table_name}'
      AND collect_time::DATE = CURRENT_DATE - interval '1 day') a
JOIN
     (SELECT * FROM hologres.hg_table_info
     WHERE type = 'PARTITION'
     AND parent_table_name = '${p_table_name}'
     AND collect_time::DATE = CURRENT_DATE - interval '${days} day') b
ON a.table_name = b.table_name
ORDER BY table_name DESC;