All Products
Search
Document Center

MaxCompute:Tipe data VECTOR

Last Updated:Aug 23, 2026

Tipe data VECTOR memungkinkan Anda melakukan encoding dan memproses vektor secara efisien. Tipe ini mendukung aplikasi pencarian dan pengambilan vektor semantik, seperti aplikasi berbasis RAG, serta operasi vektor umum yang digunakan dalam beban kerja pemrosesan vektor.

Sintaksis tipe data

Gunakan sintaksis berikut untuk menentukan tipe data VECTOR:

VECTOR( FLOAT <type>, <dimension> )

-- Mendefinisikan vektor floating-point berdimensi 768
VECTOR(FLOAT, 768)
  • type: Tipe data elemen vektor. Saat ini, hanya FLOAT yang didukung.

  • dimension: Dimensi vektor. Nilainya harus merupakan kelipatan positif dari 32, dalam rentang [32, 4096]. Contoh nilai yang valid antara lain 32, 64, 96, dan 128.

Batasan

  • Kolom VECTOR tidak dapat digunakan sebagai PRIMARY KEY atau CLUSTER KEY.

  • Kolom VECTOR tidak dapat digunakan sebagai kunci dalam klausa ORDER BY, GROUP BY, atau JOIN.

  • Tipe data VECTOR tidak mendukung operasi aritmetika (seperti +, -, *, /, %), operasi perbandingan (seperti =, >, <), atau fungsi agregat (seperti SUM, MIN, MAX, AVG, dan MEDIAN).

  • Hanya mesin SQL MaxCompute yang mendukung tipe data VECTOR.

  • Anda dapat menggunakan tipe data VECTOR melalui local client (odpscmd), Python SDK, dan DataWorks.

Sintaksis SQL

SET

Untuk menggunakan tipe data VECTOR, atur flag berikut:

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

DDL

Anda dapat menyimpan data vektor langsung di tabel MaxCompute:

-- Membuat tabel dengan kolom VECTOR
CREATE OR REPLACE TABLE products (
  description_embedding VECTOR(FLOAT, 32)
);

DML

  • Ada dua cara utama untuk membuat data VECTOR:

    • Lakukan cast dari tipe ARRAY<FLOAT> ke tipe VECTOR. Saat mengonversi data, sistem secara otomatis memeriksa apakah dimensi array sesuai dengan dimensi vektor target.

    • Gunakan AI_EMBEDDING untuk langsung menghasilkan data bertipe VECTOR.

  • Contoh

    -- Anda dapat melakukan cast eksplisit atau implisit terhadap suatu ARRAY. Dimensi array harus sesuai dengan dimensi VECTOR target.
    INSERT INTO products select CAST(array(1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0) as VECTOR(FLOAT, 32));
    
    SELECT * FROM products;
    -- Result
    +-----------------------+
    | description_embedding |
    +-----------------------+
    | [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0] |
    +-----------------------+

Fungsi VECTOR

Fungsi vektor berikut saat ini didukung:

VECTOR_SEARCH, L2_DISTANCE, INNER_PRODUCT_DISTANCE, dan COSINE_DISTANCE.

VECTOR INDEX

Untuk meningkatkan efisiensi pengambilan vektor berskala besar, MaxCompute mendukung pembuatan indeks vektor pada bidang VECTOR guna mengaktifkan kueri approximate nearest neighbor (ANN) yang efisien. Untuk informasi selengkapnya, lihat VECTOR INDEX.