DWS性能優(yōu)化
華為云 數(shù)據(jù)倉庫 DWS新一代、全場景數(shù)據(jù)倉庫,一站式分析,性能、容量無限擴展,守護高價值數(shù)據(jù)、創(chuàng)享高價值分析,是基于華為融合數(shù)據(jù)倉庫產(chǎn)品的 云原生 服務。
DWS集群支持綁定彈性負載均衡,所需費用按照彈性負載均衡(ELB)服務的計費規(guī)則進行計費。 數(shù)據(jù)庫加密密鑰(可選) 在創(chuàng)建DWS集群時,如果開啟“加密數(shù)據(jù)庫”的功能,需使用KMS(密鑰管理服務)的密鑰加解密數(shù)據(jù)庫。密鑰按照數(shù)據(jù)加密服務密鑰的計費規(guī)則進行計費。 計費模式 DWS提供兩種計費模式供您選擇:包年/包月
法,了解DWS幾種常見的SQL調(diào)優(yōu)手段。 開始實驗 快速入門 一鍵式創(chuàng)建DWS集群,上傳csv本地數(shù)據(jù)到云存儲OBS桶,通過創(chuàng)建OBS外表實現(xiàn)數(shù)據(jù)導入并簡單分析。 開始實驗 大數(shù)據(jù)融合分析:訪問MRS中的Hive數(shù)據(jù)源 創(chuàng)建數(shù)據(jù)倉庫集群DWS,并導入MRS的Hive數(shù)據(jù),實現(xiàn)跨集群進行大數(shù)據(jù)融合分析。
STDIN導入數(shù)據(jù) 7)使用DRS將數(shù)據(jù)導入DWS 8)使用CDM遷移數(shù)據(jù)到DWS 9)使用DGC數(shù)據(jù)接入服務遷移數(shù)據(jù)到DWS 10)使用DSC工具遷移SQL腳本 11)使用gs_dump和gs_dumpall命令導出元數(shù)據(jù) 12)使用gs_restore導入數(shù)據(jù) 集群管理 一個
文檔下載 數(shù)據(jù)倉庫服務 DWS文檔下載 更多產(chǎn)品信息 更多產(chǎn)品信息 產(chǎn)品術語解釋 華為云服務等級協(xié)議 地區(qū)和終端節(jié)點 系統(tǒng)權限 增值服務 增值服務 支持計劃 7*24小時全產(chǎn)品技術支持 專業(yè)服務 提供上云、用云、管云全生命周期服務 培訓服務 提供企業(yè)上云全棧培訓認證服務
數(shù)據(jù)倉庫服務 GaussDB(DWS)備份恢復 GaussDB(DWS)提供了多層次、多類型的備份/恢復方案,無懼誤刪,讓您的數(shù)據(jù)更安全。 技術特點: 支持多種介質(zhì) 支持備份集群數(shù)據(jù)庫到磁盤、OBS、愛數(shù)、NBU等多種存儲方式。 支持全量+增量備份 支持全量物理備份,差異增量,累積增量等多種類型備份。
式查詢分析。 跨數(shù)據(jù)中心協(xié)同分析 隨著數(shù)據(jù)量的不斷增加,在單數(shù)據(jù)中心存儲計算能力有限情況下,不可能把所有數(shù)據(jù)都統(tǒng)一匯總到單個數(shù)據(jù)中心。而在進行數(shù)據(jù)挖掘、碰撞分析時,又需要涉及更多更全面的數(shù)據(jù),此時,一個統(tǒng)計查詢業(yè)務就可能涉及到多個數(shù)據(jù)中心。 GaussDB(DWS)支持直接跨庫訪
PB級數(shù)據(jù)規(guī)模。 分布式存儲 GaussDB(DWS)采用水平分表的方式,將數(shù)據(jù)表格的元組按照一定的分布策略分散存儲到多個節(jié)點。查詢的時候可以通過查詢條件過濾不必要的數(shù)據(jù),快速定位到數(shù)據(jù)存儲位置,從而極大提升數(shù)據(jù)庫性能。 在水平分表的基礎上,GaussDB(DWS)支持數(shù)據(jù)分區(qū)(
BS源數(shù)據(jù)導入數(shù)據(jù)倉庫,完成數(shù)據(jù)的簡易查詢。 立即體驗 使用GaussDB(DWS)導入Hive數(shù)據(jù),實現(xiàn)對大數(shù)據(jù)的融合分析 指導用戶創(chuàng)建數(shù)據(jù)倉庫集群GaussDB(DWS),并將Hive數(shù)據(jù)導入數(shù)據(jù)倉庫,實現(xiàn)跨集群大數(shù)據(jù)的融合分析。 立即體驗 使用GaussDB(DWS)實現(xiàn)零售業(yè)經(jīng)營狀況的多維度查詢分析
儲過程、數(shù)據(jù)強一致性保證 安全可靠 DWS支持數(shù)據(jù)透明加密,同時支持與數(shù)據(jù)庫安全服務DBSS集成,保證云上數(shù)據(jù)安全。同時DWS支持自動數(shù)據(jù)全量、增量備份,提升數(shù)據(jù)可靠性 建議搭配使用 數(shù)據(jù)接入服務 DIS 云數(shù)據(jù)遷移 CDM 數(shù)據(jù)湖治理中心 DGC 數(shù)據(jù)湖分析 整合數(shù)據(jù)資源,構建
Server等數(shù)據(jù)庫性能優(yōu)化問題,如數(shù)據(jù)庫連接查詢慢,網(wǎng)站程序卡頓,服務器CPU負載高無響應,SQL語句執(zhí)行效率慢,用戶端訪問卡慢的性能問題。曾榮獲華為云精英服務商,八戒TOP服務商等榮譽。,技術團隊長期服務于國內(nèi)金融,電商,交通等關鍵行業(yè),服務客戶5000+,數(shù)據(jù)庫優(yōu)化成功案例2W+
DWS.DCS設計云系統(tǒng)是一個高度集成且協(xié)同化的研發(fā)管理系統(tǒng),通過平臺的建設可為用戶單位提供精準定位連接內(nèi)部研發(fā)所需的圖形硬件支撐資源(工作站/圖形服務器)、三維應用工具軟件,用戶無論身處何地,都能輕松訪問平臺,進行高質(zhì)量的三維設計業(yè)務開展產(chǎn)品功能:戴西DWS.DCS設計云系統(tǒng)是
戴西DWS數(shù)字化研發(fā)平臺是一種綜合性數(shù)字化研發(fā)解決方案,由戴西軟件結合15年經(jīng)驗自主研發(fā),面向于工業(yè)制造業(yè)各企業(yè)提供集設計、仿真、數(shù)據(jù)、試驗、流程、許可、知識、文檔管理、協(xié)同研發(fā)流程等一體化的可定制化數(shù)字化方案服務。產(chǎn)品功能:戴西DWS數(shù)字化研發(fā)平臺主要功能涵蓋統(tǒng)一門戶、統(tǒng)一用戶
培訓與認證具備華為GaussDB OLAP數(shù)據(jù)庫二次開發(fā)和管理能力的高級工程師華為認證培訓華為云數(shù)據(jù)倉庫高級工程師培訓培養(yǎng)具有分布式數(shù)據(jù)庫集群開發(fā)和運維能力的高級工程師,以及對數(shù)據(jù)庫領域相關人員進行技能提升。課程內(nèi)容:深入講解GaussDB DWS數(shù)據(jù)倉庫架構、數(shù)據(jù)庫設計與管理、數(shù)據(jù)遷移、數(shù)據(jù)庫的運維與調(diào)優(yōu)
解決方案以混合架構為基礎,在充分利用傳統(tǒng)數(shù)據(jù)平臺建設經(jīng)驗的基礎上結合大數(shù)據(jù)技術,可以為企業(yè)打造一站式的數(shù)據(jù)采集及接入、數(shù)據(jù)整合及分析、數(shù)據(jù)應用及服務,助力數(shù)字化轉(zhuǎn)型。3、數(shù)據(jù)庫遷移:中電金信作為國內(nèi)大數(shù)據(jù)和數(shù)倉建設的專業(yè)廠商,依托在大數(shù)據(jù)研發(fā)上的技術功底及數(shù)倉領域的交付經(jīng)驗,打磨
提供華為云GaussDB數(shù)據(jù)庫信創(chuàng)全生命周期技術服務支持,包括: GaussDB POC服務。 GaussDB年度運維技術支持。 GaussDB容災規(guī)劃及實施服務。 GaussDB備份與恢復規(guī)劃與實施服務。 數(shù)據(jù)遷移服務(其他數(shù)據(jù))運維、專家支持服務(開發(fā)指導、性能調(diào)優(yōu))等服務,服務介紹如下:一、GaussDB
提供華為云GaussDB數(shù)據(jù)庫信創(chuàng)全生命周期技術服務支持,包括: GaussDB POC服務。 GaussDB年度運維技術支持。 GaussDB容災規(guī)劃及實施服務。 GaussDB備份與恢復規(guī)劃與實施服務。 數(shù)據(jù)遷移服務(其他數(shù)據(jù))運維、專家支持服務(開發(fā)指導、性能調(diào)優(yōu))等服務,服務介紹如下:一、GaussDB
支持處理 DWG, DWS, DWT, DXT, PDF 等圖紙格式。保持矢量特征
將工廠底層的數(shù)據(jù)進行抽取,進行轉(zhuǎn)化(存儲)并加載(傳輸)到上層應用系統(tǒng)。該方案對于我們通過對制造設施的數(shù)字化來提高未來的制造收益是至關重要的。從底層采集原始數(shù)據(jù);將復雜的生產(chǎn)環(huán)境中產(chǎn)生的數(shù)據(jù)進行處理并標準化;對數(shù)據(jù)進行分類歸檔;將數(shù)據(jù)轉(zhuǎn)換成上層應用平臺(例如:DWS、EMS、ME
GaussDB(DWS)安全管理 GaussDB(DWS)安全管理 DWS可靠保護數(shù)據(jù)庫中存儲的數(shù)據(jù),確保數(shù)據(jù)安全、完整、可用。 DWS可靠保護數(shù)據(jù)庫中存儲的數(shù)據(jù),確保數(shù)據(jù)安全、完整、可用。 管理控制臺 幫助文檔 數(shù)據(jù)庫安全 數(shù)據(jù)庫系統(tǒng)存儲著各類重要、敏感的數(shù)據(jù),同時作為多用戶的
Demo體驗 用戶云上快速創(chuàng)建DWS數(shù)據(jù)倉庫集群,并將OBS源數(shù)據(jù)導入數(shù)據(jù)倉庫,完成數(shù)據(jù)的簡易查詢。 DWS熱門視頻 看視頻輕松了解和使用DWS 數(shù)據(jù)倉庫服務產(chǎn)品介紹 04:38 數(shù)據(jù)倉庫服務快速入門 03:29 DWS助力消費者BG大數(shù)據(jù)平臺云化 05:30 數(shù)據(jù)倉庫服務集群管理 05:30
更多精選文章推薦 什么是數(shù)據(jù)倉庫服務GaussDB(DWS) 什么是DWS的IoT數(shù)倉 DWS有哪些連接工具和數(shù)據(jù)遷移工具 DWS數(shù)據(jù)庫監(jiān)控DMS介紹 GaussDB(DWS)的SQL on Anywhere Gauss(DWS)數(shù)據(jù)庫加解密 GaussDB(DWS)常用SQL GaussDB(DWS)安全管理
Flink將MySQL數(shù)據(jù)導入DWS集群 MySQL 使用華為云DLI服務的Flink作業(yè),將MySQL數(shù)據(jù)實時同步到GaussDB(DWS)。 操作簡單。 使用CDM遷移數(shù)據(jù)到GaussDB(DWS) 數(shù)據(jù)庫、NoSQL、文件系統(tǒng)、大數(shù)據(jù)平臺 CDM提供同構/異構數(shù)據(jù)源之間批量數(shù)據(jù)遷移的功能
如何調(diào)用GuassDB(DWS) API接口示例 精選文章推薦 DWS產(chǎn)品介紹_DWS產(chǎn)品優(yōu)勢_DWS功能 云服務器是什么? 對象存儲OBS產(chǎn)品介紹 學習區(qū)塊鏈技術 數(shù)據(jù)倉庫服務遷移類型有哪些? 數(shù)據(jù)倉庫服務_SQL on Anywhere GaussDB(DWS)安全管理 DWS如何保障數(shù)據(jù)庫安全?
快速創(chuàng)建DWS集群并導入數(shù)據(jù) 對象存儲OBS產(chǎn)品介紹 選擇合適的分布列 數(shù)據(jù)倉庫服務遷移類型有哪些? 數(shù)據(jù)倉庫服務_SQL on Anywhere GaussDB(DWS)安全管理 DWS如何保障數(shù)據(jù)庫安全? 調(diào)整局部聚簇鍵 分析正在執(zhí)行的SQL 用戶管理優(yōu)秀實踐 怎樣選擇彈性云服務器?
GaussDB(DWS)工具 GaussDB(DWS)工具 Gauss(DWS)是一種基于華為云基礎架構和平臺的在線數(shù)據(jù)處理數(shù)據(jù)庫,提供即開即用、可擴展且完全托管的分析型數(shù)據(jù)庫服務。Gauss(DWS)提供包括連接工具、命令行工具、數(shù)據(jù)遷移工具等在內(nèi)的多種工具用于連接數(shù)據(jù)庫、遷移數(shù)據(jù)。 G
訪問外部數(shù)據(jù)源數(shù)據(jù)的操作步驟。 本例以SQL作業(yè)訪問RDS數(shù)據(jù)庫表為例,介紹DLI服務提交SQL作業(yè)訪問外部數(shù)據(jù)源數(shù)據(jù)的操作步驟。 使用DLI提交SQL作業(yè)查詢RDS MySQL數(shù)據(jù) 常用的Spark SQL作業(yè)的語法 基礎的Spark SQL語法:數(shù)據(jù)庫相關語法、創(chuàng)建OBS表相
3副本冗余 3副本冗余 數(shù)據(jù)持久性高達99.9999999% 數(shù)據(jù)持久性高達99.9999999% 數(shù)據(jù)加密 數(shù)據(jù)加密 系統(tǒng)盤和數(shù)據(jù)盤均支持數(shù)據(jù)加密,保護數(shù)據(jù)安全 系統(tǒng)盤和數(shù)據(jù)盤均支持數(shù)據(jù)加密,保護數(shù)據(jù)安全 實時寫入新數(shù)據(jù) 時序數(shù)據(jù)的寫入是實時的,采集的數(shù)據(jù)反應客觀信息,數(shù)據(jù)是隨著時間推進不斷產(chǎn)生,不存在舊數(shù)據(jù)更新場景。
DWS性能優(yōu)化
問題現(xiàn)象
在DWS實際業(yè)務場景中因I/O高、I/O瓶頸導致的性能問題較多,其中應用業(yè)務設計不合理導致的問題占大多數(shù)。本文從應用業(yè)務優(yōu)化角度,以常見觸發(fā)I/O慢的業(yè)務SQL場景為例,指導如何通過優(yōu)化業(yè)務去提升I/O效率和降低I/O。
確定I/O瓶頸&識別高I/O的語句
- 通過以下內(nèi)容掌握SQL級I/O問題分析的基礎知識。
- PGXC_THREAD_WAIT_STATUS視圖功能。
- EXPLAIN功能,需了解并熟悉Scan算子、A-time、A-rows、E- rows,詳細內(nèi)容參見:SQL執(zhí)行計劃。
- 通過pgxc_thread_wait_status視圖查看并確定I/O瓶頸。全部狀態(tài)信息請參見PG_THREAD_WAIT_STATUS。
1SELECT wait_status,wait_event,count(*) AS cnt FROM pgxc_thread_wait_status WHERE wait_status <> 'wait cmd' AND wait_status <> 'synchronize quit' AND wait_status <> 'none' GROUP BY 1,2 ORDER BY 3 DESC limit 50;
I/O瓶頸時常見的主要狀態(tài)如下表所示。
表1 I/O常見狀態(tài) Wait status
Wait event
wait io:等待I/O完成。
- BufFileRead:從臨時文件中讀取數(shù)據(jù)到指定buffer。
- BufFileWrite:向臨時文件中寫入指定buffer中的內(nèi)容。
- DataFileRead:同步讀取表數(shù)據(jù)文件。
- DataFileWrite:向表數(shù)據(jù)文件寫入內(nèi)容。
- ......
acquire lwlock:等待獲取輕量級鎖。
WALWriteLock:用于避免并發(fā)WAL寫盤。
wait wal sync:等待特定LSN的wal log完成到備機的同步。
NA
wait data sync:等待完成數(shù)據(jù)頁到備機的同步。
NA
Material | Material - write file:當前是Material算子,write file表示Material算子正在將數(shù)據(jù)寫入磁盤。
NA
- 獲取高I/O消耗的SQL。
先通過OS命令識別消耗高的線程,然后結合DWS的線程號信息找到消耗高的業(yè)務SQL,獲取工具和操作方法請下載iowatcher。
場景1:列存小CU膨脹
某業(yè)務SQL查詢出390871條數(shù)據(jù)需43248ms,分析計劃主要耗時在Cstore Scan。

Cstore Scan的詳細信息中,每個DN掃描出2w左右的數(shù)據(jù),但是掃描了有數(shù)據(jù)的CU(CUSome)155079個,沒有數(shù)據(jù)的CU(CUNone)156375個,說明當前小CU、未命中數(shù)據(jù)的CU極多,即CU膨脹嚴重。

觸發(fā)因素:對列存表(尤其是分區(qū)表)進行高頻小批量導入會造成CU膨脹。
處理方法
- 列存表的數(shù)據(jù)入庫方式修改為攢批入庫,單分區(qū)單批次入庫數(shù)據(jù)量需大于DN個數(shù)*6W。
- 如果因業(yè)務原因無法攢批入庫,則需定期VACUUM FULL此類高頻小批量導入的列存表。
- 當小CU膨脹很快時,頻繁VACUUM FULL也會消耗大量I/O,甚至加劇整個系統(tǒng)的I/O瓶頸,此場景建議修改列存表為行存表(CU長期膨脹嚴重的情況下,列存的存儲空間優(yōu)勢和順序掃描性能優(yōu)勢將不復存在)。
場景2:臟數(shù)據(jù)&數(shù)據(jù)清理
某業(yè)務SQL總執(zhí)行時間2.519s,其中Scan占了2.516s,同時該表的掃描最終只掃描到0條符合條件數(shù)據(jù),過濾了20480條數(shù)據(jù),即總共掃描了20480+0條數(shù)據(jù)卻消耗了2s+,掃描時間與掃描數(shù)據(jù)量嚴重不符,此現(xiàn)象可判斷為由于臟數(shù)據(jù)多從而影響掃描和I/O效率。

查看表臟頁率為99%,VACUUM FULL后性能優(yōu)化到100ms左右。

觸發(fā)因素:表頻繁執(zhí)行UPDATE/DELETE導致臟數(shù)據(jù)過多,且長時間未VACUUM FULL清理。
處理方法
- 對頻繁UPDATE/DELETE產(chǎn)生臟數(shù)據(jù)的表,定期VACUUM FULL,因大表的VACUUM FULL也會消耗大量I/O,因此需要在業(yè)務低峰時執(zhí)行,避免加劇業(yè)務高峰期I/O壓力。
- 當臟數(shù)據(jù)產(chǎn)生很快,頻繁VACUUM FULL也會消耗大量I/O,甚至加劇整個系統(tǒng)的I/O瓶頸,這時需要考慮臟數(shù)據(jù)的產(chǎn)生是否合理。針對頻繁DELETE的場景,可以考慮如下方案:
- 全量DELETE修改為TRUNCATE或者使用臨時表替代。
- 定期DELETE某時間段數(shù)據(jù),使用分區(qū)表并使用TRUNCATE或DROP分區(qū)替代。
場景3:表存儲傾斜
例如表Scan的A-time中,max time DN執(zhí)行耗時6554ms,min time DN耗時0s,DN之間掃描差異超過10倍以上,這種集合Scan的詳細信息,基本可以確定為表存儲傾斜導致。

通過table_distribution發(fā)現(xiàn)所有數(shù)據(jù)傾斜到了dn_6009單個DN,修改分布列使得表存儲分布均勻后,max dn time和min dn time基本維持在相同水平400ms左右,Scan時間從6554ms優(yōu)化到431ms。

觸發(fā)因素:分布式場景,表分布列選擇不合理會導致存儲傾斜,同時導致DN間壓力失衡,單DN I/O壓力大,整體I/O效率下降。
解決辦法:修改表的分布列使表的存儲分布均勻,分布列選擇原則參見選擇分布列。
場景4:無索引、有索引不走
某一次點查詢,Seq Scan掃描需要3767ms,因涉及從4096000條數(shù)據(jù)中獲取8240條數(shù)據(jù),符合索引掃描的場景(海量數(shù)據(jù)中尋找少量數(shù)據(jù)),在對過濾條件列增加索引后,計劃依然是Seq Scan而沒有走Index Scan。

對目標表ANALYZE后,計劃能夠自動選擇索引,性能從3s+優(yōu)化到2ms+,極大降低I/O消耗。

常見場景:行存大表的查詢場景,從大量數(shù)據(jù)中訪問極少數(shù)據(jù),沒走索引掃描而是走順序掃描,導致I/O效率低,不走索引常見有兩種情況:
- 過濾條件列上沒建索引。
- 有索引但是計劃沒選索引掃描。
觸發(fā)因素:
- 常用過濾條件列沒有建索引。
- 表中數(shù)據(jù)因執(zhí)行DML操作后產(chǎn)生數(shù)據(jù)變化未及時ANALYZE,導致優(yōu)化器無法選擇索引掃描計劃,ANALYZE介紹參見ANALYZE。
處理方式:
- 對行存表常用過濾列增加索引,索引基本設計原則:
- 索引列選擇distinct值多,且常用于過濾條件,過濾條件多時可以考慮建組合索引,組合索引中distinct值多的列排在前面,索引個數(shù)不宜超過3個。
- 大量數(shù)據(jù)帶索引導入會產(chǎn)生大量I/O,如果該表涉及大量數(shù)據(jù)導入,需嚴格控制索引個數(shù),建議導入前先將索引刪除,導入完成后再重新建索引。
- 對頻繁做DML操作的表,業(yè)務中加入及時ANALYZE,主要場景:
- 表數(shù)據(jù)從無到有。
- 表頻繁進行INSERT/UPDATE/DELETE。
- 表數(shù)據(jù)即插即用,需要立即訪問且只訪問剛插入的數(shù)據(jù)。
場景5:無分區(qū)、有分區(qū)不剪枝
例如某業(yè)務表經(jīng)常使用createtime時間列作為過濾條件獲取特定時間數(shù)據(jù),對該表設計為分區(qū)表后沒有走分區(qū)剪枝(Selected Partitions數(shù)量多),Scan花了701785ms,I/O效率極低。

在增加分區(qū)鍵createtime作為過濾條件后,Partitioned scan走分區(qū)剪枝(Selected Partitions數(shù)量極少),性能從700s優(yōu)化到10s,I/O效率極大提升。

常見場景:按照時間存儲數(shù)據(jù)的大表,查詢特征大多為訪問當天或者某幾天的數(shù)據(jù),這種情況應該通過分區(qū)鍵進行分區(qū)剪枝(只掃描對應少量分區(qū))來極大提升I/O效率,不走分區(qū)剪枝常見的情況有:
- 未設計成分區(qū)表。
- 設計了分區(qū)沒使用分區(qū)鍵做過濾條件。
- 分區(qū)鍵做過濾條件時,對列值有函數(shù)轉(zhuǎn)換。
觸發(fā)因素:未合理使用分區(qū)表和分區(qū)剪枝功能,導致掃描效率低。
處理方式:
- 對按照時間特征存儲和訪問的大表設計成分區(qū)表。
- 分區(qū)鍵一般選離散度高、常用于查詢過濾條件中的時間類型的字段。
- 分區(qū)間隔一般參考高頻的查詢所使用的間隔,需要注意的是針對列存表,分區(qū)間隔過?。ɡ绨葱r)可能會導致小文件過多的問題,一般建議最小間隔為按天。
場景6:行存表求count值
某行存大表頻繁全表count(指不帶過濾條件或者過濾條件過濾很少數(shù)據(jù)的count),其中Scan花費43s,持續(xù)占用大量I/O,此類作業(yè)并發(fā)起來后,整體系統(tǒng)I/O持續(xù)100%,觸發(fā)I/O瓶頸,導致整體性能慢。

對比相同數(shù)據(jù)量的列存表(A-rows均為40960000),列存的Scan只花費14ms,I/O占用極低。

觸發(fā)因素:行存表因其存儲方式的原因,全表scan的效率較低,頻繁的對大表全表掃描,導致I/O持續(xù)占用。
解決辦法:
- 業(yè)務側審視頻繁全表count的必要性,降低全表count的頻率和并發(fā)度。
- 如果業(yè)務類型符合列存表,則將行存表修改為列存表,提高I/O效率。
場景7:行存表求max值
計算某行存表某列的max值,花費了26772ms,此類作業(yè)并發(fā)起后,整體系統(tǒng)I/O持續(xù)100%,觸發(fā)I/O瓶頸,導致整體性能慢。

針對max列增加索引后,語句耗時從26s優(yōu)化到32ms,極大減少I/O消耗。

觸發(fā)因素:行存表max值逐個scan符合條件的值來計算max,當scan的數(shù)據(jù)量很大時,會持續(xù)消耗I/O。
解決辦法:給max列增加索引,憑借B-Tree索引數(shù)據(jù)有序存儲的特征,加速掃描過程,降低I/O消耗。
場景8:大量數(shù)據(jù)帶索引導入
某業(yè)務場景數(shù)據(jù)往DWS同步時,延遲嚴重,集群整體I/O壓力大。

后臺查看等待視圖有大量wait wal sync和WALWriteLock狀態(tài),均為xlog同步狀態(tài)。

觸發(fā)因素:大量數(shù)據(jù)帶索引(一般超過3個)導入(insert/copy/merge into)會產(chǎn)生大量xlog,導致主備同步慢,備機長期Catchup,整體I/O利用率飆高。
解決方案:
- 嚴格控制每張表的索引個數(shù),建議3個以內(nèi)。
- 大量數(shù)據(jù)導入前先將索引刪除,導入完成后再重新建索引。
場景9:行存大表首次查詢
某業(yè)務場景出現(xiàn)備DN持續(xù)catchup,I/O壓力大,觀察某個SQL等待視圖在wait wal sync。

排查業(yè)務發(fā)現(xiàn)某查詢語句執(zhí)行時間較長,執(zhí)行kill命令后恢復。
觸發(fā)因素:行存表大量數(shù)據(jù)入庫后,首次查詢觸發(fā)page hint產(chǎn)生大量X LOG ,觸發(fā)主備同步慢及大量I/O消耗。
解決措施:
- 對該類一次性訪問大量新數(shù)據(jù)的場景,修改行存表為列存表。
- 可關閉wal_log_hints和enable_crc_check參數(shù)(不推薦該方式,因故障期間有數(shù)據(jù)丟失風險)。
場景10:小文件多IOPS高
某業(yè)務執(zhí)行過程中,整個集群IOPS飆高,另外當出現(xiàn)集群故障后,長期Building不成功,IOPS飆高,相關表信息如下:
SELECT relname,reloptions,partcount FROM pg_class c INNER JOIN ( SELECT parentid,count(*) AS partcount FROM pg_partition GROUP BY parentid ) s ON c.oid = s.parentid ORDER BY partcount DESC;

觸發(fā)因素:某業(yè)務庫大量列存多分區(qū)(3000+)的表,導致小文件巨多(單DN文件2000w+),訪問效率低,故障恢復Building極慢,同時Building也消耗大量IOPS,反向影響業(yè)務性能。
解決辦法:
- 整改列存分區(qū)間隔,減少分區(qū)個數(shù)來降低文件個數(shù)。
- 列存表修改為行存表,行存的存儲特征決定其文件個數(shù)不會像列存般膨脹嚴重。
小結
通過前面的場景總結得出,提升I/O使用效率可分為兩個維度,即提升I/O的存儲效率和計算效率(又稱訪問效率)。
- 提升存儲效率包括整合小CU、減少臟數(shù)據(jù)、消除存儲傾斜等。
- 提升計算效率包括分區(qū)剪枝、索引掃描等,可根據(jù)實際業(yè)務場景靈活處理。
DWS性能優(yōu)化常見問題
更多常見問題 >>-
新一代、全場景數(shù)據(jù)倉庫,一站式分析,性能、容量無限擴展。守護高價值數(shù)據(jù)、創(chuàng)享高價值分析,企業(yè)數(shù)字化轉(zhuǎn)型堅實伙伴。 DWS可靠保護數(shù)據(jù)庫中存儲的數(shù)據(jù),確保數(shù)據(jù)安全、完整、可用。
-
數(shù)據(jù)倉庫服務(Data Warehouse Service,簡稱DWS)是一種基于公有云基礎架構和平臺的在線數(shù)據(jù)處理數(shù)據(jù)庫,提供即開即用、可擴展且完全托管的分析型數(shù)據(jù)庫服務。DWS是基于華為融合數(shù)據(jù)倉庫GaussDB產(chǎn)品的云原生服務,兼容標準ANSI SQL 99和SQL 2003,同時兼容PostgreSQL/Oracle數(shù)據(jù)庫生態(tài),為各行業(yè)PB級海量大數(shù)據(jù)分析提供有競爭力的解決方案。
-
數(shù)據(jù)倉庫DWS將OBS上存儲的結構化數(shù)據(jù)映射為外部表,從而利用數(shù)據(jù)庫SQL引擎的能力對OBS上的數(shù)據(jù)進行分析。在數(shù)據(jù)分散的情況下, 通過跨集群協(xié)同分析, 支撐周期性業(yè)務分析, 無需做全量數(shù)據(jù)搬移和轉(zhuǎn)化, 提升分析效率
-
數(shù)據(jù)倉庫服務(Data Warehouse Service,簡稱DWS)是一種即開即用、安全可靠的在線數(shù)據(jù)倉庫服務,為用戶提供海量數(shù)據(jù)的存儲、挖掘和分析能力。
-
數(shù)據(jù)倉庫服務(Data Warehouse Service,簡稱DWS)是完全托管的企業(yè)級云上數(shù)據(jù)倉庫服務,具備免運維、在線擴展、高效的多源數(shù)據(jù)加載能力,兼容PostgreSQL生態(tài)。助力企業(yè)經(jīng)濟高效地對海量數(shù)據(jù)進行在線分析,實現(xiàn)數(shù)據(jù)快速變現(xiàn)。
-
數(shù)據(jù)倉庫服務是一種基于公有云基礎架構和平臺的在線數(shù)據(jù)處理數(shù)據(jù)庫,提供即開即用、可擴展且完全托管的分析型數(shù)據(jù)庫服務
更多相關專題
增值電信業(yè)務經(jīng)營許可證:B1.B2-20200593 | 域名注冊服務機構許可:黔D3-20230001 | 代理域名注冊服務機構:新網(wǎng)、西數(shù)