Pour résoudre les problèmes de latence élevée des requêtes lors de l'analyse interactive du big data sur Hadoop, synchronisez les données vers un cluster Alibaba Cloud Elasticsearch. Elasticsearch renvoie des résultats en quelques secondes pour divers types de requêtes, en particulier pour les requêtes ad hoc. Cette rubrique décrit comment utiliser le service Data Integration de DataWorks pour synchroniser rapidement de grands volumes de données vers un cluster Alibaba Cloud Elasticsearch.
Contexte
DataWorks est une plateforme de bout en bout dédiée au développement et à la gouvernance du big data, construite sur des moteurs de big data. Elle intègre des fonctionnalités telles que le développement de données, la planification des tâches et la gestion des données. Utilisez les tâches de synchronisation de DataWorks pour synchroniser rapidement les données de diverses sources vers Alibaba Cloud Elasticsearch.
-
Sources de données prises en charge :
Bases de données Alibaba Cloud (MySQL, PostgreSQL, SQL Server, MongoDB et HBase)
Alibaba Cloud PolarDB-X (mis à niveau depuis 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 :
Synchronisation hors ligne du big data 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 Synchronisation hors ligne d'une base de données MySQL entière vers Elasticsearch.
Synchronisation en temps réel du big data vers Alibaba Cloud Elasticsearch. Cette méthode prend en charge la synchronisation complète et incrémentielle. Pour plus d'informations, consultez Synchronisation en temps réel d'une base de données MySQL entière vers Elasticsearch.
Prérequis
-
Créez un cluster Alibaba Cloud Elasticsearch et activez sa fonctionnalité d'indexation automatique. Pour plus d'informations, consultez Créer un cluster Alibaba Cloud Elasticsearch et Configurer les paramètres YML.
RemarqueLa synchronisation des données n'est possible que vers un cluster Alibaba Cloud Elasticsearch. Les clusters Elasticsearch auto-gérés ne sont pas pris en charge.
Un espace de travail DataWorks est créé. Pour plus d'informations, consultez Créer un espace de travail.
Vous disposez d'un cluster Hadoop contenant des données.
Le cluster Hadoop, le cluster Alibaba Cloud Elasticsearch et l'espace de travail DataWorks doivent se trouver dans la même région.
Le cluster Hadoop, le cluster Alibaba Cloud Elasticsearch et l'espace de travail DataWorks doivent être configurés sur le même fuseau horaire. Sinon, les différences de fuseau horaire peuvent entraîner des écarts entre les données source et les données synchronisées.
Facturation
Pour obtenir des informations sur les frais liés à une instance Alibaba Cloud Elasticsearch, consultez Éléments facturables Elasticsearch.
Pour obtenir des informations sur les frais liés à un groupe de ressources Data Integration, consultez Frais des groupes de ressources.
Procédure
Étape 1 : Créer un groupe de ressources exclusif
Pour garantir une transmission des données rapide et stable, achetez un groupe de ressources exclusif pour Data Integration et associez-le à un espace de travail et à un Virtual Private Cloud (VPC).
Connectez-vous à la console DataWorks.
Dans la barre de navigation 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 Resources (Subscription), définissez Exclusive Resource Type sur exclusive resource group for Data Integration, saisissez un nom pour le groupe de ressources, puis cliquez sur Buy Now.
Pour plus d'informations, consultez Étape 1 : Acheter un groupe de ressources.
-
Recherchez le groupe de ressources exclusif créé et cliquez sur Network Settings dans la colonne Actions pour associer le groupe de ressources à un VPC. Pour plus d'informations, consultez Lier un VPC.
RemarqueCette rubrique utilise un groupe de ressources exclusif pour Data Integration afin de synchroniser les données via un VPC à titre d'exemple. Pour savoir comment synchroniser les données via Internet, consultez Configurer une liste d'autorisation d'adresses IP.
Le groupe de ressources exclusif doit être connecté aux VPC des clusters Hadoop et Elasticsearch pour permettre la synchronisation des données entre eux. Par conséquent, vous devez associer le groupe de ressources exclusif au Virtual Private Cloud (VPC), à la Zone et au VSwitch du cluster Hadoop et du cluster Elasticsearch. Pour afficher le VPC, la zone et le vSwitch du cluster Elasticsearch, consultez Afficher les informations de base d'un cluster Elasticsearch.
ImportantAprès avoir associé le groupe de ressources exclusif à un VPC, ajoutez le vSwitch CIDR Block aux listes d'autorisation d'accès privé VPC des clusters Hadoop et Elasticsearch. Pour plus d'informations, consultez Configurer une liste d'autorisation d'adresses IP publiques ou privées pour un cluster Elasticsearch.
Dans le coin supérieur gauche de la page, cliquez sur l'icône de retour pour revenir à la page Resource List.
-
Recherchez le groupe de ressources exclusif créé et cliquez sur Associate Workspace dans la colonne Actions pour associer le groupe de ressources à l'espace de travail de destination.
Pour plus d'informations, consultez Étape 2 : Associer un espace de travail au groupe de ressources.
Étape 2 : Ajouter des sources de données
-
Accédez à la page Data Integration.
Connectez-vous à la console DataWorks .
Dans le volet de navigation de gauche, cliquez sur Workspace.
Recherchez l'espace de travail cible et choisissez dans la colonne Actions.
Dans le volet de navigation de gauche, cliquez sur Data Source.
-
Ajoutez une source de données HDFS.
Sur la page Data Sources, cliquez sur Add Data Source.
Dans la boîte de dialogue Add Data Source, recherchez et sélectionnez HDFS.
-
Sur la page Add HDFS Data Source, configurez les paramètres de la source de données.
Pour plus d'informations, consultez Configurer une source de données HDFS.
Cliquez sur Test Connectivity. Si Connected s'affiche, le groupe de ressources est connecté à la source de données.
Cliquez sur Complete.
De la même manière, ajoutez une source de données Elasticsearch. Pour plus d'informations, consultez Source de données Elasticsearch.
Étape 3 : Exécuter une tâche de synchronisation par lots
Une tâche de synchronisation par lots s'exécute sur un groupe de ressources exclusif. Le groupe de ressources récupère les données de la source dans Data Integration et les écrit dans le cluster Elasticsearch de destination.
Vous pouvez configurer une tâche de synchronisation par lots en mode Assistant ou en mode Script. Cette rubrique utilise le mode Assistant à titre d'exemple. Pour savoir comment utiliser le mode Script, consultez Configurer une tâche en mode script et Elasticsearch Writer.
Les étapes suivantes sont effectuées sur la page legacy Data Development (DataStudio).
-
Accédez à la page Data Development.
Connectez-vous à la console DataWorks.
Dans le volet de navigation de gauche, cliquez sur Workspace.
Dans la colonne Actions de l'espace de travail de destination, choisissez .
-
Créez un nœud de synchronisation hors ligne.
Sous l'onglet Data Development (
), choisissez .Cliquez avec le bouton droit sur le workflow que vous avez créé 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 Source sur HDFS et Data Source Name sur le nom de la source de données HDFS que vous souhaitez synchroniser.
Dans la section Resource Group, sélectionnez le groupe de ressources exclusif.
Dans la section Destination, définissez Destination sur Elasticsearch et Data Source Name sur le nom de la source de données Elasticsearch.
Cliquez sur Suivant.
-
Configurez la tâche.
Dans la section Source, sélectionnez la table que vous souhaitez synchroniser.
Dans la section Destination, configurez les paramètres.
Dans la section Field Mapping, configurez les mappages entre Source Column et Target Column.
Dans la section Channel Control, configurez les paramètres du canal.
Pour plus d'informations, consultez Configurer une tâche de synchronisation par lots 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 selon vos besoins. Pour plus d'informations sur les paramètres, consultez Configuration de la planification.
Dans la barre d'outils de l'onglet de configuration du nœud, cliquez sur l'icône Enregistrer.
-
Dans la barre d'outils de l'onglet de configuration du nœud, cliquez sur l'icône Valider.
Si vous avez configuré des propriétés de planification, la tâche s'exécute périodiquement. Vous pouvez également cliquer sur l'icône Exécuter dans la barre d'outils pour exécuter la tâche immédiatement.
Un message
Shell run successfully!dans le journal d'exécution indique que la tâche s'est terminée avec succès.
Étape 4 : Vérifier le résultat
-
Connectez-vous à la console Kibana de votre cluster Alibaba Cloud Elasticsearch de destination.
Pour plus d'informations, consultez Se connecter à la console Kibana.
Dans le volet de navigation de gauche, cliquez sur Dev Tools.
-
Dans la Console, exécutez la commande suivante pour afficher les données synchronisées.
POST /hive_esdoc_good_sale/_search?pretty { "query": { "match_all": {}} }Remarquehive_esdoc_good_saleest la valeur que vous avez spécifiée pour le paramètreindexdans le script de synchronisation des données.Si les données ont été synchronisées avec succès, un résultat similaire à ce qui suit est renvoyé.
{ "took" : 6, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 4, "max_score" : 1.0, "hits" : [ { "_index" : "hive_esdoc_good_sale", "_type" : "_doc", "_id" : "2018-08-21 00:00:00", "_score" : 1.0, "_source" : { "trans_num" : 3, "click_cnt" : 7, "category" : "Outerwear", "buyer_id" : "lilei", "trans_amount" : 500.6, "brand" : "Brand A" } }, { "_index" : "hive_esdoc_good_sale", "_type" : "_doc", "_id" : "2018-08-23 00:00:00", "_score" : 1.0, "_source" : { "trans_num" : 5, "click_cnt" : 4, "category" : "Outerwear", "buyer_id" : "jimmy", "trans_amount" : 100.2, "brand" : "Brand E" } }, { "_index" : "hive_esdoc_good_sale", "_type" : "_doc", "_id" : "2018-08-22 00:00:00", "_score" : 1.0, "_source" : { "trans_num" : 2, "click_cnt" : 3 } } ] } }