全部產品
Search
文件中心

AnalyticDB:湖儲存

更新時間:Aug 01, 2026

AnalyticDB for MySQL提供湖儲存功能,簡化資料湖的構建和儲存管理。湖儲存支援儲存Iceberg、Paimon等類型的結構化表資料和非結構化檔案對象,主要適用於需同時滿足離線批處理和即時分析的情境。本文介紹湖儲存的儲存模式、儲存類型及資源管理操作。

前提條件

叢集的產品系列為企業版、基礎版或湖倉版。

開通湖儲存

湖儲存功能當前處於邀測階段,如需開通,請提交工單聯絡支援人員。

儲存模式

在建立資料湖表前,您需要決定資料的儲存位置。AnalyticDB for MySQL提供兩種儲存模式,在建表時一次性確定,建表後不可變更。

維度

託管湖儲存(內湖)

使用者自有OSS(外湖)

儲存管理

AnalyticDB for MySQL全託管,自動管理底層儲存桶

使用者自行管理OSS Bucket

建表關鍵參數

catalog_type='ADB' + adb_lake_bucket(XIHE SQL);或TBLPROPERTIES ('adb_lake_bucket' = '...') + SET spark.adb.lakehouse.enabled=true(Spark SQL)

LOCATION 'oss://...'

開通方式

需先開通湖儲存

同帳號下無需額外操作

適用情境

新專案,希望簡化營運

已有OSS資料,或需要自主管理儲存

  • 託管湖儲存:資料由AnalyticDB for MySQL自動管理底層儲存桶,使用者通過標準SQL讀寫湖表,無需關心檔案系統、許可權配置或生命週期管理。詳情請參見建立湖儲存。

  • 使用者自有OSS:資料完全存放在使用者指定的同地區OSS Bucket中,建表時通過LOCATION指定OSS路徑即可。

說明

具體建表文法因引擎而異,請參見後續步驟中對應引擎的讀寫文檔。

儲存類型

AnalyticDB for MySQL託管湖儲存提供兩種湖儲存類型,您可以根據業務情境選擇合適的儲存方案。

維度

基礎型

標準型

底層儲存

OSSObject Storage Service

AFS(AnalyticDB Filesystem)高效能物件儲存

訪問協議

OSS API

S3相容協議,額外支援POSIX介面(邀測中)

適用情境

通用資料分析、離線批處理

AI/ML訓練推理、高效能運算、多模資料處理

效能特點

標準吞吐與延遲

高吞吐、低延遲,內建多級緩衝

冷熱分層

不支援

支援,熱資料存放區在AFS,冷資料自動下沉至OSS

開通方式

提交工單

提交工單

基礎型(OSS標準湖儲存)

OSS標準湖儲存基於阿里雲OSSObject Storage Service,適用於大多數通用資料分析和離線批處理情境。建立後,系統會自動在服務帳號下的OSS中建立一個與叢集同地區、且與湖儲存同名的Bucket。

標準型(AFS高效能湖儲存)

AFS(AnalyticDB Filesystem)是相容S3協議的高效能物件儲存,為AnalyticDB for MySQL湖儲存提供高效能資料入湖與持久化能力。AFS適用於對儲存效能有更高要求的情境,例如AI/ML訓練推理、大規模多模資料處理等。

核心能力:

  • S3協議相容:可直接使用AWS SDK、Spark/Flink S3A等標準工具鏈訪問,無需改造現有工具。

  • POSIX介面(邀測中):同一份資料既可通過S3介面訪問,也可通過POSIX掛載訪問,覆蓋訓練、推理等依賴檔案路徑的情境。

  • 冷熱分層:熱資料存放區在AFS中保障高效能訪問,冷資料自動下沉至OSS,統一命名空間對上層應用透明,實現成本與效能的平衡。

  • 安全與許可權:支援基於S3 Policy的細粒度許可權模型,可按Bucket、路徑、操作類型進行最小授權;支援使用者與AccessKey體系,便於多團隊隔離。

POSIX介面

AI/ML訓練和推理鏈路通常依賴POSIX檔案路徑(而非S3 Key)。AFS在S3介面之上額外提供了POSIX介面,主要價值如下:

  • 訓練/推理零改造:Ray運算元、模型checkpoint可直接讀寫掛載點,無需修改為S3 SDK。

  • 同一份資料雙形態訪問:上遊生產管線通過S3寫入,下遊訓練或檢索通過POSIX介面直讀,零拷貝、零搬運。

重要

當前POSIX介面能力處於邀測階段,如需使用請提交工單。

費用說明

注意事項

  • 一個阿里雲帳號在同一地區內最多可建立5個湖儲存。

  • 湖儲存的儲存用量顯示存在延遲,因此無法在資料寫入後立即查看到資料量。

  • 刪除湖儲存時,需要確保已刪除該湖儲存中的所有資料,否則刪除湖儲存操作會報錯。

  • 建立湖儲存後,AnalyticDB for MySQL會自動在其服務帳號下的OSS中,建立一個和AnalyticDB for MySQL叢集同地區、且與湖儲存同名的Bucket。您可以通過添加收藏路徑的方式,在自己阿里雲帳號下的OSS中查看該Bucket。

    點擊查看OSS Bucket的方法

    1. 登入OSS管理主控台。

    2. 在左側導覽列單擊我的收藏路徑後面的添加按鈕。

    3. 在添加收藏路徑對話方塊中選擇添加方式,並填寫地域以及Bucket 名稱。

      添加方式:固定選擇為從其他已授權bucket添加。

      地域:AnalyticDB for MySQL叢集所屬地區。

      Bucket:填寫湖存儲名稱。

  • AnalyticDB for MySQL備份恢複功能不支援湖儲存中的資料。

建立湖儲存

標準型

標準型湖儲存基於AFS高效能物件儲存。建立標準型湖儲存前,您需要先建立儲存叢集,再建立湖儲存。

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

  2. 在左側導覽列單擊數據管理 > 湖存儲管理。

  3. 單擊存儲集群管理頁簽。

  4. 單擊新建集群。

  5. 在彈出的創建集群對話方塊中,存儲類型固定為標準型,設定預留資源大小,(可選)填寫集群描述,然後單擊确定。

    說明

    儲存叢集建立需要一定時間,請等待叢集建立完成後,再進行後續操作。

  6. 單擊Bucket管理頁簽。

  7. 單擊新建Bucket。

  8. 在彈出的新建Bucket對話方塊中,設定以下參數,然後單擊确定。

    • 類型:選擇標準型。

    • 所屬集群:選擇上一步建立的儲存叢集。

    • Bucket名稱:輸入Bucket名稱。Bucket名稱必須全域唯一,建立後無法修改。

    • 數據冗餘類型:選擇同區重疊或本地剩餘。

    • Bucket描述:(可選)輸入Bucket描述,用於區分不同業務情境下的湖儲存。

基礎型

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

  2. 在左側導覽列單擊數據管理 > 湖存儲管理。

  3. 在Bucket管理頁簽下,單擊新建Bucket。

  4. 在彈出的新建Bucket對話方塊中,設定以下參數,然後單擊确定。

    • 類型:選擇基礎型。

    • Bucket名稱:系統自動產生,無需填寫。

    • Bucket描述:(可選)輸入Bucket描述,用於區分不同業務情境下的湖儲存。

    • 數據冗餘類型:選擇同區重疊或本地剩餘。

    重要

    Bucket名稱為系統自動產生,格式為adb-lake-地區ID-任一字元串。Bucket名稱全域唯一,建立後無法修改。

  5. (可選)修改Bucket描述。

    Bucket名稱由系統自動產生,且不能修改。建議修改Bucket描述,以區分不同業務情境下的湖儲存。

    1. 單擊目標Bucket描述列的image按鈕。

    2. 在彈出的修改Bucket描述對話方塊中輸入描述資訊,然後單擊确定。

  6. (可選)新增授權。

    單擊操作列的新增授權,可選擇授權物件類型:RAM使用者或RAM角色。

    說明
    • 唯讀許可權:允許使用者查看湖儲存資料,但不可修改或刪除。

    • 讀寫權限:允許使用者進行資料讀取、寫入和修改操作。

    • 僅主帳號或具有相應許可權的RAM使用者可執行授權操作。

    • 許可權變更即時生效,建議操作前確認授權範圍。

查看串連地址

標準型湖儲存建立完成後,您可在控制台查看相容 S3 協議的串連地址(Endpoint)。

重要
  • 該 Endpoint 為私網串連地址,僅支援阿里雲同 VPC 內訪問,請確保您的 AWS SDK、Spark/Flink S3A 等工具部署在同 VPC 環境下,即可直接使用該地址訪問 AFS 湖儲存。

  • 基礎型湖儲存不支援S3協議,Endpoint列顯示為"-"。

  1. 在左側導覽列單擊數據管理 > 湖存儲管理。

  2. 在Bucket管理頁簽下,查看標準型Bucket的Endpoint列,即為S3串連地址。

查詢湖儲存資料量

  1. 在左側導覽列單擊數據管理 > 湖存儲管理。

  2. 在目標湖儲存的儲存用量中查看資料量。

    重要

    湖儲存的儲存用量顯示存在延遲,因此無法在資料寫入後立即查看到資料量。

刪除湖儲存

  1. 在左側導覽列單擊數據管理 > 湖存儲管理。

  2. 單擊目標湖儲存操作列的刪除。

  3. 在彈出的删除對話方塊中單擊确定。

    重要

    刪除湖儲存時,需要確保已刪除該湖儲存中的所有資料,否則刪除湖儲存操作會報錯。

後續步驟

設定預設表格式(僅Spark SQL)

重要

該功能僅適用於Spark SQL引擎。

您可以通過資料庫屬性設定預設的表格式,使該資料庫下建立的表自動採用指定格式,無需每次建表時單獨聲明。

  1. 在Spark Job資源群組、Interactive資源群組或提交的作業中,設定如下參數:

    spark.sql.adb.sources.extractProviderFromDBProperties.enabled true
  2. 建立資料庫時,通過DBPROPERTIES指定'storage.format'為以下格式之一:delta、iceberg、parquet、orc。樣本如下:

    CREATE DATABASE IF NOT EXISTS db_storage_format 
    LOCATION 'oss://path/to/db/' 
    WITH DBPROPERTIES ('storage.format'='delta');

    執行以上語句後,在db_storage_format庫下建立的表預設為delta類型。如您建表時通過using ${tableFormat}顯式指定表類型,則優先以顯式指定的表類型為準。

資料湖表操作

按您選擇的引擎和湖格式,參見對應文檔完成建表與讀寫操作: