Tous les produits
Search
Centre de documentation

Elasticsearch:Synchroniser les données Hadoop vers Alibaba Cloud Elasticsearch

Dernière mise à jour :Aug 20, 2026

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 :

Prérequis

Remarque
  • 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

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).

  1. Connectez-vous à la console DataWorks.

  2. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, cliquez sur Resource Groups.

  3. Sous l'onglet Exclusive Resource Group, cliquez sur Create legacy resource group > Resource Group for Data Integration.

  4. 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.

  5. 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.

    Remarque

    Cette 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.

    Important

    Aprè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.

  6. Dans le coin supérieur gauche de la page, cliquez sur l'icône de retour pour revenir à la page Resource List.

  7. 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

  1. Accédez à la page Data Integration.

    1. Connectez-vous à la console DataWorks .

    2. Dans le volet de navigation de gauche, cliquez sur Workspace.

    3. Recherchez l'espace de travail cible et choisissez Shortcuts > Data Integration dans la colonne Actions.

  2. Dans le volet de navigation de gauche, cliquez sur Data Source.

  3. Ajoutez une source de données HDFS.

    1. Sur la page Data Sources, cliquez sur Add Data Source.

    2. Dans la boîte de dialogue Add Data Source, recherchez et sélectionnez HDFS.

    3. 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.

    4. Cliquez sur Test Connectivity. Si Connected s'affiche, le groupe de ressources est connecté à la source de données.

    5. Cliquez sur Complete.

  4. 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.

Remarque
  1. Accédez à la page Data Development.

    1. Connectez-vous à la console DataWorks.

    2. Dans le volet de navigation de gauche, cliquez sur Workspace.

    3. Dans la colonne Actions de l'espace de travail de destination, choisissez Shortcuts > Data development.

  2. Créez un nœud de synchronisation hors ligne.

    1. Sous l'onglet Data Development (image), choisissez Create > New business process.

    2. Cliquez avec le bouton droit sur le workflow que vous avez créé et choisissez Create Node > Data Integration > Batch Synchronization.

    3. Dans la boîte de dialogue Create Node, saisissez un nom pour le nœud et cliquez sur OK.

  3. Configurez le réseau et les ressources.

    1. 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.

    2. Dans la section Resource Group, sélectionnez le groupe de ressources exclusif.

    3. Dans la section Destination, définissez Destination sur Elasticsearch et Data Source Name sur le nom de la source de données Elasticsearch.

  4. Cliquez sur Suivant.

  5. Configurez la tâche.

    1. Dans la section Source, sélectionnez la table que vous souhaitez synchroniser.

    2. Dans la section Destination, configurez les paramètres.

    3. Dans la section Field Mapping, configurez les mappages entre Source Column et Target Column.

    4. 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.

  6. Exécutez la tâche.

    1. (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.

    2. Dans la barre d'outils de l'onglet de configuration du nœud, cliquez sur l'icône Enregistrer.

    3. 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

  1. Connectez-vous à la console Kibana de votre cluster Alibaba Cloud Elasticsearch de destination.

    Pour plus d'informations, consultez Se connecter à la console Kibana.

  2. Dans le volet de navigation de gauche, cliquez sur Dev Tools.

  3. 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": {}}
    }
    Remarque

    hive_esdoc_good_sale est la valeur que vous avez spécifiée pour le paramètre index dans 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
            }
          }
        ]
      }
    }