全部產品
Search
文件中心

MaxCompute:VECTOR資料類型

更新時間:Aug 05, 2026

通過使用VECTOR資料類型,能夠高效地編碼和處理向量。此資料類型支援語義向量搜尋和檢索應用,如基於RAG的應用,以及向量處理應用中常見的向量操作。

資料類型文法

使用以下文法指定 VECTOR 類型

VECTOR( FLOAT <type>, <dimension> )

-- 定義一個 768 維浮點型向量
VECTOR(FLOAT, 768)
  • type:向量元素的資料類型。當前僅支援 FLOAT類型。

  • dimension:向量維度,必須為正整數,取值範圍為[1, 4096]

使用限制

  • VECTOR 類型的列不支援作為 PRIMARY KEYCLUSTER KEY

  • VECTOR 類型的列不支援作為ORDER BYGROUP BYJOIN的KEY。

  • VECTOR 類型資料暫不支援算術運算(如 +、-、*、/、%)、比較操作(如 =、>、<)以及彙總函式計算(如 SUM、MIN、MAX、AVG、MEDIAN)。

  • 僅支援通過 MaxCompute SQL 引擎處理。

  • 開發工具僅支援本地用戶端(odpscmd)Python SDKDataWorks

SQL文法

SET

使用VECTOR資料類型,需設定如下flag:

SET odps.sql.type.system.odps2=true;
SET odps.sql.type.vector.enable=true;

DDL

支援在 MaxCompute 表中直接儲存向量資料:

-- 建立一個含VECTOR欄位的表
CREATE OR REPLACE TABLE products (
  description_embedding VECTOR(FLOAT, 3)
);

DML

  • 構造 VECTOR 類型資料主要有兩種方式。

    • 支援ARRAY<FLOAT>類型 CAST 為VECTOR類型。轉換時,系統會自動校正ARRAY維度和目標VECTOR類型維度定義是否匹配。

    • 支援使用AI_EMBEDDING直接產生 VECTOR 類型資料。

  • 使用樣本

    -- 支援通過ARRAY類型顯示或隱式轉換,需要校正array 維度和目標VECTOR類型維度定義是否匹配
    INSERT INTO products select CAST(array(1.1,2.2,3.3) as VECTOR(FLOAT,3));
    
    SELECT * FROM products;  
    -- 返回結果
    +-----------------------+
    | description_embedding |
    +-----------------------+
    | [1.1, 2.2, 3.3]       |
    +-----------------------+

VECTOR函數

目前支援的VECTOR函數有:

VECTOR_SEARCHL2_DISTANCEINNER_PRODUCT_DISTANCECOSINE_DISTANCE

VECTOR INDEX

為進一步提升大規模向量檢索效率,MaxCompute 支援基於 VECTOR 欄位建立向量索引(Vector Index),實現高效的近似最近鄰(ANN)查詢。詳細資料請參見VECTOR INDEX