Pour rechercher et analyser les données stockées dans ApsaraDB RDS for SQL Server, utilisez Alibaba Cloud Elasticsearch. Cette rubrique explique comment utiliser le service Data Integration de DataWorks pour synchroniser rapidement vos données hors ligne vers Alibaba Cloud Elasticsearch.
Contexte
DataWorks est une plateforme complète de développement et de gouvernance du Big Data, construite sur des moteurs de traitement de données massives. Elle intègre des fonctionnalités telles que le développement de données, l'ordonnancement des tâches et la gestion des données. Utilisez les tâches de synchronisation de DataWorks pour transférer rapidement des données depuis diverses sources vers Alibaba Cloud Elasticsearch.
-
Les sources de données prises en charge incluent :
Bases de données Alibaba Cloud (MySQL, PostgreSQL, SQL Server, MongoDB et HBase)
Alibaba Cloud PolarDB-X (évolution de DRDS)
Alibaba Cloud MaxCompute
Alibaba Cloud OSS
Alibaba Cloud Tablestore
Versions auto-gérées de HDFS, Oracle, FTP, DB2 et d'autres types de bases de données pris en charge
-
Scénarios d'utilisation :
Synchronisation hors ligne de volumes importants de données vers Alibaba Cloud Elasticsearch. Vous pouvez synchroniser une base de données entière ou toutes les données d'une table spécifique. Pour plus d'informations, consultez la rubrique Synchronisation hors ligne d'une base de données MySQL entière vers Elasticsearch.
Synchronisation en temps réel de volumes importants de données vers Alibaba Cloud Elasticsearch. Cette méthode prend en charge à la fois la synchronisation complète et incrémentielle. Pour plus d'informations, consultez la rubrique Synchronisation en temps réel d'une base de données MySQL entière vers Elasticsearch.
Prérequis
Vous avez créé une instance ApsaraDB RDS for SQL Server. Cette rubrique utilise une instance ApsaraDB RDS for SQL Server 2019 Standard Edition à titre d'exemple. Pour plus d'informations, consultez la rubrique Créer et utiliser rapidement une instance ApsaraDB RDS for SQL Server.
Vous avez créé une instance Alibaba Cloud Elasticsearch et activé la fonctionnalité de création automatique d'index. Pour plus d'informations, consultez les rubriques Créer une instance Alibaba Cloud Elasticsearch et Configurer les paramètres YML.
Vous avez créé un espace de travail DataWorks. Pour plus d'informations, consultez la rubrique Créer un espace de travail.
La synchronisation des données n'est possible que vers des instances Alibaba Cloud Elasticsearch. Les instances Elasticsearch auto-gérées ne sont pas prises en charge.
L'instance ApsaraDB RDS for SQL Server, l'instance Alibaba Cloud Elasticsearch et l'espace de travail DataWorks doivent se trouver dans la même région.
L'instance ApsaraDB RDS for SQL Server, l'instance Alibaba Cloud Elasticsearch et l'espace de travail DataWorks doivent être configurés sur le même fuseau horaire. Sinon, un décalage horaire peut entraîner des incohérences dans les données temporelles après la synchronisation.
Facturation
Pour obtenir des informations sur les frais liés à une instance Alibaba Cloud Elasticsearch, consultez la rubrique Éléments facturables d'Elasticsearch.
Pour obtenir des informations sur les frais liés à un groupe de ressources Data Integration, consultez la rubrique Frais des groupes de ressources.
Procédure
Étape 1 : Préparer les données source
Les exemples de données suivants sont utilisés dans l'instance ApsaraDB RDS for SQL Server.
Les données présentées dans cette rubrique servent uniquement à des fins de test. Ne les utilisez pas dans un environnement de production.
-
Créez une table
CREATE TABLE students( id INT, name VARCHAR(20), age INT ) -
Insérez des données
INSERT INTO [students]( [id] , [name] , [age] )values('1', 'Xiaoming','21'); INSERT INTO [students]( [id] , [name] , [age] )values('2', 'Xiaozhang','22'); INSERT INTO [students]( [id] , [name] , [age] )values('3', 'Xiaowang','23');
Étape 2 : Acheter et configurer un groupe de ressources exclusif
Achetez un groupe de ressources exclusif pour Data Integration et associez-y un Virtual Private Cloud (VPC) ainsi qu'un espace de travail. Un groupe de ressources exclusif garantit une transmission des données rapide et stable.
Connectez-vous à la console DataWorks .
Dans la barre de menu supérieure, sélectionnez une région. Dans le volet de navigation de gauche, cliquez sur Resource Groups.
Sous l'onglet Exclusive Resource Group, cliquez sur .
-
Sur la page d'achat DataWorks Exclusive Resource (Subscription), définissez le paramètre Exclusive Resource Type sur Exclusive Resource for Data Integration, saisissez un nom pour le groupe de ressources, puis cliquez sur Buy Now.
Pour plus d'informations sur la configuration, consultez la rubrique Étape 1 : Acheter un groupe de ressources.
-
Dans la colonne Actions du groupe de ressources exclusif nouvellement créé, cliquez sur Network Settings pour associer un VPC au groupe de ressources. Pour plus d'informations, consultez la rubrique Associer un VPC.
RemarqueCette rubrique utilise un groupe de ressources exclusif pour Data Integration afin de synchroniser les données via le réseau interne d'un VPC. Pour plus d'informations, consultez la rubrique Ajouter une liste d'autorisation.
Le groupe de ressources exclusif doit pouvoir se connecter aux VPC des instances ApsaraDB RDS for SQL Server et Alibaba Cloud Elasticsearch pour synchroniser les données. Par conséquent, vous devez associer le Virtual Private Cloud (VPC), la Zone et le VSwitch des instances ApsaraDB RDS for SQL Server et Alibaba Cloud Elasticsearch. Pour afficher les informations VPC d'une instance, consultez les rubriques Changer le vSwitch d'une instance ApsaraDB RDS for SQL Server et Afficher les informations de base d'une instance Elasticsearch.
ImportantAprès avoir associé le VPC, vous devez ajouter le vSwitch CIDR Block aux listes d'autorisation privées des instances ApsaraDB RDS for SQL Server et Alibaba Cloud Elasticsearch. Pour plus d'informations, consultez les rubriques Configurer une liste d'autorisation pour une instance ApsaraDB RDS for SQL Server et Configurer une liste d'autorisation d'accès public ou privé pour une instance Elasticsearch.
Dans le coin supérieur gauche de la page, cliquez sur l'icône de retour pour revenir à la page Resource List.
-
Dans la colonne Actions du groupe de ressources exclusif nouvellement créé, cliquez sur Attach Workspace pour associer l'espace de travail cible au groupe de ressources.
Pour plus d'informations, consultez la rubrique Étape 2 : Associer un espace de travail.
Étape 3 : Ajouter des sources de données
Ajoutez les sources de données ApsaraDB RDS for SQL Server et Alibaba Cloud Elasticsearch à Data Integration dans DataWorks.
-
Accédez à la page Data Integration dans DataWorks.
Connectez-vous à la console DataWorks .
Dans le volet de navigation de gauche, cliquez sur Workspace.
Dans la colonne Actions de l'espace de travail cible, choisissez .
Dans le volet de navigation de gauche, cliquez sur Data Source.
-
Ajoutez une source de données ApsaraDB RDS for SQL Server.
Sur la page Data Sources, cliquez sur Add Data Source.
Sur la page Add Data Source, recherchez et sélectionnez le type de source de données SQLServer.
-
Dans la boîte de dialogue Add SQL Server Data Source, configurez les paramètres de la section Basic Information.
Pour plus d'informations sur les paramètres, consultez la rubrique Configurer une source de données SQLServer.
Dans la section Connection Configuration, cliquez sur Test Connectivity. Le statut Connected indique que la connexion a réussi.
Cliquez sur Complete.
Suivez les mêmes étapes pour ajouter une source de données Elasticsearch. Pour plus d'informations sur les paramètres, consultez la rubrique Configurer une source de données Elasticsearch.
Étape 4 : Configurer et exécuter une tâche de synchronisation hors ligne
La tâche de synchronisation hors ligne s'exécute sur le groupe de ressources exclusif. Ce groupe de ressources récupère les données depuis la source configurée dans Data Integration et les écrit dans Alibaba Cloud Elasticsearch.
Vous pouvez configurer une tâche de synchronisation hors ligne en mode Assistant ou en mode Script. Cette rubrique décrit la configuration en mode Assistant. Pour obtenir des informations sur le mode Script, consultez les rubriques Configurer une tâche de synchronisation en mode Script et Elasticsearch Writer.
-
Accédez à la page Data development dans DataWorks.
Connectez-vous à la console DataWorks .
Dans le volet de navigation de gauche, cliquez sur Workspace.
Dans la colonne Actions de l'espace de travail cible, choisissez .
-
Créez une tâche de synchronisation hors ligne.
Dans le volet de navigation de gauche, cliquez sur l'icône
et choisissez pour créer un flux de travail.Cliquez avec le bouton droit sur le nouveau flux de travail et choisissez .
Dans la boîte de dialogue Create Node, saisissez un nom pour le nœud et cliquez sur OK.
-
Configurez le réseau et les ressources.
Dans la section Source, définissez le paramètre Source sur SQL Server et sélectionnez votre source de données dans la liste déroulante Data Source Name.
Dans la section Resource Group, sélectionnez le groupe de ressources exclusif.
Dans la section Destination, définissez le paramètre Destination sur Elasticsearch et sélectionnez votre source de données dans la liste déroulante Data Source Name.
Cliquez sur Next.
-
Configurez la tâche.
Dans la section Source, sélectionnez la table que vous souhaitez synchroniser.
Dans la section Destination, configurez les paramètres de destination.
Dans la section Field Mapping, mappez la Source Column à la Target Column. Pour plus d'informations sur la configuration, consultez la rubrique Configurer une tâche de synchronisation en mode Assistant.
Dans la section Channel Control, configurez les paramètres de canal.
Pour obtenir des informations détaillées sur les paramètres, consultez la rubrique Configurer une tâche de synchronisation en mode Assistant.
-
Exécutez la tâche.
(Facultatif) Configurez les propriétés de planification de la tâche. Dans le volet de droite, cliquez sur Properties et configurez les paramètres de planification. Pour plus d'informations sur les paramètres, consultez la rubrique Configuration de la planification.
Dans le coin supérieur droit de l'onglet de configuration du nœud, cliquez sur l'icône d'enregistrement pour sauvegarder la tâche.
-
Dans le coin supérieur droit de l'onglet de configuration du nœud, cliquez sur l'icône de soumission pour soumettre la tâche.
Si vous avez configuré des propriétés de planification pour la tâche, celle-ci s'exécutera périodiquement. Vous pouvez également cliquer sur l'icône d'exécution dans le coin supérieur droit de l'onglet de configuration du nœud pour exécuter immédiatement la tâche.
Un journal d'exécution contenant
Shell run successfully!indique que la tâche a réussi.
Étape 5 : Vérifier le résultat de la synchronisation des données
Connectez-vous à la console Kibana de l'instance Alibaba Cloud Elasticsearch de destination. Pour plus d'informations, consultez la rubrique Se connecter à la console Kibana.
Dans le coin supérieur gauche de la page Kibana, cliquez sur l'icône de menu et choisissez Dev Tools.
-
Dans la zone Console, exécutez la commande suivante pour afficher les données synchronisées.
POST /dbo.students/_search?pretty { "query": { "match_all": {}} }RemarqueRemplacez dbo.students par la valeur du champ index que vous avez spécifiée lors de la configuration de la tâche de synchronisation des données DataWorks.
Le résultat attendu est le suivant.
{ "took" : 4, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 3, "relation" : "eq" }, "max_score" : 1.0, "hits" : [ { "_index" : "dbo.students", "_type" : "_doc", "_id" : "XLZFCoUBpTk7S_sKy0dj", "_score" : 1.0, "_source" : { "age" : 21, "id" : 1, "name" : "Xiaoming" } }, { "_index" : "dbo.students", "_type" : "_doc", "_id" : "XbZFCoUBpTk7S_sKy0dj", "_score" : 1.0, "_source" : { "age" : 22, "id" : 2, "name" : "Xiaozhang" } }, { "_index" : "dbo.students", "_type" : "_doc", "_id" : "XrZFCoUBpTk7S_sKy0dj", "_score" : 1.0, "_source" : { "age" : 23, "id" : 3, "name" : "Xiaowang" } } ] } }