全部產品
Search
文件中心

MaxCompute:開放儲存概述

更新時間:Jan 07, 2026

為了更好地融入巨量資料生態,並支援外部引擎訪問MaxCompute中的資料,MaxCompute提供了開放儲存(Storage API)。第三方主Realtime Compute引擎可通過調用Storage API直接存取MaxCompute的底層儲存,從而顯著提升資料訪問和互動效率。

開放儲存介紹

開放儲存(Storage API)是一種資料服務介面,提供了高效、低延遲、安全的資料訪問方式,支援第三方主Realtime Compute訪問MaxCompute的儲存系統,提升了MaxCompute與開源計算引擎和機器學習引擎的整合度和資料處理效率。其中,Spark、StarRocks、Presto和Flink還直接通過Connector訪問儲存在MaxCompute中的資料,更加簡化了資料使用過程,提高了資料訪問效能。架構圖如下:

image

應用情境

開放儲存(Storage API)可應用於資料開放與多引擎計算情境,當企業或開發人員需要在不同的計算架構間靈活切換,或者利用特定引擎的特性處理MaxCompute中的資料時,Storage API可以作為橋樑促進資料流通和處理的多樣化。

關鍵特性

  • 高吞吐:具備列級高效讀取的能力,支援在資料轉送前通過謂詞下推來過濾資料,同時支援Arrow格式。

  • 安全易用:提供Table語義直讀底層儲存,屏蔽儲存細節,同時滿足專案隔離、許可權控制、資料加密等安全性原則。

  • 生態融合:Spark on EMR和StarRocks可直接通過Connector訪問MaxCompute的資料,簡化了計算引擎的整合過程。

適用範圍

  • 第三方引擎訪問MaxCompute時,支援讀取普通表、分區表、聚簇表、Delta Table和物化視圖;不支援讀取MaxCompute的外部表格、邏輯視圖。

  • 不支援讀JSON資料類型。

  • 開放儲存(隨用隨付)每個租戶的請求並發數限制為不超過1000個,每個並發傳輸速率限制為不超過10 MB/s。

資料轉送資源

第三方引擎通過MaxCompute開放儲存進行資料轉送任務時,可選擇使用Data Transmission Service獨享資源群組(訂用帳戶)資源。詳細介紹如下。

資源群組名稱

費用說明

支援地區

使用說明

資料轉送獨享資源費用(訂用帳戶)

訂用帳戶,按購買並發數的數量計費。

  • 華北2(北京)

  • 華東1(杭州)

  • 華東2(上海)

  • 華南1(深圳)

  • 中國香港

  • 印尼(雅加達)

  • 新加坡

  • 美國(矽谷)

  • 美國(維吉尼亞)

  • 日本(東京)

  • 德國(法蘭克福)

購買與使用獨享Data Transmission Service資源群組

资源观测頁面,可查看Data Transmission Service獨享資源群組(訂用帳戶)的使用詳情,請參見資源觀測

使用樣本

Arrow資料類型映射

MaxCompute 開放儲存(Storage API)基於Apache Arrow資料類型,確保資料在儲存和傳輸過程中保持高效的結構化表示。在使用MaxCompute Storage API寫入資料時,不會對資料進行計算或加工處理(如Map資料去重),當儲存引擎無特殊限制時,將保留未經處理資料結構。

MaxCompute與Apache Arrow資料類型映射表,如下所示:

MaxCompute資料類型

Arrow資料類型

TINYINT

Int8Type

SMALLINT

Int16Type

INT

Int32Type

BIGINT

Int64Type

FLOAT

FloatType

DOUBLE

DoubleType

BOOLEAN

BooleanType

DECIMAL

Decimal128Type

說明

MaxCompute DECIMAL類型比Storage API Decimal128Type精度更高:

  • 讀資料情境,MaxCompute DECIMAL類型將轉成arrow decimal(38,18)輸出,溢出時會拋出異常;

  • 寫資料情境,arrow decimal(precision,scale) 會轉為 MaxCompute DECIMAL(38,18) 寫入,要求precision和scale一致;

DECIMAL(precision, scale)

Decimal128Type

STRING

StringType

BINARY

BinaryType

VARCHAR

StringType

CHAR

StringType

DATETIME

TimestampType[1]

TimeUnit為毫秒,timezone為UTC。

TIMESTAMP

TimestampType[2]

TimeUnit為納秒,timezone為UTC。

說明

TIMESTAMP類型支援的範圍範圍更廣,使用Storage API讀寫TIMESTAMP類型資料超出TimestampType精度範圍時,高精度部分的值會被截斷,此時會出現精度丟失的情況。

DATE

Date32Type

INTERVAL_DAY_TIME

DayTimeIntervalType

說明

INTERVAL_DAY_TIME類型支援到納秒,Storage API DayTimeIntervalType類型支援到毫秒,使用Storage API讀寫 INTERVAL_DAY_TIME 資料時,納秒部分資訊會被截斷,此時會出現精度丟失的情況。

INTERVAL_YEAR_MONTH

MonthIntervalType

ARRAY

ListType

MAP

MapType

說明

如果MAP中存在重複Key (Duplicate Key) ,

  • 寫入階段:Storage API不會在資料寫入時處理Map中的重複Key。保留原本的資料結構並寫入儲存。

  • 查詢階段:查詢資料時,SQL引擎通過“後者覆蓋前者”,返回符合Map資料類型Key唯一的語義。

例如:寫入未經處理資料: {'a': 1, 'b': 2, 'a': 3},查詢結果 {'a': 3, 'b': 2}

STRUCT

StructType

JSON

StringType