全部產品
Search
文件中心

AnalyticDB:湖儲存加速(LakeCache)

更新時間:Dec 03, 2024

AnalyticDB for MySQL推出了湖儲存加速(LakeCache)功能,能夠將OSS中的熱點檔案快取在NVMe SSD高效能儲存介質上,提高OSS資料的讀取效率。該功能主要適用於需要大量頻寬,且資料重複讀的情境,例如,多個分析人員需要查詢同一份資料。本文主要介紹湖儲存加速功能的優勢、應用情境以及使用方法。

前提條件

叢集的產品系列為湖倉版

功能介紹

功能原理

流程介紹如下:

  1. 用戶端對OSS的讀請求會被轉寄給湖儲存加速器,串連LakeCache Master節點,請求檔案中繼資料。

  2. LakeCache Master將檔案中繼資料返回給LakeCache Client。

  3. LakeCache Client根據中繼資料資訊,向LakeCache Worker發起請求,擷取OSS資料:

    • 若LakeCache Worker(緩衝空間)存在目標檔案,則直接將檔案返回給用戶端。

    • 若LakeCache Worker(緩衝空間)沒有目標檔案,湖儲存加速器會向OSS請求目標檔案。湖儲存加速器將檔案資料返回給用戶端,並將目標檔案緩衝到湖儲存加速器中。

功能優勢

  • 毫秒級延遲

    湖儲存加速器的NVMe SSD介質可以為業務提供的毫秒級讀延遲。

  • 高吞吐能力

    湖儲存加速器的頻寬隨緩衝空間大小線性增長,最大可提供數百Gb/s的突發吞吐能力。

  • 高吞吐密度

    湖儲存加速器可以為少量資料提供極大的吞吐能力,可以滿足少量熱資料的突發讀取需求。

  • Auto Scaling

    湖儲存加速器緩衝空間可根據業務需求手動擴容或縮容,有效避免資源浪費,降低使用成本。緩衝空間最小為10 GB,最大為10 TB。

  • 存算分離

    湖儲存加速器相較於計算節點上的緩衝空間,可以脫離計算節點獨立且線上調整空間。

  • 資料一致

    OSS上的檔案被更新時,加速器能自動識別並緩衝更新後的檔案,以確保計算引擎讀取的都是更新後的資料。

效能指標及緩衝策略

參數

說明

加速器頻寬

加速器頻寬計算公式為:5*緩衝空間,單位為Gb/s,其中緩衝空間單位為TB。

例如,湖儲存加速器緩衝空間配置為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重新預熱,預熱完成後查詢速度將會恢複。

  • 湖儲存加速器配置的緩衝空間佔用達到上限時湖儲存加速器會根據快取檔案的熱度,將緩衝空間中的低熱度的檔案替換為高熱度檔案。如果您不想替換已儲存在緩衝空間中的檔案,請手動擴容湖儲存加速器的緩衝空間,以增加緩衝空間。

開通湖儲存加速

  1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版頁簽下,單擊目的地組群ID。

  2. 進入集群資訊頁面,在配寘資訊地區,單擊湖儲存加速後的設定

  3. 湖儲存加速對話方塊中,開啟湖儲存加速開關,並設定緩衝空間

  4. 單擊確定

使用湖儲存加速

開通湖儲存加速後,在讀取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應用是否已成功使用湖加速功能,也可以查看湖儲存加速器緩衝空間讀取的資料量等資訊。具體操作如下。

  1. 登入CloudMonitor控制台

  2. 在左側導覽列,選擇雲資源監控 > 雲產品監控

  3. 滑鼠懸浮在雲原生資料倉儲AnalyticDB MySQL版卡片上,單擊雲原生資料倉儲AnalyticDB MySQL版3.0 - 湖倉版

  4. 單擊目的地組群ID對應操作列的監控圖表

  5. 單擊LakeCache指標頁簽,查詢監控詳情。

    監控指標詳情如下:

    監控指標

    監控項說明

    LakeCache快取命中率(%)

    計算方法為:命中緩衝的讀請求數/讀請求總數。

    LakeCache緩衝使用量(B)

    已使用的緩衝空間(位元組)。

    LakeCache歷史累計讀資料總量(B)

    通過緩衝空間讀取的資料總量(位元組)。