Dec 7th, 2020: [FR] Utilisez Rally comme outil d'import/export de données

English version

L'objet de ce post est de montrer comment utiliser l'outil Rally pour exporter des données d'un cluster et les importer dans un autre.

L'idée est de pouvoir extraire la totalité des données d'un ou plusieurs index dans un (gros) fichier et de réutiliser ultérieurement ces données pour les importer facilement dans un autre cluster.
Rally permet de faire cela très facilement.

Voici les étapes à suivre:

Installer Rally

Installez Rally en suivant les indications de la documentation officielle. Cette étape est optionnelle si vous utilisez rally avec docker.

Vous pouvez tester le bon fonctionnement de Rally avec la commande:

╰─$ esrally --version

Export des données

L'export des données se fait en créant un scénario avec une commande du type :

╰─$ esrally create-track \
            --track=mytrack \
            --target-hosts=URL.elastic-cloud.com:9243 \
            --client-options="timeout:60,use_ssl:true,verify_certs:true,basic_auth_user:'USER',basic_auth_password:'PASSWORD'" \ 
            --indices="kibana_sample_data_logs,kibana_sample_data_ecommerce,kibana_sample_data_flights" \ 
            --output-path=~/Documents/Consulting/sandbox/rally

Avec docker, la commande serait :

╰─$ docker run -v ~/Documents/Consulting/sandbox/rally:/mnt \
           elastic/rally create-track \
           --track=mytrack-docker \
           --target-hosts=URL.elastic-cloud.com:9243 \
           --client-options="timeout:60,use_ssl:true,verify_certs:true,basic_auth_user:'USER',basic_auth_password:'PASSWORD'" \ 
           --indices="kibana_sample_data_logs,kibana_sample_data_ecommerce,kibana_sample_data_flights" \ 
           --output-path=/mnt

Les options suivantes sont utilisées :

  • --track permet de donner un nom à votre scénario
  • --target-hosts permet d'indiquer à Rally le(s) serveur(s) d'où les données seront extraites
  • --indices permet de définir les index que vous souhaitez exporter
  • --output-path permet de configurer le repertoire dans lequel les fichiers du scénario (y compris les data) seront écrit.
  • --client-options permet de configurer les paramètres client, notamment pour l'authentification

Une fois terminé, vous pouvez vérifier les informations du scénario généré avec la commande:

╰─$ esrally info --track-path=~/Documents/Consulting/sandbox/rally/mytrack

Cette commande vous donnera une idée de la volumétrie et du scénario généré :

    ____        ____
   / __ \____ _/ / /_  __
  / /_/ / __ `/ / / / / /
 / _, _/ /_/ / / / /_/ /
/_/ |_|\__,_/_/_/\__, /
                /____/
Showing details for track [mytrack]:
* Description: Tracker-generated track for mytrack
* Documents: 31,808
* Compressed Size: 2.1 MB
* Uncompressed Size: 30.1 MB
Schedule:
----------
1. delete-index
2. create-index
3. cluster-health
4. bulk (8 clients)
-------------------------------
[INFO] SUCCESS (took 0 seconds)
-------------------------------

L'ensemble des fichiers du répertoire du scénario peuvent être compressé dans une archive que vous pouvez transférer sur l'infrastructure où se trouve votre cluster de destination.

Import des données

Dans l'exemple suivant, un cluster local de développement est utilisé (pas de --client-options car un cluster local sans sécurité est utilisé).

╰─$ esrally --track-path=~/Documents/Consulting/sandbox/rally/mytrack 
            --target-hosts=127.0.0.1:9200 
            --pipeline=benchmark-only

Lorsque ce sera terminé, Rally vous donnera en bonus des indicateurs statistiques sur votre cluster (taux d'ingestion par exemple) :

    ____        ____
   / __ \____ _/ / /_  __
  / /_/ / __ `/ / / / / /
 / _, _/ /_/ / / / /_/ /
/_/ |_|\__,_/_/_/\__, /
                /____/
[INFO] Preparing file offset table for [/Users/laurent/Documents/Consulting/sandbox/rally/mytrack/kibana_sample_data_logs-documents.json] ... [OK]
[INFO] Preparing file offset table for [/Users/laurent/Documents/Consulting/sandbox/rally/mytrack/kibana_sample_data_ecommerce-documents.json] ... [OK]
[INFO] Preparing file offset table for [/Users/laurent/Documents/Consulting/sandbox/rally/mytrack/kibana_sample_data_flights-documents.json] ... [OK]
[INFO] Racing on track [mytrack] and car ['external'] with version [7.9.2].
[WARNING] indexing_total_time is 10 ms indicating that the cluster is not in a defined clean state. Recorded index time metrics may be misleading.
Running delete-index                                                           [100% done]
Running create-index                                                           [100% done]
Running cluster-health                                                         [100% done]
Running bulk                                                                   [100% done]
------------------------------------------------------
    _______             __   _____
   / ____(_)___  ____ _/ /  / ___/_________  ________
  / /_  / / __ \/ __ `/ /   \__ \/ ___/ __ \/ ___/ _ \
 / __/ / / / / / /_/ / /   ___/ / /__/ /_/ / /  /  __/
/_/   /_/_/ /_/\__,_/_/   /____/\___/\____/_/   \___/
------------------------------------------------------
|                                                         Metric |   Task |       Value |   Unit |
|---------------------------------------------------------------:|-------:|------------:|-------:|
|                     Cumulative indexing time of primary shards |        |       0.397 |    min |
|             Min cumulative indexing time across primary shards |        | 0.000166667 |    min |
|          Median cumulative indexing time across primary shards |        |   0.0681333 |    min |
|             Max cumulative indexing time across primary shards |        |    0.247217 |    min |
|            Cumulative indexing throttle time of primary shards |        |           0 |    min |
|    Min cumulative indexing throttle time across primary shards |        |           0 |    min |
| Median cumulative indexing throttle time across primary shards |        |           0 |    min |
|    Max cumulative indexing throttle time across primary shards |        |           0 |    min |
|                        Cumulative merge time of primary shards |        |     0.01685 |    min |
|                       Cumulative merge count of primary shards |        |           1 |        |
|                Min cumulative merge time across primary shards |        |           0 |    min |
|             Median cumulative merge time across primary shards |        |           0 |    min |
|                Max cumulative merge time across primary shards |        |     0.01685 |    min |
|               Cumulative merge throttle time of primary shards |        |           0 |    min |
|       Min cumulative merge throttle time across primary shards |        |           0 |    min |
|    Median cumulative merge throttle time across primary shards |        |           0 |    min |
|       Max cumulative merge throttle time across primary shards |        |           0 |    min |
|                      Cumulative refresh time of primary shards |        |      0.0601 |    min |
|                     Cumulative refresh count of primary shards |        |          23 |        |
|              Min cumulative refresh time across primary shards |        | 0.000883333 |    min |
|           Median cumulative refresh time across primary shards |        |  0.00673333 |    min |
|              Max cumulative refresh time across primary shards |        |   0.0337333 |    min |
|                        Cumulative flush time of primary shards |        |           0 |    min |
|                       Cumulative flush count of primary shards |        |           0 |        |
|                Min cumulative flush time across primary shards |        |           0 |    min |
|             Median cumulative flush time across primary shards |        |           0 |    min |
|                Max cumulative flush time across primary shards |        |           0 |    min |
|                                        Total Young Gen GC time |        |       0.062 |      s |
|                                       Total Young Gen GC count |        |           5 |        |
|                                          Total Old Gen GC time |        |           0 |      s |
|                                         Total Old Gen GC count |        |           0 |        |
|                                                     Store size |        | 3.27006e-05 |     GB |
|                                                  Translog size |        |   0.0315683 |     GB |
|                                         Heap used for segments |        |    0.365074 |     MB |
|                                       Heap used for doc values |        |    0.111397 |     MB |
|                                            Heap used for terms |        |    0.219269 |     MB |
|                                            Heap used for norms |        |   0.0147095 |     MB |
|                                           Heap used for points |        |           0 |     MB |
|                                    Heap used for stored fields |        |   0.0196991 |     MB |
|                                                  Segment count |        |          40 |        |
|                                                 Min Throughput |   bulk |     1100.03 | docs/s |
|                                              Median Throughput |   bulk |     2616.48 | docs/s |
|                                                 Max Throughput |   bulk |     6598.72 | docs/s |
|                                        50th percentile latency |   bulk |     727.761 |     ms |
|                                        90th percentile latency |   bulk |     2123.67 |     ms |
|                                       100th percentile latency |   bulk |     2156.42 |     ms |
|                                   50th percentile service time |   bulk |     727.761 |     ms |
|                                   90th percentile service time |   bulk |     2123.67 |     ms |
|                                  100th percentile service time |   bulk |     2156.42 |     ms |
|                                                     error rate |   bulk |           0 |      % |
--------------------------------
[INFO] SUCCESS (took 56 seconds)
--------------------------------

Et voilà, les données ont été importées dans votre nouveau cluster :slight_smile:

4 Likes

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.