Tous les produits
Search
Centre de documentation

OpenSearch:Source de données MaxCompute + API

Dernière mise à jour :Aug 20, 2026

Cette rubrique explique comment ajouter une table utilisant MaxCompute comme source de données.

Prérequis

  • MaxCompute était auparavant connu sous le nom d'ODPS. Pour plus d'informations, consultez la page Présentation de MaxCompute.

  • Le compte Alibaba Cloud utilisé pour se connecter à OpenSearch doit disposer des autorisations requises sur la table MaxCompute. Ces autorisations incluent les permissions describe, select, download ainsi que les permissions de libellé (label) pour les champs.

Les instructions suivantes montrent comment accorder ces autorisations :

-- Add a user.
add user ****@aliyun.com;

-- Grant the required table permissions to the user.
GRANT describe,select,download ON TABLE table_xxx TO USER ****@aliyun.com
GRANT describe,select,download ON TABLE table_xxx_done TO USER ****@aliyun.com

-- MaxCompute enables field-level permission verification. This may prevent you from accessing high-privilege fields when pulling data, which causes the index build to fail. In this case, you must grant field-level access permissions to the user.
-- Grant permissions on the entire project.
SET LABEL 3 to USER ****@aliyun.com

-- Grant permissions on a single table.
GRANT LABEL 3 ON TABLE table_xxx(col1, col2) TO ****@aliyun.com
  • Le moteur de l'édition Vector Search prend en charge les types de champs suivants pour les tables MaxCompute : STRING, BOOLEAN, DOUBLE, BIGINT et DATETIME.

Remarque

Pour plus d'informations sur les instructions CREATE TABLE et la configuration des paramètres, consultez la page Instructions CREATE TABLE pour une source de données MaxCompute.

Ajouter une table

  1. Sur la page Instance Details > Table Management, cliquez sur Add Table.

image.png

  1. Saisissez les informations de base de la table, puis cliquez sur Next.

image.png

Description des paramètres :

  • Table Name : nom personnalisé de la table.

  • Number of Shards : saisissez un entier positif jusqu'à 256. Les shards améliorent la vitesse des constructions complètes et les performances des requêtes individuelles. Pour certaines instances existantes, le nombre de shards doit être identique pour toutes les tables d'index. Une table d'index peut également comporter un seul shard tandis que les autres ont le même nombre de shards.

  • Data Update Resources : nombre de ressources utilisées pour les mises à jour des données. Par défaut, chaque index bénéficie d'un quota gratuit de deux ressources de mise à jour de 4 cœurs et 8 Go. Les ressources dépassant ce quota gratuit sont facturées. Pour plus d'informations, consultez les pages .

  • Scenario Template : l'édition Vector Search propose trois modèles intégrés : General, Vector - Image Search et Vector - Text Semantics.

  1. Configurez la source de données pour la synchronisation. Une fois la configuration vérifiée, cliquez sur Next.

image.png

Description des paramètres :

  • Data Source Type : sélectionnez MaxCompute.

  • Project : nom du projet MaxCompute de destination.

  • accesskeyId : AccessKeyID de votre compte Alibaba Cloud ou de votre utilisateur RAM.

  • accesskeySecret : AccessKeySecret correspondant à l'AccessKeyID.

  • Table : nom de la table MaxCompute de destination.

  • Partition Key (partition) : vous devez définir une clé de partition pour une source de données MaxCompute. Exemple : ds=20170626.

  • Timestamp : spécifie la plage de temps pour la récupération des données incrémentielles depuis une API. Le système peut récupérer les données incrémentielles de l'API des trois derniers jours.

  • Auto Index Rebuild : spécifie s'il faut activer les reconstructions automatiques d'index. Si cette option est activée, le système reconstruit automatiquement l'index des tables qui référencent cette source de données lorsqu'un changement est détecté.

Remarque
  • Si vous activez les reconstructions automatiques d'index, vous devez créer une table done. Pour obtenir des instructions, consultez la section Reconstruction automatique d'index ci-dessous.

  1. Configurez les champs, puis cliquez sur Next.

image

Remarque
  • Le champ de clé primaire et le champ vectoriel sont obligatoires. Le champ de clé primaire doit être de type INT ou STRING, et vous devez cocher la case Primary Key. Le champ vectoriel doit être de type FLOAT, et vous devez cocher la case Vector Field.

  • Par défaut, le champ vectoriel est de type FLOAT multivalué. Le séparateur multivalué par défaut est le séparateur ha3 ^] (encodage UTF-8 : \x1D). Vous pouvez également saisir un séparateur multivalué personnalisé.

  • Si un champ est manquant ou vide dans les données, le système le remplit automatiquement avec une valeur par défaut. La valeur par défaut est 0 pour les types numériques et une chaîne vide pour le type STRING. Vous pouvez également spécifier une valeur par défaut personnalisée.

  1. Configurez le schéma d'index, puis cliquez sur Next.

image.png

Cette section décrit comment configurer l'index vectoriel :

  • Le champ de clé primaire et le champ vectoriel sont obligatoires. Le champ namespace est facultatif et peut être laissé vide.

  • Vous ne pouvez sélectionner que parmi ces trois champs fixes. Vous ne pouvez pas ajouter de nouveaux champs.

  • Vector Dimensions : sélectionnez les dimensions en fonction des vecteurs générés par votre modèle.

  • Distance Metric : sélectionnez la métrique en fonction des vecteurs générés par votre modèle. Le système prend en charge deux métriques de distance : SquareEuclidean et InnerProduct.

  • Vector Index Algorithm : sélectionnez l'algorithme en fonction des vecteurs générés par votre modèle. Le système prend en charge les algorithmes d'index vectoriel suivants : Quantized Clustering, linéaire et HNSW (Hierarchical Navigable Small World).

  • Real-time Index : spécifie s'il faut construire un index vectoriel en temps réel pour les données incrémentielles provenant de l'API. La valeur par défaut est true.

Pour configurer d'autres paramètres avancés, cliquez pour développer la section. Pour la description des paramètres, consultez la page Configurations générales pour les index vectoriels.

image.png

  1. Vérifiez et confirmez les paramètres. Après avoir cliqué sur Confirm Creation, le système crée automatiquement la table.

image.png

Vous pouvez consulter la progression de la création dans l'historique des modifications.

image.png

  1. Lorsque l'état de la table passe à In Use, vous pouvez tester les requêtes sur la page Query Test.

image.png

Reconstruction automatique d'index

Objectif de la table done : lorsque vous activez les reconstructions automatiques d'index pour une source de données, l'instance de l'édition Vector Search reconstruit automatiquement l'index en fonction des modifications apportées à votre table done.

Par exemple, votre table de données MaxCompute est nommée mytable et est partitionnée par ds=20220113. Après avoir configuré la source de données et reconstruit l'index pour la première fois, une nouvelle partition contenant les données complètes est générée quotidiennement. Si vous souhaitez que l'instance de l'édition Vector Search analyse la nouvelle partition et reconstruise automatiquement l'index pour extraire les nouvelles données, vous devez utiliser la fonctionnalité auto index rebuild avec une table done.

Procédure :

  1. Lors de l'ajout de la source de données, activez Auto Index Rebuild.

image.png

  1. Dans MaxCompute, créez une table done. Si la table de données est nommée mytable et que la clé de partition est ds, la table done doit être nommée mytable_done et sa clé de partition doit également être ds. Les deux tables s'affichent dans MaxCompute comme suit :

odps:sql:xxx> show tables;
InstanceId: xxx  
SQL: .                                                                                              

ALIYUN$****@aliyun.com:mytable          # The full data source table
ALIYUN$****@aliyun.com:mytable_done     # The done table that controls automatic full rebuilds

La figure suivante montre la table done :

image.png

Instruction pour créer la table done :

create table mytable_done (attribute string) partitioned by (ds string);
  1. Une fois les données de la partition ds=20220114 de mytable générées, configurez la table done pour déclencher une reconstruction d'index dans l'instance de l'édition Vector Search.

-- Add a partition.
alter table mytable_done add if not exists partition (ds="20220114");

-- Insert the signal data for the automatic full rebuild.
insert into table mytable_done partition (ds="20220114") select '{"swift_start_timestamp":1642003200}';

Le contenu final de la table done est le suivant :

odps:sql:xxx> select * from mytable_done where ds=20220114 limit 1;
InstanceId: xxx  
SQL: .                                                                                              
+-----------+----+
| attribute | ds |
+-----------+----+
| {"swift_start_timestamp":1642003200} | 20220114 |
+-----------+----+

Après l'insertion des données de signalisation dans la table done, l'instance de l'édition Vector Search détecte le signal et déclenche automatiquement une reconstruction d'index.

Important
  • La table done doit avoir au moins une clé de partition, et le nom de la clé de partition doit être identique à celui de la table de données. Par exemple, si la clé de partition de la table de données est ds, la clé de partition de la table done doit également être ds.

  • La table done ne doit contenir qu'un seul champ de type STRING, et le nom du champ doit être attribute.

  • La partition ajoutée à la table done doit exister dans la table de données. Par exemple, si la table de données possède les partitions ds="20220114", ds="20220115" et ds="20220116", la nouvelle partition ajoutée à la table done doit être l'une de celles-ci.

  • Lors de l'insertion de données dans la table done, la valeur du champ attribute doit être une chaîne JSON, telle que {"swift_start_timestamp":1642003200}. L'horodatage indique le décalage de départ pour la récupération des données incrémentielles en temps réel.

Notes

  • MaxCompute ne prend pas en charge les tables externes. Vous devez créer une table interne.

  • La table configurée pour la source de données MaxCompute doit être une table partitionnée.

  • La table générée dans MaxCompute est utilisée pour les constructions complètes de données. La source de données API est utilisée pour pousser les données en temps réel.