Datax の使用説明と入門レベルの操作ケースのデモンストレーション

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 の使い方は非常に簡単ではありませんか? 練習すればするほど、より習得できるようになります。

おすすめ

転載: blog.csdn.net/qq_41865652/article/details/130642092