メインコンテンツまでスキップ

DataXエンジン

最終更新 2026/10/05

1. DataXの概要​

DataXはAlibabaが公開しているオープンソースプロジェクトで(詳細はDataXのGithubページを参照してください)、効率的なオフラインデータ同期ツールです。異種データソース間のデータ同期によく使われます。

DataXはFramework + pluginのアーキテクチャを採用しています。データソースの読み取りと書き込みはそれぞれReaderプラグインとWriterプラグインに対応し、データソースごとに対応するReaderまたはWriterがあります。DataXには豊富なReaderとWriterが標準で用意されており、主要なさまざまなデータソースに対応できます。FrameworkはReaderとWriterをつなぎ、同期タスクにおけるデータの処理や受け渡しなどのコアプロセスを担います。

元の画像を見る

DataXのデータ同期タスクは、主に1つの設定ファイルで制御します。その中で最も重要なのはReaderとWriterの設定で、それぞれデータソースからデータを抽出する方法と、抽出したデータをデータソースに書き込む方法を表します。設定ファイルで対象のデータソースに対応するReaderとWriterを使えば、異種データソース間の同期を実現できます。

ta-toolにはDataXエンジンが統合されており、AEクラスター用のプラグイン(AEクラスターのReaderとWriter)も用意されています。AEクラスターのプラグインを使うと、AEクラスターをDataXのデータソースとして利用できます。

ta-toolのDataXエンジンを使うと、次のデータ同期を行えます:

  1. 他のデータベースのデータをAEクラスターにインポートする:DataXの既存のReaderプラグインとAE Writerを使用します
  2. AEクラスターのデータを他のデータベースにエクスポートする:AE ReaderとDataXの既存のWriterプラグインを使用します

2. DataXエンジンの使い方​

ta-toolのDataXエンジンで複数のデータソース間の同期タスクを実行するには、まずAEクラスターでDataXタスクのConfigファイルを作成し、次に二次開発コンポーネントのDataXコマンドを実行して、Configファイルを読み込んでデータ同期タスクを実行します。

2.1 設定ファイルのサンプル​

DataXタスクのConfigファイルはjsonファイルである必要があります。json設定のテンプレートは次のとおりです:

{
"job": {
"content": [
{
"reader": {
"name": "streamreader",
"parameter": {
"sliceRecordCount": 10,
"column": [
{
"type": "long",
"value": "10"
},
{
"type": "string",
"value": "hello、こんにちは、世界-DataX"
}
]
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"encoding": "UTF-8",
"print": true
}
}
}
],
"setting": {
"speed": {
"channel": 5
}
}
}
}

設定ファイル全体が1つのJSONで、最も外側が"job"要素です。その中に"content"と"setting"の2つの要素があります。"content"内の要素にはreaderとwriterの情報が含まれます。AEクラスターのReaderとWriterについては、本ドキュメントの後半を参照してください。"setting"の"speed"内にある"channel"は、同時に実行するタスクの数です。

設定ファイルで主に設定するのは、"content"内の"reader"要素と"writer"要素で、それぞれデータを読み取るReaderプラグインと、データを書き込むWriterプラグインを設定します。DataXにプリセットされているReaderプラグインとWriterプラグインの設定方法は、DataXのSupport Data Channelsを参照してください。

2.2 DataXコマンドの実行​

設定ファイルを作成したら、次のコマンドを実行して設定ファイルを読み込み、データ同期タスクを開始できます。

ta-tool datax_engine -conf <configPath> [--date <date>]

渡すパラメータは、設定ファイルのパスです。

3. AEクラスターのDataXプラグインの説明​

3.1 クラスター内で使用するプラグイン​

タイプデータソースReader(読み取り)Writer(書き込み)ドキュメント
AEシステムTE√√読み取り、書き込み
カスタムテーブルTE√書き込み
jsonテキストTE√書き込み

3.2 クラスター外で使用するプラグイン​

タイプデータソースReader(読み取り)Writer(書き込み)ドキュメント
AEシステムTE√書き込み

3.3 DataXのネイティブプラグイン​

タイプデータソースReader(読み取り)Writer(書き込み)ドキュメント
RDBMS リレーショナルデータベースMySQL√√読み取り、書き込み
Oracle√√読み取り、書き込み
SQLServer√√読み取り、書き込み
PostgreSQL√√読み取り、書き込み
DRDS√√読み取り、書き込み
汎用RDBMS(すべてのリレーショナルデータベースに対応)√√読み取り、書き込み

Alibaba Cloudのデータウェアハウスストレージ

ODPS√√読み取り、書き込み
ADS√書き込み
OSS√√読み取り、書き込み
OCS√√読み取り、書き込み
NoSQLデータストレージOTS√√読み取り、書き込み
Hbase0.94√√読み取り、書き込み
Hbase1.1√√読み取り、書き込み
Phoenix4.x√√読み取り、書き込み
Phoenix5.x√√読み取り、書き込み
MongoDB√√読み取り、書き込み
Hive√√読み取り、書き込み
Cassandra√√読み取り、書き込み
非構造化データストレージTxtFile√√読み取り、書き込み
FTP√√読み取り、書き込み
HDFS√√読み取り、書き込み
Elasticsearch√√読み取り、書き込み
時系列データベースOpenTSDB√読み取り
TSDB√√読み取り、書き込み
このページは役に立ちましたか?