AnalyticDB for MySQL推出了湖儲存加速(LakeCache)功能,能夠將OSS中的熱點檔案快取在NVMe SSD高效能儲存介質上,提高OSS資料的讀取效率。該功能主要適用於需要大量頻寬,且資料重複讀的情境,例如,多個分析人員需要查詢同一份資料。本文主要介紹湖儲存加速功能的優勢、應用情境以及使用方法。
前提條件
叢集的產品系列為湖倉版。
功能介紹
功能原理
流程介紹如下:
用戶端對OSS的讀請求會被轉寄給湖儲存加速器,串連LakeCache Master節點,請求檔案中繼資料。
LakeCache Master將檔案中繼資料返回給LakeCache Client。
LakeCache Client根據中繼資料資訊,向LakeCache Worker發起請求,擷取OSS資料:
若LakeCache Worker(緩衝空間)存在目標檔案,則直接將檔案返回給用戶端。
若LakeCache Worker(緩衝空間)沒有目標檔案,湖儲存加速器會向OSS請求目標檔案。湖儲存加速器將檔案資料返回給用戶端,並將目標檔案緩衝到湖儲存加速器中。
功能優勢
毫秒級延遲
湖儲存加速器的NVMe SSD介質可以為業務提供的毫秒級讀延遲。
高吞吐能力
湖儲存加速器的頻寬隨緩衝空間大小線性增長,最大可提供數百Gb/s的突發吞吐能力。
高吞吐密度
湖儲存加速器可以為少量資料提供極大的吞吐能力,可以滿足少量熱資料的突發讀取需求。
Auto Scaling
湖儲存加速器緩衝空間可根據業務需求手動擴容或縮容,有效避免資源浪費,降低使用成本。緩衝空間最小為10 GB,最大為10 TB。
存算分離
湖儲存加速器相較於計算節點上的緩衝空間,可以脫離計算節點獨立且線上調整空間。
資料一致
當OSS上的檔案被更新時,加速器能自動識別並緩衝更新後的檔案,以確保計算引擎讀取的都是更新後的資料。
效能指標及緩衝策略
參數 | 說明 |
加速器頻寬 | 加速器頻寬計算公式為: 例如,湖儲存加速器緩衝空間配置為10 TB,則讀頻寬為(5*10)Gb/s=50 Gb/s。 |
湖儲存加速器緩衝空間 | 取值範圍為10 GB~10 TB。湖儲存加速器根據配置的緩衝空間大小,為加速器上緩衝的資料提供吞吐頻寬。每TB的加速器空間提供5 Gbps的最大頻寬。加速器提供的吞吐頻寬為OSS標準頻寬之外的效能,不受OSS標準頻寬能力限制。 如果您的業務情境需要更高的容量,請提交工單聯絡支援人員提升容量。 |
緩衝淘汰策略 | 當使用的緩衝空間超過了容量,將採用LRU(Least Recently Used)緩衝淘汰策略,淘汰快取資料。LRU緩衝淘汰策略用於確保最近經常被訪問的資料不被刪除,長時間不被訪問的資料被優先移除,從而達到高效利用緩衝空間的目的。 |
效能表現
AnalyticDB for MySQL基於TPC-H測試集,對開啟湖儲存加速和直接存取OSS儲存空間兩種方法進行了測試。在本次測試中,開啟湖儲存加速功能,資料訪問效率能提升2.7倍。詳細測試結果請參見:
類型 | 湖儲存加速器緩衝空間 | 資料集大小 | Spark資源規格 | 查詢時間長度 |
開啟湖儲存加速 | 12 TB | TPC-H 10TB 測試集 | medium規格,2 Core 8 GB | 19578s |
直接存取OSS儲存空間 | 無 | TPC-H 10TB 測試集 | medium規格,2 Core 8 GB | 7219s |
費用說明
開通湖儲存加速功能後,湖儲存加速器緩衝空間將隨用隨付。計費詳情,請參見湖倉版產品定價。
注意事項
僅部分地區支援湖儲存加速功能:華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)、新加坡、美國(維吉尼亞)。
重要如果您需要在其他地區使用湖儲存加速功能,請提交工單聯絡支援人員。
當緩衝硬體發生故障時,資料查詢不會中斷和異常,但查詢速度會下降。緩衝資料需要從OSS重新預熱,預熱完成後查詢速度將會恢複。
當湖儲存加速器配置的緩衝空間佔用達到上限時,湖儲存加速器會根據快取檔案的熱度,將緩衝空間中的低熱度的檔案替換為高熱度檔案。如果您不想替換已儲存在緩衝空間中的檔案,請手動擴容湖儲存加速器的緩衝空間,以增加緩衝空間。
開通湖儲存加速
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版頁簽下,單擊目的地組群ID。
進入集群資訊頁面,在配寘資訊地區,單擊湖儲存加速後的設定。
在湖儲存加速對話方塊中,開啟湖儲存加速開關,並設定緩衝空間。
單擊確定。
使用湖儲存加速
開通湖儲存加速後,在讀取OSS資料時,可以通過在Spark作業配置中配置spark.adb.lakecache.enabled
參數,實現OSS資料的讀加速。樣本如下:
Spark SQL 開發
-- Here is just an example of using LakeCache. Modify the content and run your spark program.
SET spark.adb.lakecache.enabled=true;
-- Here are your sql statements
SHOW databases;
Spark Jar開發
{
"comments": [
"-- Here is just an example of using LakeCache. Modify the content and run your spark program."
],
"args": ["oss://testBucketName/data/readme.txt"],
"name": "spark-oss-test",
"file": "oss://testBucketName/data/example.py",
"conf": {
"spark.adb.lakecache.enabled": "true"
}
}
如果您需要在使用XIHE引擎時同時使用湖儲存加速器,請提交工單聯絡支援人員。
查看湖儲存加速的監控資訊
開通湖儲存加速後,您可以在CloudMonitor控制台查看提交的Spark應用是否已成功使用湖加速功能,也可以查看湖儲存加速器緩衝空間讀取的資料量等資訊。具體操作如下。
在左側導覽列,選擇
。滑鼠懸浮在雲原生資料倉儲AnalyticDB MySQL版卡片上,單擊雲原生資料倉儲AnalyticDB MySQL版3.0 - 湖倉版。
單擊目的地組群ID對應操作列的監控圖表。
單擊LakeCache指標頁簽,查詢監控詳情。
監控指標詳情如下:
監控指標
監控項說明
LakeCache快取命中率(%)
計算方法為:命中緩衝的讀請求數/讀請求總數。
LakeCache緩衝使用量(B)
已使用的緩衝空間(位元組)。
LakeCache歷史累計讀資料總量(B)
通過緩衝空間讀取的資料總量(位元組)。