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

**URL:** <https://discuss.elastic.co/t/dec-7th-2020-fr-utilisez-rally-comme-outil-dimport-export-de-donnees/256863>\
**Category:** Advent Calendar\
**Created:** [December 7, 2020, 8:00am UTC](https://discuss.elastic.co/t/dec-7th-2020-fr-utilisez-rally-comme-outil-dimport-export-de-donnees/256863 "2020-12-07T08:00:01Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Laurent\_Huet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/laurent_huet/32/78677_2.png) [@Laurent\_Huet](https://discuss.elastic.co/u/Laurent_Huet)\
**Post date:** [December 7, 2020, 8:00am UTC](https://discuss.elastic.co/t/dec-7th-2020-fr-utilisez-rally-comme-outil-dimport-export-de-donnees/256863/1 "2020-12-07T08:00:01Z")

</div>

[English version](https://discuss.elastic.co/t/257820)

L'objet de ce post est de montrer comment utiliser l'outil [Rally](https://github.com/elastic/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](https://esrally.readthedocs.io/en/stable/quickstart.html). Cette étape est optionnelle si vous utilisez rally avec docker.

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

```auto
╰─$ esrally --version

```

# Export des données

L'export des données se fait en [créant un scénario](https://esrally.readthedocs.io/en/stable/adding_tracks.html) 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é :

```auto
    ________
   / __\____ _/ / /_ __
  / /_/ / __ `/ / / / / /
 / _, _/ /_/ / / / /_/ /
/_/ |_|\ __,_/_/_/\__ , /
                / ____ /
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) :

```auto
    ________
   / __\____ _/ / /_ __
  / /_/ / __ `/ / / / / /
 / _, _/ /_/ / / / /_/ /
/_/ |_|\ __,_/_/_/\__ , /
                / ____ /
[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 🙂

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [January 4, 2021, 8:00am UTC](https://discuss.elastic.co/t/dec-7th-2020-fr-utilisez-rally-comme-outil-dimport-export-de-donnees/256863/2 "2021-01-04T08:00:15Z")

</div>

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