すべてのプロダクト
Search
ドキュメントセンター

Lindorm:DataX を使用した RDS データのインポート

最終更新日:Feb 04, 2026

このトピックでは、Alibaba のオープンソースツールである DataX を使用して、リレーショナルデータベースから LindormTSDB にデータを移行する方法について説明します。

背景情報

DataX は、Alibaba Group 内で広く使用されているオフラインデータ同期ツールです。MySQL、Oracle、SQL Server、PostgreSQL、HDFS、Hive、ADS、HBase、TableStore (OTS)、MaxCompute (ODPS)、DRDS などの異種データソース間で効率的なデータ同期を提供します。DataX の使用方法の詳細については、DataX の README ドキュメントをご参照ください。

このトピックでは、DataX ツールを紹介し、MySQL を例として LindormTSDB にデータを移行する方法を説明します。この移行タスクには、MySQL ReaderTSDB Writer の 2 つのプラグインが関わります。

MySQL Reader

MySQL Reader は、MySQL からデータを読み取るための DataX プラグインです。

TSDB Writer

TSDB Writer は、データポイントを LindormTSDB に書き込むための DataX プラグインです。

注意事項

LindormTSDB へのネットワーク接続の確保

TSDB Writer は、/api/mput および /api/put HTTP API を呼び出してデータを書き込みます。移行タスクが LindormTSDB によって公開されている HTTP API にアクセスできることを確認してください。そうしないと、Connect Exception エラーが発生します。

MySQL へのネットワーク接続の確保

MySQL Reader は Java Database Connectivity (JDBC) を使用してデータを読み取ります。移行タスクが MySQL によって公開されている JDBC インターフェイスにアクセスできることを確認してください。そうでない場合、Connect Exception エラーが発生します。

事前準備

  1. 環境を準備します。

    • Linux

    • JDK (1.8 以降)

    • Python (Python 2.6.x を推奨)

    • MySQL (5.x と互換性のあるバージョンのみサポート)

    • LindormTSDB

  2. DataX とそのプラグインをダウンロードします。

    パッケージは、次のリンクからダウンロードできます。

  3. DataX に含まれるテスト移行タスクを使用して、移行プロセスが正しく機能することを確認します。

    この例では、単純な Stream Reader から Stream Writer へのタスクを使用します。これら 2 つのプラグインは外部環境に依存しないため、プロセスが機能していることを確認するのに最適です。Stream Reader はランダムに文字列を生成します。Stream Writer は受信した文字列をコンソールに出力します。これにより、基本的なデータ移行プロセスをシミュレートします。

ツールのデプロイ

ダウンロードしたインストールパッケージをディレクトリに解凍します。このディレクトリは DATAX_HOME として使用されます。次に、テスト移行タスクを実行します。

$ cd ${DATAX_HOME}
$ python bin/datax.py job/job.json

タスクの成功確認

タスクが完了すると、以下のサマリー情報が表示されます。この出力は、移行タスクが成功したことを示します。

Task start time           : 2019-04-26 11:18:07
Task end time             : 2019-04-26 11:18:17
Total time                :                 10s
Average traffic           :          253.91KB/s
Record write speed        :          10000rec/s
Total records read        :              100000
Total read/write failures :                   0
            

MySQL から LindormTSDB への移行タスクの設定と開始

Stream Reader から Stream Writer への移行タスクで DataX プロセスが正しく機能することを確認した後、MySQL Reader から TSDB Writer への移行タスクを開始できます。

パラメーター

設定項目は以下の通りです。

MySQL Reader のパラメーター

名前

タイプ

必須

説明

デフォルト値

jdbcUrl

String

はい

データベースの JDBC 接続文字列。

なし

jdbc:mysql://127.0.0.1:3306/datax

username

String

はい

データソースのユーザー名。

なし

root

password

String

はい

指定されたユーザー名のパスワード。

なし

root

table

String

はい

同期するテーブル。

なし

book

column

Array

はい

テーブルから同期するカラム。

[]

["m"]

splitPk

String

いいえ

`splitPk` を指定すると、システムは指定されたフィールドをデータパーティションに使用します。

id

TSDB Writer のパラメーター

名前

タイプ

必須

説明

デフォルト値

sourceDbType

String

いいえ

有効な値は `TSDB` と `RDB` です。`TSDB` は OpenTSDB、InfluxDB、Prometheus、TimeScale などの時系列エンジンを指します。`RDB` は MySQL、Oracle、PostgreSQL、DRDS などのリレーショナルデータベースを指します。

TSDB

RDB

column

Array

はい

同期するカラム。

[]

["name","type","create_time","price"]

columnType

Array

はい

リレーショナルデータベーステーブルのフィールドがマップされる LindormTSDB のタイプ。サポートされているタイプは次のとおりです:timestamp:フィールドはタイムスタンプです。tag:フィールドはタグです。metric_num:メトリックの値は数値型です。metric_string:メトリックの値は文字列です。

[]

["tag","tag","timestamp","metric_num"]

endpoint

String

はい

LindormTSDB の IP アドレスとポート

なし

ld-xxxx:8242

multiField

Bool

はい

マルチフィールドモードでデータを書き込むかどうかを指定します。このパラメーターを `true` に設定します。

false

true

table

String

はい

LindormTSDB にインポートするテーブルの名前。

なし

table

username

String

いいえ

データベースのユーザー名。

なし

tsdbuser

password

String

いいえ

データベースのパスワード。

なし

tsdbpsw

ignoreWriteError

Bool

はい

書き込みエラーを無視する

false

true

database

String

いいえ

TSDB にインポートするデータベースの名前

default

default

移行タスクの設定

MySQL データベースから LindormTSDB にデータを同期するタスクを設定します。設定ファイルに mysql2tsdb.json という名前を付けます。完全な設定は次のとおりです。各パラメーターの詳細な説明については、「パラメーター」をご参照ください。

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "column": [
              "name",
              "type",
              "create_time",
              "price",
              "description",
              "available"
            ],
            "connection": [
              {
                "jdbcUrl": [
                  "jdbc:mysql://127.0.0.1:3306/datax"
                ],
                "table": [
                  "book"
                ]
              }
            ],
            "password": "xxx",
            "splitPk": "id",
            "username": "root"
          }
        },
        "writer": {
          "name": "tsdbwriter",
          "parameter": {
            "column": [
              "name",
              "type",
              "create_time",
              "price",
              "description",
              "available"
            ],
            "columnType": [
              "tag",
              "tag",
              "timestamp",
              "field_double",
              "field_string",
              "field_bool"
            ],
            "sourceDbType": "RDB",
            "endpoint": "http://localhost:8242",
            "table": "my_book",
            "multiField": "true", 
            "username":"xxx",
            "password":"xxx",
            "ignoreWriteError":"false",
            "database":"default"
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
}          

カラムの順序を一致させる

TSDB Writer プラグインの `column` パラメーターのフィールドの順序が、MySQL Reader プラグインの `column` パラメーターの順序と同じであることを確認してください。そうでない場合、データが乱れます。

MySQL から LindormTSDB への移行タスクの開始

$ cd ${DATAX_HOME}/..
$ ls
  datax/  datax.tar.gz  mysql2tsdb.json
$ python datax/bin/datax.py mysql2tsdb.json
            

タスクの成功確認

タスクが完了すると、以下のサマリー情報が表示されます。この出力は、移行タスクが成功したことを示します。

Task start time           : 2019-05-21 18:25:16
Task end time             : 2019-05-21 18:25:27
Total time                :                 11s
Average traffic           :                3B/s
Record write speed        :              0rec/s
Total records read        :                   3
Total read/write failures :                   0
            

よくある質問

Q:移行プロセスの JVM メモリサイズを調整できますか?

A:はい、できます。たとえば、MySQL から LindormTSDB にデータを移行するには、次の開始コマンドを使用します。

python datax/bin/datax.py mysql2tsdb.json -j "-Xms4096m -Xmx4096m"    

Q:LindormTSDB のネットワークホワイトリストを設定するにはどうすればよいですか?

A:詳細については、「ホワイトリストの設定」をご参照ください。

Q:ECS インスタンスで移行タスクを実行する場合、VPC の設定方法と一般的な問題は何ですか?

A:詳細については、「」、「ECS セキュリティグループ構成のユースケース」、および「VPC よくある質問」をご参照ください。