データ移行ツールでは、Python3 ファイルのコレクションを使用します。 

データ移行ツールのインストール

データ移行ツールをインストールするには、migration_tool.zip をダウンロードします。 

次に、解凍された構造の例を示します。

tool/ main.py readme.txt requirements.txt src/ tool.json
TEXT

python3 環境のセットアップ

  1. python3 がシステムにインストールされているかどうかを確認するには、次のように入力します。

    which python3
    CODE

    python3 が見つからない場合は、sudo yum install python36 -y のように入力して python3 をインストールします。

  2. pip3 パッケージマネージャがインストールされているかどうかを確認するには、次のように入力します。

    which pip3
    CODE

    pip3 パッケージマネージャが見つからない場合は、パッケージのインストール」を参照しsudopython3 -m pip install--upgrade pip setuptools wheel と入力してください。

  3. 移行 Python スクリプトを実行するライブラリをインストールするには、データ移行ツールのディレクトリ内で次のコマンドを入力します。

    pip3 install -r requirements.txt --user
    CODE

データ移行ツールの設定

移行スクリプトを実行できるようにするには、事前にスクリプトを適切に設定しておく必要があります。すべての設定は、tool/tool.json ファイルに JSON 形式で保存されています。このセクションでは、各プロパティの設定方法について説明します。

クラスタ

クラスタは、イベントサービスクラスタのコレクションとして定義されます。各クラスタには次のプロパティがあります。

Properties説明
api_urlイベントサービスの API ノードまたはそのロードバランサのいずれか 1 つを示す URL。
certificate_filePEM ファイルへのパス。
check_hostname(オプション)証明書を確認するときにホスト名を確認するかどうかを示します。デフォルトは true です。
es_urlElasticsearch のマスターノードのいずれか 1 つを示す URL。
es_url_internalElasticsearch のマスターノードのいずれか 1 つを示す内部 URL。他のクラスタがリモートのインデックス再作成に使用します。
es_versionElasticsearch バージョンに関連します。
keysイベントサービスのコントローラと OPS キー。これらのキーは conf/events-service-api-store.properties ファイル内にあります。

この例では、イベントサービス es2es6、および xpack_es6 を定義します。 

es6 で SSL を有効にし、xpack_es6 で Elasticsearch X-Pack を有効にします。

{
  "clusters": {
    "es2": {
      "keys": {
        "CONTROLLER": "27410b11-296a-49e1-b2d2-d2371ab94d64",
        "OPS": "45c25bad-636c-432f-b0bd-f8ec428c8db4"
      },
      "api_url": "35.162.126.253:9080",
      "es_url": "35.162.126.253:9200",
      "es_url_internal": "172.31.12.185:9200",
      "es_version": 2
    },
    "es6": {
      "keys": {
        "CONTROLLER": "7db43bff-97d3-4d5e-828a-a2eacb693e07",
        "OPS": "ac7424d1-ae96-4e10-ad82-a2eca50db133"
      },
      "api_url": "https://34.209.245.68:9080",
      "certificate_file": "/Users/jun.zhai/es6.pem",
      "check_hostname": false,
      "es_url": "34.209.245.68:9200",
      "es_version": 6
    },
    "xpack_es6": {
      "keys": {
        "CONTROLLER": "07b055f8-a97b-4ccb-a239-2267d452c4ea",
        "OPS": "c582cc8a-f3bc-419f-a42a-7bb8adad05b8"
      },
      "api_url": "52.89.86.93:9080",
      "es_url": "http://elastic:1234@52.89.86.93:9200",
      "es_version": 6
    }
  }
}
BASH

移行

ここでは、移行のプロパティについて説明します。

[プロパティ(Properties)]説明
accounts(オプション)移行するアカウントを指定します。デフォルトは、ソースイベントサービスのすべてに設定されています。
search_hitsElasticsearch クエリで取得される最大ドキュメント数。デフォルトは 5000 です。
remote_reindex_concurrency同時に起動されたリモートインデックス再作成タスクの最大数。デフォルト値は 4 です。
remote_reindex_scroll_batch_sizeリモートインデックス再作成のバッチサイズ。デフォルトは 8000 です。「Re-index API」を参照してください。
reindex_task_polling_interval進行中のリモートインデックス再作成タスクのステータスを確認する頻度(秒単位)。デフォルトは 60 秒です。
starting_max_fields_per_index新しいインデックスの作成時に許可される最大フィールド数。デフォルトは 1000 に設定されています。値は、conf/events-service-api-store.properties ファイルの ad.es.event.index.startingMaxFieldsPerIndex と同じにする必要があります。

Migration Properties Examples:

例 1:ソースイベントサービスからすべてを移行する。

{
  "migration": {
    "search_hits": 5000,
    "remote_reindex_concurrency": 6,
    "remote_reindex_scroll_batch_size": 8000,
    "reindex_task_polling_interval": 60,
    "starting_max_fields_per_index": 1000
  }
}
BASH

例 2:アカウント customer15_9611293a-c56f-4c9a-aa11-9f6bffcb42celog_v1custom_event のすべてのイベントタイプと、アカウント customer1_229f6fbf-b42f-4d66-a56b-a2324d8b169d のイベントタイプを移行します。この例では、他のアカウントは移行されません。

{
  "migration": {
    "accounts": {
      "customer15_9611293a-c56f-4c9a-aa11-9f6bffcb42ce": [],
      "customer1_229f6fbf-b42f-4d66-a56b-a2324d8b169d": [
        "log_v1",
        "custom_event"
      ],
    },
    "search_hits": 5000,
    "remote_reindex_concurrency": 4,
    "remote_reindex_scroll_batch_size": 8000,
    "reindex_task_polling_interval": 60,
    "starting_max_fields_per_index": 1000
  }
}
BASH