免費體驗PolarDB PostgreSQL冷數(shù)據(jù)分層存儲
本文介紹了如何免費體驗PolarDB PostgreSQL版的冷數(shù)據(jù)分層存儲。
背景
PolarDB PostgreSQL版支持冷熱數(shù)據(jù)分層存儲功能,在保證正常增刪改查的同時,使用OSS等更低成本的存儲介質(zhì),將冷熱數(shù)據(jù)進行分層存儲。將訪問頻率和更新頻率低的數(shù)據(jù)轉(zhuǎn)存到OSS中,可以有效降低存儲成本。相比其他的分層存儲方案,我們的方案具有以下優(yōu)勢:
透明訪問:冷數(shù)據(jù)表的功能和使用方式和普通表完全對齊,無需改寫SQL,即可支持所有數(shù)據(jù)類型的增刪改查(普通的分層存儲功能通常只讀),建立索引/視圖等操作。
緩存加速:針對冷數(shù)據(jù)的查詢,支持預熱、預讀、讀寫合并、本地緩存等功能,優(yōu)化對冷數(shù)據(jù)讀寫的性能。
安全可靠:支持對OSS數(shù)據(jù)使用各類備份恢復功能,包括數(shù)據(jù)快照和快照恢復、按時間點恢復、庫表恢復等。
模式多樣:支持對索引、子分區(qū)、單獨列等不同數(shù)據(jù)庫對象進行分層存儲。
影響
本功能體驗不涉及生產(chǎn)環(huán)境的部署,因此不會影響業(yè)務。
費用
本次體驗中,由于體驗涉及到的資源不歸屬于您,因此不會產(chǎn)生任何費用,您可以放心體驗。
體驗內(nèi)容
體驗環(huán)境
在本免費體驗中,阿里云提供了預置環(huán)境供您操作體驗,預置環(huán)境的詳情如下:
集群:提供了兩個基礎(chǔ)配置一致的PolarDB PostgreSQL版集群,其中一個集群開啟冷數(shù)據(jù)分層存儲功能。基礎(chǔ)配置如下:
內(nèi)核版本:14.11.21.1
產(chǎn)品版本:標準版
子系列:通用規(guī)格
集群規(guī)格:集群包含1個主節(jié)點,規(guī)格為2核4 GB
存儲類型: ESSD PL1云盤
是否開啟熱備集群:關(guān)閉存儲熱備集群
測試數(shù)據(jù)集:集群中預置測試所用的表為part_test表,數(shù)據(jù)量為39311995條數(shù)據(jù)。
觀測指標
存儲大小:數(shù)據(jù)存儲空間大小。單位:GB。
存儲價格:數(shù)據(jù)存儲價格。單位:元/小時。
操作步驟
進入瑤池解決方案體驗館。
單擊核心功能體驗,在冷數(shù)據(jù)分層存儲-存儲降本頁面單擊免費體驗。
單擊頁面下方創(chuàng)建免費體驗任務按鈕,并在彈出框中單擊確定開始創(chuàng)建PolarDB PostgreSQL冷數(shù)據(jù)分層存儲任務。
稍等片刻后,單擊刷新任務列表,可以看到您創(chuàng)建的體驗任務。
單擊查看詳情,進入實時查詢情況頁面。
在未開啟冷數(shù)據(jù)存儲功能的集群中執(zhí)行普通查詢?nèi)蝿铡?/p>
說明請根據(jù)頁面按鈕提示,手動單擊按鈕執(zhí)行每一步操作。若在倒計時結(jié)束時沒有手動單擊按鈕,則會自動執(zhí)行對應操作。
整個體驗過程中,您可以在左側(cè)觀察數(shù)據(jù)存儲空間和存儲價格。
單擊開始任務按鈕。
單擊查看原始表的結(jié)構(gòu)按鈕,自動執(zhí)行如下命令。
select * from part_test limit 20; t | v ---------------------+---------------------------------- 2024-01-01 00:00:00 | 8bc3c32888431fb2ca78368589edbb51 2024-01-01 00:00:00 | 10dd16b02fad7066b4532605a46633ac 2024-01-01 00:00:00 | 890283616bf80665f93e1d6966120ff4 2024-01-01 00:00:00 | 6cd1b1f8d6084799ffb603220a1289dd 2024-01-01 00:00:01 | b6f33d62732fea57d6781f0f51bdac2c 2024-01-01 00:00:01 | 4bb3cb8afcbcb135228f8db8427ea6f1 2024-01-01 00:00:01 | 6a0383df7f073dc7715130225c21294b 2024-01-01 00:00:01 | e9ce438e298faedf843e4ea66420b5a2 2024-01-01 00:00:01 | 5bbfc2a3e418c09db587de32dcacd45d 2024-01-01 00:00:02 | 8fc4fa3aacab7a9cf53b8711fcba61df 2024-01-01 00:00:02 | f0218aef3d38936b96f39686770f7e10 2024-01-01 00:00:02 | 5489bcebc362f05f0655313b707e1f9d 2024-01-01 00:00:02 | fc62e6e232eabe77ec595aab06140113 2024-01-01 00:00:02 | bcf574b2873d39d7a7af17212ee38aab 2024-01-01 00:00:03 | 72204146ddf432c9172085eece1259bd 2024-01-01 00:00:03 | 4dd4e626b48a21630868d116a7df388e 2024-01-01 00:00:03 | bac57e9610f0f143f5ba9a58b546ac6e 2024-01-01 00:00:03 | aec801864fe43c2b71531c48717ff58d 2024-01-01 00:00:03 | e4a1546f7ca7cdc76441f79147e12469 2024-01-01 00:00:04 | 4875d5728e08fdc447f467e006d643ea (20 rows)
單擊查看原始表數(shù)據(jù)量按鈕,自動執(zhí)行如下命令。
select count(*) from part_test; count ---------- 39311995 (1 row)
單擊體驗普通查詢性能按鈕,自動執(zhí)行以下SQL語句,普通狀態(tài)下查詢表中一條數(shù)據(jù),請關(guān)注查詢時間。
\timing Timing is on. SELECT v from part_test where t = '2024-03-12 13:32:21'; v ---------------------------------- 0fcd3ff19a556f266875fc5203267b5c b547775465c7f69e3504f3cfb1249220 7b8902297d9fcd0fa492f562dcb86692 d7f022205e5bedd795a8cb03dbb7a39a a0faf266a3be094876f0689402f6ba16 (5 rows) Time: 0.891 ms \timing Timing is off.
單擊查看普通狀態(tài)下存儲空間狀況按鈕,自動執(zhí)行以下SQL語句,普通狀態(tài)下,數(shù)據(jù)全部存儲在云盤中,存儲大小和存儲費用可見左側(cè)數(shù)據(jù)全部存儲在云盤表格。
SELECT polar_evict_smgrcache(); polar_evict_smgrcache ----------------------- (1 row) SELECT pg_size_pretty(polar_total_partition_table_size_1('part_test')) AS local_size ,pg_size_pretty(polar_osfs_total_partition_table_size_1('part_test' )) AS oss_size; local_size | oss_size ------------+---------- 3320 MB | 0 bytes (1 row)
在普通查詢完成后,任務將自動切至開啟冷數(shù)據(jù)分層存儲集群繼續(xù)執(zhí)行任務。請根據(jù)頁面按鈕提示,手動點擊按鈕執(zhí)行每一步操作。若在倒計時結(jié)束時沒有手動點擊執(zhí)行,則會自動執(zhí)行對應操作。
單擊轉(zhuǎn)移第一分區(qū)數(shù)據(jù)存儲按鈕,自動執(zhí)行如下SQL語句,轉(zhuǎn)存部分數(shù)據(jù)。
ALTER table part_test_partition_1 SET tablespace oss;
單擊查看當前存儲空間狀況按鈕,自動執(zhí)行如下SQL語句,部分數(shù)據(jù)被轉(zhuǎn)存到OSS存儲中,在左側(cè)圖表中可見轉(zhuǎn)存第一個分區(qū)后數(shù)據(jù)占用的存儲空間及價格。
SELECT polar_evict_smgrcache(); polar_evict_smgrcache ----------------------- (1 row) SELECT pg_size_pretty(polar_total_partition_table_size_1('part_test')) AS local_size ,pg_size_pretty(polar_osfs_total_partition_table_size_1('part_test' )) AS oss_size; local_size | oss_size ------------+---------- 2189 MB | 331 MB (1 row)
單擊查詢一條未轉(zhuǎn)存數(shù)據(jù)按鈕,自動執(zhí)行如下SQL語句,可正常操作未轉(zhuǎn)存的分區(qū)數(shù)據(jù)。
SELECT v from part_test where t = '2024-03-12 13:32:21'; v ---------------------------------- 0fcd3ff19a556f266875fc5203267b5c b547775465c7f69e3504f3cfb1249220 7b8902297d9fcd0fa492f562dcb86692 d7f022205e5bedd795a8cb03dbb7a39a a0faf266a3be094876f0689402f6ba16 (5 rows)
單擊轉(zhuǎn)移剩余分區(qū)數(shù)據(jù),查看左圖中轉(zhuǎn)存后存儲空間及價格變化按鈕,自動執(zhí)行以下SQL語句,轉(zhuǎn)存全部數(shù)據(jù)至OSS存儲,存儲成本降低。
ALTER table part_test_partition_2 SET tablespace oss; ALTER TABLE SELECT polar_evict_smgrcache(); polar_evict_smgrcache ----------------------- (1 row) SELECT polar_evict_smgrcache(); polar_evict_smgrcache ----------------------- (1 row) SELECT pg_size_pretty(polar_total_partition_table_size_1('part_test')) AS local_size ,pg_size_pretty(polar_osfs_total_partition_table_size_1('part_test' )) AS oss_size; local_size | oss_size ------------+---------- 1131 MB | 641 MB (1 row) ALTER table part_test_partition_3 SET tablespace oss; ALTER TABLE mydb=> SELECT polar_evict_smgrcache(); polar_evict_smgrcache ----------------------- (1 row) SELECT polar_evict_smgrcache(); polar_evict_smgrcache ----------------------- (1 row) SELECT pg_size_pretty(polar_total_partition_table_size_1('part_test')) AS local_size ,pg_size_pretty(polar_osfs_total_partition_table_size_1('part_test' )) AS oss_size; local_size | oss_size ------------+---------- 0 bytes | 972 MB (1 row) select polar_osfs_prewarm('part_test_partition_3',0); polar_osfs_prewarm -------------------- 125440 (1 row)
單擊對已轉(zhuǎn)存的表,查詢一條數(shù)據(jù)按鈕,自動執(zhí)行以下SQL語句,對于轉(zhuǎn)存的表,可正常進行增刪改查操作,且對比普通查詢,無明顯性能變化。
\timing Timing is on. SELECT v from part_test where t = '2024-03-12 13:32:21'; v ---------------------------------- 0fcd3ff19a556f266875fc5203267b5c b547775465c7f69e3504f3cfb1249220 7b8902297d9fcd0fa492f562dcb86692 d7f022205e5bedd795a8cb03dbb7a39a a0faf266a3be094876f0689402f6ba16 (5 rows) Time: 1.623 ms \timing Timing is off.
單擊插入一條數(shù)據(jù)并查看結(jié)果按鈕,自動執(zhí)行以下SQL語句。
INSERT INTO part_test (t, v) SELECT '2024-02-03 01:00:23', 'NEW INSERT TE XT'; INSERT 0 1 SELECT * FROM part_test WHERE t = '2024-02-03 01:00:23'; t | v ---------------------+---------------------------------- 2024-02-03 01:00:23 | f7dddbb0f15bdc11eec19630b1487167 2024-02-03 01:00:23 | 75398f09019613565f39a3abc180ca0f 2024-02-03 01:00:23 | a7c0befc45d019360f31c3ebd8880268 2024-02-03 01:00:23 | a3c0f17c371b8ab7459f4e47df69a393 2024-02-03 01:00:23 | NEW INSERT TEXT 2024-02-03 01:00:23 | 1a8925ab15c73a5813393e3b07b6be14 (6 rows)
單擊更新一條數(shù)據(jù)并查看結(jié)果按鈕,自動執(zhí)行以下SQL語句。
UPDATE part_test SET v = md5(random()::text) WHERE t= '2024-02-03 01:00:2 3' AND v = (SELECT v FROM part_test WHERE t= '2024-02-03 01:00:23' LIMIT 1); UPDATE 1 SELECT * FROM part_test WHERE t = '2024-02-03 01:00:23'; t | v ---------------------+---------------------------------- 2024-02-03 01:00:23 | 667bf9e88cb9c234b1e9cd75895df104 2024-02-03 01:00:23 | 75398f09019613565f39a3abc180ca0f 2024-02-03 01:00:23 | a7c0befc45d019360f31c3ebd8880268 2024-02-03 01:00:23 | a3c0f17c371b8ab7459f4e47df69a393 2024-02-03 01:00:23 | NEW INSERT TEXT 2024-02-03 01:00:23 | 1a8925ab15c73a5813393e3b07b6be14 (6 rows)
單擊轉(zhuǎn)存索引按鈕,自動執(zhí)行以下SQL語句,將索引轉(zhuǎn)存到OSS內(nèi),依然可以進行正常的增刪改查操作。
ALTER index part_test_t_idx set tablespace oss; ALTER INDEX SELECT polar_evict_smgrcache(); polar_evict_smgrcache ----------------------- (1 row) SELECT pg_size_pretty(polar_total_partition_table_size_1('part_test')) AS local_size ,pg_size_pretty(polar_osfs_total_partition_table_size_1('part_test') ) AS oss_size; local_size | oss_size ------------+---------- 0 bytes | 972 MB (1 row)
單擊刪除一條數(shù)據(jù)按鈕,自動執(zhí)行以下SQL語句。
DELETE FROM part_test WHERE t = '2024-02-03 01:00:23' AND v = 'NEW INSERT TEXT';
(可選)對于已創(chuàng)建的任務,您可以在PolarDB PostgreSQL冷數(shù)據(jù)分層存儲頁面,單擊體驗記錄,在任務列表中,單擊全部任務或我的任務,查看體驗結(jié)果及其詳情。
結(jié)果分析
降低存儲成本:PolarDB PostgreSQL版可將冷數(shù)據(jù)存儲至OSS中,降低90%以上的存儲成本。
使用方式無變化:轉(zhuǎn)存至OSS的冷數(shù)據(jù)表其使用方式和普通表完全對齊,無需改寫SQL語句。
性能無明顯變化:可自動緩存冷數(shù)據(jù)表中的熱點訪問區(qū)域,使其性能與普通表無明顯變化。