1.データX
DataX は、Alibaba Cloud DataWorks データ統合のオープンソース バージョンで、アリババ グループ内で広く使用されているオフライン データ同期ツール/プラットフォームです。 DataX は、MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore (OTS)、MaxCompute (ODPS)、Hologres、DRDS、databend などのさまざまな異種データ ソース間の効率的なデータ同期を実装します。
2.DataXダウンロードアドレス
ダウンロード アドレス:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202303/datax.tar.gz
上記の接続が利用できない場合は、次のアドレスにアクセスしてください。DataX ダウンロード ページ以下に示す接続を見つけてダウンロードします
3.DataX データソースのサポート
現在、DataX は比較的包括的なプラグイン システムを備えており、主流の RDBMS データベース、NOSQL、ビッグ データ コンピューティング システムがすべて接続されており、現在サポートされているデータは次のとおりです。
タイプ | 情報元 | リーダー(読み取り) | ライター(書く) | 書類 |
RDBMSリレーショナルデータベース | MySQL | √ | √ | 读 、写 |
オラクル | √ | √ | 读 、写 | |
オーシャンベース | √ | √ | 读 、写 | |
SQLサーバー | √ | √ | 读 、写 | |
PostgreSQL | √ | √ | 读 、写 | |
DRDS | √ | √ | 读 、写 | |
キングベース | √ | √ | 读、写 | |
ユニバーサル RDBMS (すべてのリレーショナル データベースをサポート) | √ | √ | 读 、写 | |
Alibaba Cloud データ ウェアハウス データ ストレージ | ODPS | √ | √ | 读 、写 |
ADB | √ | 書く | ||
ADS | √ | 書く | ||
私たち | √ | √ | 读 、写 | |
OCS | √ | 書く | ||
ホログレス | √ | 書く | ||
PostgreSQL 用 AnalyticDB | √ | 書く | ||
アリババクラウドミドルウェア | データハブ | √ | √ | 読み書き |
SLS | √ | √ | 読み書き | |
アリババクラウドグラフデータベース | GDB | √ | √ | 读 、写 |
NoSQLデータストレージ | OTS | √ | √ | 读 、写 |
Hbase0.94 | √ | √ | 读 、写 | |
Hbase1.1 | √ | √ | 读 、写 | |
フェニックス4.x | √ | √ | 读 、写 | |
フェニックス5.x | √ | √ | 读 、写 | |
モンゴDB | √ | √ | 读 、写 | |
カサンドラ | √ | √ | 读 、写 | |
データウェアハウスのデータストレージ | スターロックス | √ | √ | 读 、写 |
アパッチドリス | √ | 書く | ||
クリックハウス | √ | 書く | ||
データベンド | √ | 書く | ||
ハイブ | √ | √ | 读 、写 | |
しなければならない | √ | 書く | ||
選択されたデータベース | √ | 書く | ||
非構造化データストレージ | テキストファイル | √ | √ | 读 、写 |
FTP | √ | √ | 读 、写 | |
HDFS | √ | √ | 读 、写 | |
エラスティックサーチ | √ | 書く | ||
時系列データベース | OpenTSDB | √ | 読む | |
TSDB | √ | √ | 读 、写 | |
TDエンジン | √ | √ | 读 、写 |
4.DataXのインストール
4.1 環境の準備
- Linuxシステム
- JDK (1.8以上、1.8推奨)
- Python (2 または 3)
- Apache Maven 3.x (ソース コードから DataX をコンパイルする場合に必要)
4.2 インストール方法
- 方法 1: DataX ツールキットを直接ダウンロードします。DataX ダウンロード アドレス
上記のリンクが機能しない場合は、< a i=3 >公式アドレス以下に示すリンクを見つけてダウンロードします。 ダウンロード後、ローカル ディレクトリに解凍し、bin ディレクトリに入り、同期ジョブ: a>
$ cd {
YOUR_DATAX_HOME}/bin
$ python datax.py {
YOUR_JOB.json}
セルフテスト スクリプト:
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json
- 方法 2. DataX ソース コードをダウンロードし、自分でコンパイルします。DataX ソース コード
(1) DataX ソース コードをダウンロードします。あ>
git clone [email protected]:alibaba/DataX.git
(2) Maven によるパッケージ化:
$ cd {DataX_source_code_home}
$ mvn -U clean package Assembly:assembly -Dmaven.test.skip=true
パッケージ化が成功し、ログが次のように表示されます。
[情報] ビルド成功
[情報] ---------------------------- -------------------------------------
[情報] 合計時間: 08:12 分
[情報] 終了時刻: 2015-12-13T16:26:48+08:00
[情報] 最終メモリ: 133M /960M
[情報] ------------------------------------ ------------------------
正常にパッケージ化された DataX パッケージは {DataX_source_code_home}/target/datax/datax/ にあり、次の構造になっています。
$ cd {DataX_source_code_home}
$ ls ./target/datax/datax/
bin conf job lib log log_perf プラグイン スクリプト tmp
5. 実際の事例デモンストレーション
まず、2 つのデータ ソースが必要です。1 つは元のデータ ソース、もう 1 つはターゲット データ ソースです。デモンストレーションの便宜上、MySQL データベースを使用します。デモンストレーションの例は次のとおりです。 /span>把mysql1中saturn-test数据库中的st_student表中的数据迁移到mysql2中saturn-test数据库中的st_student表中
主に job.json ファイルの記述にあります。公式が良い例を提供してくれました。値を割り当てて、独自のデータベース接続構成に変更するだけです。 [MySQL の読み取りと書き込み] リンクをクリックします< /span>
まず、MySQL からデータを読み取るので、MYSQL の読み取りと書き込みのジョブ構成を記述する方法を確認します。
詳細ご自身でお読みくださいMysqlReader プラグインのドキュメント
詳細ご自身でお読みくださいMysqlWriter プラグインのドキュメント
例 myjob.json
{
"job": {
"setting": {
"speed": {
"channel": 3
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "数据库用户",
"password": "数据库密码",
"column": [
"stu_id",
"stu_name"
],
"splitPk": "stu_id",
"connection": [
{
"table": [
"st_student"
],
"jdbcUrl": [
"jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF8"
]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"writeMode": "insert",
"username": "数据库用户",
"password": "数据库密码",
"column": [
"stu_id",
"stu_name"
],
"session": [
"set session sql_mode='ANSI'"
],
"preSql": [
"delete from st_student"
],
"connection": [
{
"jdbcUrl": "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF8",
"table": [
"st_student"
]
}
]
}
}
}
]
}
}
datax.py を呼び出し、先ほど定義した myjob.json を実行します。
python /datax インストールパス/bin/datax.py /myjob.json が配置されているディレクトリの絶対パス/myjob.json
例:
python /opt/soft/datax/bin/myjob.json /opt/scripts/datax/myjob.json
実行が成功すると、コンソールに上記の情報が表示されます。エラーが発生した場合は、エラー ログに従ってエラーのトラブルシューティングを行い、実行を再実行します。
2 つのデータベースをクエリすると、データが正常に移行および同期されていることを確認します。 datax の使い方は非常に簡単ではありませんか? 練習すればするほど、より習得できるようになります。