純鈞(ChunJun、旧称FlinkX)は、安定性が高く、使いやすく、効率的で、バッチとストリームを統合したデータ統合フレームワークです。リアルタイム計算エンジンFlinkに基づいており、JSONテンプレートでタスクを設定でき、Flink SQL構文に対応し、分散実行をサポートしています。また、flink-standalone、yarn-session、yarn-per jobなど、さまざまなコミット方式に対応しており、完全同期や増分同期などの機能も備えています。
以下では、ChunJunのLocalモードを使用してMySQLデータベースからOceanBaseデータベース(MySQLモード)へデータを移行する方法について説明します。
シナリオの概要
MySQLデータベースのテーブル tbl1 のデータをOceanBaseデータベースのテーブル test_tbl1 に移行します。データベース情報は以下のとおりです:
| MySQLデータベース情報(ソースデータベース) | サンプル値 |
|---|---|
| ホストアドレス | xxx.xxx.xxx.xxx |
| ポート番号 | 3306 |
| ユーザー名 | root |
| ユーザーのパスワード | ****** |
| スキーマ名 | test_mysql_to_ob |
| テーブル名 | tbl1 |
| OceanBaseデータベース情報(ターゲットデータベース) | サンプル値 |
|---|---|
| クラスタ名 | test4000 |
| ホストアドレス | 10.10.10.2 |
| ポート番号 | 2881 |
| ビジネステナント名(MySQLモード) | mysql001 |
| ユーザー名 | root |
| ユーザーのパスワード | ****** |
| スキーマデータベース名 | test_data |
| テーブル名 | test_tbl1 |
前提条件
JDK 1.8をインストールし、JAVA_HOME 環境変数を設定します。
操作手順
ステップ1:ChunJun環境の準備
ChunJun圧縮ファイルをダウンロードし、解凍します。
chunjun-dist.tar.gz をダウンロードします。
wget https://github.com/DTStack/chunjun/releases/download/v1.12.6/chunjun-dist.tar.gz圧縮ファイルを
/chunjun_Home/chunjunディレクトリに解凍します。mkdir /ChunJun_Home/chunjun && tar zxvf chunjun-dist.tar.gz -C /ChunJun_Home/chunjunChunJun環境変数を設定します。
export ChunJun_HOME=/ChunJun_Home/chunjun-dist
ステップ2:JSONファイルを設定する
環境情報に基づいて、MySQLデータベースのテーブルtbl1からOceanBaseデータベースのテーブルtest_tbl1へデータをマイグレーションするためのJSONファイルを設定します。
例:
[root@xxx /]
$cd /ChunJun_Home/chunjun-dist/chunjun-examples/json
[root@xxx /ChunJun_Home/chunjun-dist/chunjun-examples/json]
$mkdir test_data
[root@xxx /ChunJun_Home/chunjun-dist/chunjun-examples/json]
$cd mkdir test_data
[root@xxx /ChunJun_Home/chunjun-dist/chunjun-examples/json/test_data]
$vi test_mysql_to_ob.json
{
"job": {
"setting": {
"errorLimit": {
"record": 0,
"percentage": 0.02},
"speed": {"bytes": 0,
"channel": 1}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "******",
"column": [
"*"
],
"connection": [
{
"jdbcUrl": [
"jdbc:mysql://xxx.xxx.xxx.xxx:3306/test_mysql_to_ob"
],
"table": [
"tbl1"
]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"column": [
"*"
],
"connection": [
{
"jdbcUrl": "jdbc:mysql://10.10.10.2:2881/test_data",
"table": [
"test_tbl1"
]
}
],
"username": "root@mysql001",
"password": "******"
}
}
}
]
}
}
ステップ3:JSON設定ファイルを実行する
JVMプロセスを起動して、ChunJunタスクを実行します。
/ChunJun_Home/chunjun-dist ディレクトリに移動し、次のコマンドを実行します:
[root@xxx /]
$cd /ChunJun_Home/chunjun-dist
[admin@xxx /ChunJun_Home/chunjun-dist]
$sh bin/chunjun-local.sh -job chunjun-examples/json/test_data/test_mysql_to_ob.json
# #
# #
#
##### ###### # # # #### #### # # # ####
# # # # # ## # # # # ## #
# # # # # # # # # # # #
# # # # ## # # # # ## # #
##### # # #### # # # # #### # # #
#
####
Reference site: https://dtstack.github.io/chunjun
chunjun is starting ...
CHUNJUN_HOME is auto set /ChunJun_Home/chunjun-dist
FLINK_HOME is empty!
HADOOP_HOME is empty!
...
<ellipsis>
...
*********************************************
numWrite | 3
last_write_num_0 | 0
conversionErrors | 0
writeDuration | 20130
duplicateErrors | 0
numRead | 3
snapshotWrite | 0
otherErrors | 0
readDuration | 78
byteRead | 389
last_write_location_0 | 0
byteWrite | 389
nullErrors | 0
nErrors | 0
*********************************************
2023-01-06 19:18:57,306 - 50207 INFO [main] com.dtstack.chunjun.Main:program Flink_Job execution success
ステップ4:データ移行状況を確認する
OceanBaseデータベースにログインし、データが正常に移行されたかどうかを確認します。
[admin@xxx /home/admin]
$obclient -h10.10.10.2 -P2881 -uroot@mysql001 -p -A
Enter password:
Welcome to the OceanBase. Commands end with ; or \g.
Your OceanBase connection id is 3221630190
Server version: OceanBase 4.0.0.0 (r101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322) (Built Dec 7 2022 16:22:15)
Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
obclient [(none)]> use test_data;
Database changed
obclient [test_data]> SELECT * FROM test_tbl1;
+------+-----------+------+
| COL1 | COL2 | COL3 |
+------+-----------+------+
| 1 | China | 86 |
| 2 | Taiwan | 886 |
| 3 | Hong Kong | 852 |
+------+-----------+------+
3 rows in set
関連ドキュメント
- ChunJunの特徴に関する詳細情報については、Features of ChunJunを参照してください。
- ChunJunのクイックスタートの詳細については、Quick Startを参照してください。
- ソースデータベースとしてMySQLデータベースを使用する場合のJSONファイルの詳細については、MySQL Sourceを参照してください。
- スクリプトのその他の例については、プロジェクト内の
/chunjun-dist/chunjun-examplesフォルダ内のファイルを参照してください。