1. 程式人生 > >大廠運維必備技能:PB級資料倉庫效能調優

大廠運維必備技能:PB級資料倉庫效能調優

摘要:眾所周知,資料量大了之後,效能是大家關注的一點,所以我們在業務開發的時候,特別關注效能,做為一個架構師,必須對效能要了解,要懂。才能設計出高效能的業務系統。

一、GaussDB分散式架構

所謂叢集是將多臺物理伺服器組建成一個邏輯平臺,對外展現一個叢集平臺的形式。

所謂分散式架構是將資料分而治之。以邏輯進行劃分,將資料存放在不同的物理節點。

CN:協調節點 負責接收來自應用的訪問請求,並向客戶端返回執行結果。Coordinator負責分解任務,並排程任務分片在DataNode上並行執行。

CN:SQL語句的解析和任務規劃,把具體的任務下發給DN結構

GTM:生成和維護全域性事務ID、事務快照、時間戳等需要全域性唯一的資訊。

DN:資料節點,負責儲存業務資料(支援行存、列存、混合儲存)、執行資料查詢任務以及向Coordinator返回執行結果。【不單儲存還負責計算】

一臺物理機【2-4個DN】

Coorinator做任務的規劃 分發,規劃完之後,把具體的任務拋給計算節點。

Crew3 Worker1和Crew3 Worker2就是任務樹中的葉節點就是資料的掃描任務,接受下級任務的資料輸入,向上級任務輸出資料。

Crew2 Worker1和Crew2 Worker2中間的節點就是各種資料運算任務,如Hash計算,Join操作,聚集操作和排序操作。接受下級任務的資料輸入,向上級任務輸出資料。

在非阻塞的任務流程中,上級任務不需要等待下級完成全部任務返回整體結果級才啟動,下級任務生成一條結果記錄就可以傳遞給上級。

阻塞情況下,上級任務需要等待下級任務完成所有資料處理工作。

二、調優原則與流程

說白了,就是少花錢,多辦事,資源利用最大化,比如我們在點查詢場景的時候儘量使用索引掃描。如果實在不能索引掃描,我們會讀取每一條元組和點查詢條件進行匹配。

在沒有資源瓶頸的情況下,儘量充分利用資源,比如在資料排序的時候,儘量使資料不下盤,在記憶體進行排序。因為在磁碟中讀寫的速度,肯定是不如記憶體的。

  • 靜態調優一般架構師會根據業務特徵確定叢集部署方案,表定義,行列存,複製/雜湊分佈等設計的過程。方案和表一般確定下來,後期如果要改動,代價很大。
  • 可能作為有經驗的人來說,收集統計資訊,sql改寫,資料庫引數配置,plan hint等手段基本都做過,它屬於執行態調優。但是沒有經驗的人可能只知道理論,不知道如何操作,久而久之,理論都忘記了。

  1. 防止單點(單個DN)資料多, 導致整個叢集有效容量下降。
  2. 防止單點掃描,壓力過大。
  3. 通過,分割槽,索引,區域性聚簇實現。(後面會有實踐操作)
  4. 選擇關聯列,做為分佈列,比如用id關聯,將id做為分佈列,這樣查詢的時候,避免跨計算接點的資料流動,減少網路壓力。
  5. 區域性聚簇是列儲存下獨有的手段,通過把表資料按照指定列排序後儲存,配合稀疏索引,可以實現表資料的快速掃描。【華為獨有的科技】

三、伴隨場景介紹

發現一個犯罪嫌疑人,還有他的車輛,我怎麼通過資料探勘來找到犯罪團伙的場景。

四、調優實踐

Plan Information:在sql語句執行的時候,perf語句會包含非常多的執行動作,也會消耗很多的資源,我們通過perf把這些資訊都記錄下來。常用的是前2個。Plan 執行過程中每個運算元的執行概要資訊。比如:scan,join等。另外一個是運算元,with資訊。

Predicate Information: 運算元資訊,每條資料掃描,伴隨的filter條件,join伴隨的關聯欄位。

1.會對資料類似於分割槽,然後進行區域性排序

2.並通過元資料資訊記錄這個區間的最大值和最小值。

CUNone:0我忽略了多少個數據段

CUSome:6我需要掃描多少個數據段

Scan的效能提升的兩個主要策略

1)減少實際IO

a)索引

b)pck

c)分割槽

2)Scan壓力均衡

a)調整分佈列

資料批量入庫的時候,按欄位做一些排序。排完序之後,再入庫。

匯入表資料和統計資訊。

Time:10.422ms

不包含PCK大概花了23.902ms

pck建立的場景和索引的建立場景是有點像的。

nestloop的在特定場景下,效能會非常好,比如小表join大表的時候,

hashjoin在大多數場景下,效能最優。大表join大表

hash join一般期望資料量小的表做內表,

hash join:137ms

merge join:775ms

nestloop:1137.9ms

問題總結:

1.truncate和delete快

答: truncate 整個檔案都不讀 delete標記元組 刪除

2.PCK對入庫的資料做區域性排序影響較小。

3.MPP資料庫效能瓶頸在哪些?

答:資料庫效能瓶頸在具體資料處理業務場景,分散式架構場景下,業務CPU吃滿了,瓶頸在CPU,記憶體吃滿了,瓶頸在記憶體。

採集於華雲資料倉庫GaussDB DWS_資料倉庫效能調優-version 5.0-華哥

 

點選關注,第一時間瞭解華為雲新鮮技