Tous les produits
Search
Centre de documentation

MaxCompute:Type de données VECTOR

Dernière mise à jour :Aug 10, 2026

Le type de données VECTOR permet d'encoder et de traiter efficacement des vecteurs. Il prend en charge la recherche sémantique par vecteur et les applications de récupération, telles que les applications fondées sur le RAG (Retrieval-Augmented Generation), ainsi que les opérations vectorielles courantes utilisées dans les charges de travail de traitement vectoriel.

Syntaxe du type de données

Utilisez la syntaxe suivante pour spécifier le type de données VECTOR :

VECTOR( FLOAT <type>, <dimension> )

-- Define a 768-dimension floating-point vector
VECTOR(FLOAT, 768)
  • type : type de données des éléments du vecteur. Actuellement, seul le type FLOAT est pris en charge.

  • dimension : dimension du vecteur. Elle doit être un multiple positif de 32, compris dans la plage [32, 4096]. Par exemple, 32, 64, 96 et 128 sont des valeurs valides.

Limitations

  • Une colonne VECTOR ne peut pas servir de PRIMARY KEY ni de CLUSTER KEY.

  • Une colonne VECTOR ne peut pas être utilisée comme clé dans les clauses ORDER BY, GROUP BY ou JOIN.

  • Le type de données VECTOR ne prend pas en charge les opérations arithmétiques (telles que +, -, *, /, %), les opérations de comparaison (telles que =, >, <) ni les fonctions d'agrégation (telles que SUM, MIN, MAX, AVG et MEDIAN).

  • Seul le moteur SQL MaxCompute prend en charge le type de données VECTOR.

  • Vous pouvez manipuler le type de données VECTOR à l'aide du client local (odpscmd), du SDK Python et de DataWorks.

Syntaxe SQL

SET

Pour utiliser le type de données VECTOR, définissez les indicateurs suivants :

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

DDL

Vous pouvez stocker directement des données VECTOR dans des tables MaxCompute :

-- Create a table with a VECTOR column
CREATE OR REPLACE TABLE products (
  description_embedding VECTOR(FLOAT, 32)
);

DML

  • Il existe deux principales méthodes pour construire des données de type VECTOR.

    • Convertissez le type ARRAY<FLOAT> en type VECTOR. Lors de la conversion, le système vérifie automatiquement si la dimension du tableau correspond à la dimension cible du vecteur.

    • Utilisez la fonction AI_EMBEDDING pour générer directement des données de type VECTOR.

  • Exemple

    -- You can explicitly or implicitly cast an ARRAY. The array's dimension must match the target VECTOR's dimension.
    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] |
    +-----------------------+

Fonctions vectorielles

Les fonctions vectorielles suivantes sont actuellement prises en charge :

VECTOR_SEARCH, L2_DISTANCE, INNER_PRODUCT_DISTANCE et COSINE_DISTANCE.

Index vectoriel

Pour améliorer encore l'efficacité de la récupération vectorielle à grande échelle, MaxCompute permet de créer un index vectoriel sur le champ VECTOR afin d'activer des requêtes efficaces de plus proches voisins approximatifs (ANN). Pour plus d'informations, consultez la rubrique VECTOR INDEX.