Prérequis
Vous maîtrisez MaxCompute, anciennement appelé ODPS. Pour en savoir plus, cliquez ici.
Votre compte OpenSearch doit disposer des autorisations requises sur la table MaxCompute, notamment les permissions
describe,select,downloadet les permissions de libellé (label) sur les champs.
Utilisez les instructions suivantes pour accorder les autorisations :
-- Add an account.
add user ****@aliyun.com;
-- Grant the required table permissions to the account.
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;
-- If field-level permission checks are enabled in MaxCompute, you may be unable to access fields with high-level permissions when pulling data, which prevents index creation. In this case, you must grant the account the required field-level permissions.
-- 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;
OpenSearch Vector Search Edition prend en charge les types de champs de table MaxCompute suivants : STRING, BOOLEAN, DOUBLE, BIGINT et DATETIME.
Pour obtenir des informations détaillées sur les instructions de création de table et la configuration des paramètres, consultez la rubrique Instructions de création de table pour une source de données MaxCompute.
Configurer une source de données MaxCompute
Connectez-vous à la console OpenSearch. Dans le coin supérieur gauche, basculez vers OpenSearch Vector Search Edition. Sur la page Gestion des instances, repérez votre instance et cliquez sur Gérer dans la colonne Actions.
Dans le volet de navigation de gauche, sélectionnez Centre de configuration > Configuration de la source de données. Cliquez sur Ajouter une source de données. Sélectionnez MaxCompute comme type de source de données et saisissez les informations telles que Nom de la source de données, Projet, AccessKey ID, AccessKey Secret, Table, Clé de partition et Réindexation automatique.
Une fois les paramètres configurés, cliquez sur Vérifier. Une fois la configuration validée, le bouton OK est activé.
Après avoir ajouté une source de données, configurez un schéma d'index et ajoutez une table d'index. Pour plus d'informations, consultez la rubrique Ajouter une table d'index.
Une fois la table d'index configurée, mettez à jour la configuration et effectuez une réindexation pour appliquer les modifications à votre cluster en ligne. Pour plus d'informations, consultez la rubrique Mise à jour de la configuration.
Remarque :
Nom de la source de données : nom de la source de données. Le nom doit respecter le format suivant :
InstanceName_CustomName.Projet, AccessKey ID, AccessKey Secret, Table et Clé de partition : paramètres requis pour accéder à la source de données MaxCompute.
Réindexation automatique : indique s'il faut activer la réindexation automatique. Si cette option est activée, le système déclenche automatiquement la réindexation des tables d'index qui font référence à cette source de données chaque fois qu'une modification est détectée dans la source de données.
Si vous activez la réindexation automatique, vous devez créer une table done. Pour plus d'informations, consultez la section Réindexation automatique ci-dessous.
Réindexation automatique
Objectif de la table done : lorsque vous activez la réindexation automatique pour une source de données, OpenSearch Vector Search Edition surveille la table done pour détecter les changements et déclencher automatiquement la réindexation.
Exemple : votre table MaxCompute est nommée mytable et elle est partitionnée par ds=20220113. Après la réindexation initiale, une nouvelle partition contenant toutes les données est générée quotidiennement. Vous souhaitez qu'OpenSearch Vector Search Edition détecte la nouvelle partition et déclenche automatiquement la réindexation pour extraire les nouvelles données. Pour ce faire, vous devez utiliser la fonctionnalité de réindexation automatique avec une table done.
Procédure :
Lors de l'ajout de la source de données, activez la réindexation automatique.
-
Dans MaxCompute, créez une table done. Si votre table de données est nommée
mytableet que sa clé de partition estds, la table done doit être nomméemytable_doneavec une clé de partition également nomméeds. Les deux tables apparaissent dans MaxCompute comme suit :odps:sql:xxx> show tables; InstanceId: xxx SQL: . ALIYUN$****@aliyun.com:mytable # The table that contains the full data. ALIYUN$****@aliyun.com:mytable_done # The done table that controls automatic full data ingestion.La structure de la table done est décrite ci-dessous :
Exemple de données pour une table done : la colonne attribute a la valeur
{"swift_start_timestamp":1603096083}et la partition ds a la valeur20180724.Utilisez l'instruction suivante pour créer la table done :
create table mytable_done (attribute string) partitioned by (ds string); -
Une fois la génération des données terminée pour la partition
ds=20220114de la tablemytable, mettez à jour la table done pour déclencher la réindexation dans OpenSearch Vector Search Edition.-- Add the partition. alter table mytable_done add if not exists partition (ds="20220114"); -- Insert the signal data to trigger automatic full ingestion. insert into table mytable_done partition (ds="20220114") select '{"swift_start_timestamp":1642003200}';La table done contient désormais le contenu suivant :
odps:sql:xxx> select * from mytable_done where ds=20220114 limit 1; InstanceId: xxx SQL: . +-----------+----+ | attribute | ds | +-----------+----+ | {"swift_start_timestamp":1642003200} | 20220114 | +-----------+----+Une fois les données de signal insérées dans la table done, OpenSearch Vector Search Edition détecte ce signal et déclenche automatiquement la réindexation.
ImportantLa table done doit comporter au moins une clé de partition, et le nom de cette clé doit être identique à celui de la clé de partition 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 êtreds.La table done ne doit comporter qu'un seul champ de type STRING, et le nom du champ doit être
attribute.La partition que vous ajoutez à la table done doit exister dans la table de données. Par exemple, si la table de données comporte les partitions
ds="20220114",ds="20220115"etds="20220116", la nouvelle partition ajoutée à la table done doit correspondre à l'une d'entre elles.Lorsque vous insérez des données dans la table done, la valeur du champ
attributedoit être une chaîne JSON, telle que{"swift_start_timestamp":1642003200}. Cet horodatage indique le décalage de départ pour la synchronisation incrémentielle en temps réel.
Modifier une source de données MaxCompute
Sur la page Configuration de la source de données, repérez la source de données à modifier et cliquez sur Modify dans la colonne Actions.
-
Sur la page Modifier la source de données, vous pouvez modifier des informations telles que Projet, AccessKey ID, AccessKey Secret, Table et Clé de partition.
Après avoir effectué les modifications, cliquez sur Check. Une fois la configuration validée, cliquez sur OK pour enregistrer les modifications.
-
Après avoir modifié la source de données, mettez à jour la configuration et effectuez une réindexation pour appliquer les modifications à votre cluster en ligne. Pour plus d'informations, consultez la rubrique Mise à jour de la configuration.
RemarqueDéfinissez la granularité de la partition à l'heure, par exemple
yyyymmddhh(tel que2022011314). Cela vous permet d'exécuter plusieurs tâches de réindexation complète en une seule journée.
Supprimer une source de données MaxCompute
Accédez à Configuration de la source de données et cliquez sur Supprimer.
Lorsque vous cliquez sur Supprimer, le système vérifie si une table d'index fait référence à la source de données.
Si aucune table d'index ne fait référence à la source de données, cliquez sur OK pour supprimer la source de données. Vous devez ensuite mettre à jour la configuration et effectuer une réindexation pour que la suppression prenne effet.
Si une table d'index fait référence à la source de données, le message d'erreur Data source is referenced by an index table s'affiche (code d'erreur :
DataSourceInUse). Vous devez supprimer la table d'index ou retirer l'association avant de pouvoir supprimer la source de données.
Avant de pouvoir supprimer la source de données, vous devez d'abord supprimer la table d'index qui y fait référence. Consultez la rubrique Supprimer une table d'index.
Remarques d'utilisation
Vous ne pouvez pas modifier le nom de la source de données lors de la modification d'une source de données.
MaxCompute ne prend pas en charge les tables externes. Vous devez créer une table interne.
La table spécifiée pour une source de données MaxCompute doit être une table partitionnée.
Utilisez les tables MaxCompute pour l'ingestion complète des données. Pour les mises à jour incrémentielles en temps réel, utilisez une source de données basée sur une API.