Configurez, modifiez et supprimez des sources de données MaxCompute dans OpenSearch Vector Search Edition.
Prérequis
Vous devez connaître les bases de MaxCompute (anciennement ODPS). Pour plus d'informations, consultez la section Présentation de MaxCompute.
Vous devez disposer des autorisations de table requises. Le compte utilisé pour accéder à la table MaxCompute doit avoir les autorisations
describe,selectetdownloadsur la table, ainsi que les autorisations de label pour ses champs.
Exécutez les instructions suivantes pour accorder les 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 requires field-level permissions. Failure to grant these permissions for all fields, including high-privilege fields, will cause index builds to fail.
-- Grant permissions to all tables in the Project.
SET LABEL 3 to USER ****@aliyun.com
-- Grant permissions to a specific table.
GRANT LABEL 3 ON TABLE table_xxx(col1, col2) TO ****@aliyun.com
OpenSearch Vector Search Edition prend en charge les types de champ suivants pour les tables MaxCompute : STRING, BOOLEAN, DOUBLE, BIGINT et DATETIME.
Pour plus d'informations sur les instructions CREATE TABLE et la configuration des paramètres, consultez la section Instructions CREATE TABLE pour les sources de données MaxCompute.
Configurer une source de données MaxCompute
1. Connectez-vous à la console OpenSearch. Dans le coin supérieur gauche, basculez vers OpenSearch Vector Search Edition. Sur la page Instance Management, localisez votre instance et cliquez sur Manage dans la colonne Actions.
Dans le volet de navigation de gauche, choisissez Configuration Center > Data Source Configuration. Cliquez sur Add Data Source, sélectionnez MaxCompute et configurez les paramètres suivants : Data Source Name, Project, AccessKey ID, AccessKey Secret, Table, Partition Key et Automatic Index Rebuilding.
3. Configurez les paramètres, puis cliquez sur Validate. Une fois la validation réussie, le bouton OK devient cliquable.
4. Ajoutez la source de données, puis configurez un schéma d'index et ajoutez une table d'index. Pour plus d'informations, consultez la section Ajouter une table d'index.
5. Une fois la table d'index configurée, appliquez la mise à jour de la configuration et reconstruisez l'index pour le rendre disponible sur le cluster de production. Pour plus d'informations, consultez la section Mettre à jour une configuration.
Remarque :
Data Source Name : nom de la source de données. Le nom doit respecter le format
instance_name_custom_name.Project, AccessKey ID, AccessKey Secret, Table et Partition Key : paramètres requis pour accéder à la source de données MaxCompute.
Automatic index rebuilding : si cette option est activée, le système reconstruit automatiquement l'index pour toute table d'index qui référence la source de données lorsque celle-ci change.
Si vous activez la reconstruction automatique des index, vous devez créer une
done table. Pour plus d'informations, consultez la section Reconstruction automatique des index.
Reconstruction automatique des index
Objectif de la done table : lorsque la reconstruction automatique des index est activée, l'instance OpenSearch Vector Search Edition surveille la done table et déclenche une reconstruction de l'index chaque fois que la done table est mise à jour.
Exemple : supposons que vous disposiez d'une table de données MaxCompute nommée mytable partitionnée par ds=20220113. Après la construction initiale de l'index, une nouvelle partition avec un chargement complet des données est générée quotidiennement. Pour que l'instance OpenSearch Vector Search Edition détecte la nouvelle partition et reconstruise automatiquement l'index, utilisez la **reconstruction automatique des index avec une done table**.
Procédure :
1. Lorsque vous ajoutez la source de données, activez Automatic Index Rebuilding.
2. Créez une done table dans MaxCompute. Si la table de données est nommée mytable et que sa clé de partition est ds, la done table doit être nommée mytable_done et utiliser également ds comme clé de partition. Les deux tables apparaissent dans MaxCompute comme suit :
odps:sql:xxx> show tables;
InstanceId: xxx
SQL: .
ALIYUN$****@aliyun.com:mytable # Data table for full loads
ALIYUN$****@aliyun.com:mytable_done # Done table to trigger automatic full loads
Instruction pour créer la done table :
create table mytable_done (attribute string) partitioned by (ds string);
3. Une fois les données de la nouvelle partition ds=20220114 générées dans la table mytable, mettez à jour la done table pour déclencher une reconstruction de l'index dans votre instance OpenSearch Vector Search Edition.
-- Add the partition.
alter table mytable_done add if not exists partition (ds="20220114");
-- Insert the signal data to trigger the automatic full load.
insert into table mytable_done partition (ds="20220114") select '{"swift_start_timestamp":1642003200}';
Le contenu final de la done table 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 signal dans la done table, l'instance OpenSearch Vector Search Edition détecte la mise à jour et déclenche automatiquement une reconstruction de l'index.
La
done tabledoit comporter au moins une clé de partition, et sa clé de partition doit porter le même nom que la clé de partition de la table de données. Par exemple, si la clé de partition de la table de données estds, la clé de partition de ladone tabledoit également êtreds.La
done tabledoit contenir un seul champ STRING nomméattribute.La partition que vous ajoutez à la
done tabledoit déjà exister dans la table de données. Par exemple, si la table de données contient les partitionsds="20220114",ds="20220115"etds="20220116", une nouvelle partition ajoutée à ladone tabledoit être l'une de ces partitions existantes.Lorsque vous insérez des données dans la
done table, la valeur du champattributedoit être une chaîne au format JSON, telle que{"swift_start_timestamp":1642003200}. L'horodatage spécifie le point de départ pour l'ingestion incrémentielle des données.
Modifier une source de données MaxCompute
Sur la page Data Source Configuration, localisez la source de données à modifier et cliquez sur Modify dans la colonne Actions.
Sur la page Edit Data Source, modifiez les paramètres tels que Project, AccessKey ID, AccessKey Secret, Table et Partition Key.
Modifiez les paramètres, puis cliquez sur Validate. Une fois la validation réussie, cliquez sur OK pour enregistrer vos modifications.
Après avoir modifié la source de données, appliquez la mise à jour de la configuration et reconstruisez l'index pour que les modifications prennent effet sur le cluster de production. Pour plus d'informations, consultez la section Mettre à jour une configuration.
Définissez la granularité de la partition à l'heure, par exemple yyyyMMddHH (tel que 2022011314), afin de permettre plusieurs chargements complets par jour.
Supprimer une source de données MaxCompute
Sur la page Data Source Configuration, localisez la source de données à supprimer et cliquez sur Delete dans la colonne Actions.
Après avoir cliqué sur Delete, le système vérifie si la source de données est référencée par une table d'index.
Si la source de données n'est référencée par aucune table d'index, cliquez sur OK pour la supprimer.
Si la source de données est référencée par une table d'index, une erreur s'affiche.
Le système affiche le message : « The data source is referenced by an index table. Delete the index table or remove the association, and then delete the data source. »
Supprimez toutes les tables d'index qui référencent la source de données avant de la supprimer. Pour plus d'informations, consultez la section Supprimer une table d'index.
Remarques d'utilisation
Vous ne pouvez pas modifier le nom d'une source de données après sa création.
MaxCompute ne prend pas en charge les tables externes. Vous devez utiliser une table interne.
La table que vous configurez en tant que source de données MaxCompute doit être une table partitionnée.
Vous pouvez utiliser des tables générées dans MaxCompute pour les opérations de chargement complet et une source de données API pour envoyer des données en temps réel.