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

PolarDB:Batch Tool を使用したデータのインポートおよびエクスポート

最終更新日:Mar 29, 2026

Batch Tool は、PolarDB-X チームが開発した Java ベースの CLI ユーティリティであり、PolarDB-X データベースに対するバルクデータ操作を実行するために設計されています。プロデューサー/コンシューマー方式に基づいて構築されており、ファイルからのデータインポート、ファイルへのデータエクスポート、および MySQL、PolarDB-X 1.0、PolarDB-X 2.0 の各データソース間でのデータ移行をサポートします。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • ご利用のマシンに Java がインストールされていること

  • 対象となる PolarDB-X データベースへネットワーク接続できること

Batch Tool のダウンロード

以下のリンクから JAR パッケージをダウンロードしてください。

batch-tool.jar

利用可能なすべてのオプションを表示するには、次のコマンドを実行します。

java -jar batch-tool.jar --help

パラメーター

このドキュメント内のすべての例では、デフォルトで UTF-8 エンコーディングとカンマ (,) をフィールド区切り文字として使用します。

下記の表に、すべてのパラメーターを一覧表示します。必須パラメーターは操作タイプによって異なります。コマンドの構文については、「」セクションをご参照ください。

パラメーター長形式説明デフォルト
-o--operation操作タイプ:exportimportdelete、または update
-h--hostデータベースのホスト IP アドレス
-P--portデータベースのポート番号
-u--userユーザー名
-p--passwordパスワード
-D--databaseデータベース名
-t--table対象テーブル名
-s--sepフィールド区切り文字(デリミタ)
-f--fileインポート元ファイルのパス(セミコロン区切り)
-dir--directoryインポート対象ファイルを格納するディレクトリ
-F--filenum出力ファイル数(固定)
-L--line出力ファイルごとの最大行数
-w--where行をフィルターするための WHERE 条件(例: col1>99 AND col2<100
-col--columnsエクスポート対象のカラム(セミコロン区切り)
-format--fileFormatファイルフォーマット:NONETXTCSVXLS、または XLSXNONE
-comp--compress圧縮方式:NONE または GZIPNONE
-encrypt--encrypt暗号化方式:NONEAES、または SM4NONE
-key--secretKey暗号化に使用するシークレットキー
-DDL--DDLDDL モード:NONEONLY、または WITHNONE
-cs--charsetファイルの文字セット
-header--header先頭行をカラム名として処理するfalse
-quote--quoteModeフィールド値の引用符モード:AUTOFORCE、または NONEAUTO
-lastSep--withLastSep各行の末尾に区切り文字を付与するかどうかfalse
-sharding--shardingシャーディングモードを有効化する操作タイプに応じて変動
-batchsize--batchSizeINSERT 操作におけるバッチサイズ
-pro--producerプロデューサー スレッド数
-con--consumerコンシューマー スレッド数
-fcon--forceConsumerコンシューマーの並列実行を強制する
-tps--tpsLimit1 秒あたりのトランザクション数(TPS)制限(-1 の場合、制限なし)-1
-readsize--readSize読み取りブロックサイズ(MB)
-ringsize--ringSizeリングバッファーのサイズ(2 のべき乗である必要があります)
-maxConn--maxConnection最大接続数(Druid プール)
-minConn--minConnection最小接続数(Druid プール)
-maxWait--connMaxWait接続取得時の最大待機時間(ミリ秒)
-initSqls--initSqls接続初期化用 SQL ステートメント(Druid)
-param--connParamJDBC 接続パラメーター(key1=val1&key2=val2 形式)
-lb--loadbalanceJDBC ロードバランスを有効化する。-h で複数のホストを host1:port1,host2:port2false
-O--orderbyエクスポート時の並べ替え順序:asc または desc
-OC--orderCol並べ替え対象のカラム名(セミコロン区切り)
-para--paraMergeORDER BY を使用したエクスポート時に並列マージを使用するfalse
-local--localMergeローカルマージソートを使用するfalse
-mask--maskエクスポート時に機密カラムをマスキングするための JSON 構成
-in--whereInWHERE col IN (values) 構文を使用するfalse
-func--sqlFuncUPDATE 操作で SQL 関数を使用するfalse
-noEsc--noEscapeSQL の値エスケープを無効化するfalse
-i--ignoreINSERT-IGNORE モードを有効化し、ブレークポイントから再開可能にするfalse
-error--maxErrorプログラム終了前の最大エラー数
-H--historyFileブレークポイント再開用の履歴ファイルパス
-pre--prefixエクスポートファイル名のプレフィックス
-rfonly--readFileOnlySQL を実行せずにファイルを読み取り・処理するfalse
-perf--perfModeパフォーマンスモードを有効化する(互換性が低下)false
-config--configFileYAML 構成ファイルのパス
-help--helpヘルプメッセージ
-v--versionBatch Tool のバージョンを表示して終了する

以下の例では、UTF-8 エンコーディングとカンマ (,) をフィールド区切り文字として使用します。プレースホルダーの値は、実際の接続情報をもとに置き換えてください。

データのエクスポート

以下の例では、シャーディングモードで customer テーブルから tpch データベースのデータをエクスポートします。

デフォルト設定でエクスポートする

出力ファイル数は、テーブルのシャード数と等しくなります。

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o export -t customer -s , -col "c_custkey;c_name;c_nationkey"

固定数のファイルに出力する

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o export -t customer -s , -F 3

-F 3 により、出力を正確に 3 つのファイルに分割します。

ファイルごとの行数を制限する

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o export -t customer -s , -L 100000

-L 100000 により、各ファイルの最大行数を 100,000 行に設定します。各ファイルには 200 行~100,000 行が含まれる可能性があります。

WHERE 条件で行をフィルターする

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o export -t customer -s , -w "c_nationkey=10"

-w "c_nationkey=10" により、c_nationkey10 に等しい行のみをエクスポートします。

フィールド値を強制的に引用符で囲む

フィールド値に区切り文字が含まれる場合は、-quote force を使用して、すべての値を二重引用符で囲みます。

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o export -t customer -s , -quote force

指定カラムのみをエクスポートする

-col を使用して、指定したカラムのみをエクスポートします。

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o export -t customer -s , -col "c_custkey;c_name;c_nationkey"

-col "c_custkey;c_name;c_nationkey" により、これらの 3 つのカラムのみをセミコロン区切りでエクスポートします。

GZIP 圧縮でエクスポートする

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o export -t customer -s , -comp GZIP

-comp GZIP により、各出力ファイルが圧縮されます。大規模なテーブルをエクスポートする際にディスク使用率を削減する場合に使用します。

DDL を含めてエクスポートする

-DDL WITH を使用すると、データとともに CREATE TABLE ステートメントも出力されます。

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o export -t customer -s , -DDL WITH

DDL のみ(データなし)をエクスポートする場合は、-DDL ONLY を使用します。

ORDER BY を使用してエクスポートする

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o export -t customer -s , -O asc -OC "c_custkey"
  • -O asc により、並べ替え方向を昇順に設定します。

  • -OC "c_custkey" により、並べ替え対象のカラムを指定します。

大規模なテーブルの場合、エクスポート速度を向上させるために、-para true を追加して並列マージソートを使用できます。

データのインポート

以下の例では、シャーディングモードで lineitem テーブルにデータをインポートします。このテーブルは tpch データベースにあります。

インポートを実行する前に、対象テーブルを作成してください。テーブル構造は、ソースファイルの構造と一致している必要があります。

単一ファイルをインポートする

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o import -t lineitem -s , -f "./data/lineitem.csv" -i true -H "./lineitem_history.txt"

-f "./data/lineitem.csv" により、ソース CSV ファイルのパスを指定します。

ディレクトリ内のすべてのファイルをインポートする

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o import -t lineitem -s , -dir "./data/lineitem/"

-dir "./data/lineitem/" により、指定されたディレクトリ内のすべてのファイルをインポートします。各ファイル名は対象テーブル名で始める必要があります(例: lineitem0_1)。

ブレークポイントから再開してインポートする

インポートが中断された場合、-i true および -H を使用して、中断地点から再開できます。

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o import -t lineitem -s , -f "./data/lineitem.csv" -i true -H "./lineitem_history.txt"
  • -i true により、INSERT-IGNORE モードおよびブレークポイント再開が有効化されます。

  • -H "./lineitem_history.txt" により、進行状況を追跡する履歴ファイルを指定します。

インポートスループットをチューニングする

大規模なインポートでは、同時実行数およびバッチサイズを調整することでパフォーマンスを向上させられます。

java -jar batch-tool.jar -P 3306 -h 127.0.XX.XX -u user_**** -p 12**** -D tpch -o import -t lineitem -s , -dir "./data/lineitem/" -pro 4 -con 8 -batchsize 500
  • -pro 4 により、ファイルからデータを読み取るプロデューサー スレッド数を 4 に設定します。

  • -con 8 により、データベースへデータを書き込むコンシューマー スレッド数を 8 に設定します。

  • -batchsize 500 により、1 バッチあたりの挿入行数を 500 行に設定します。

これらの値から開始し、データベースの容量および実測されたスループットに基づいて調整してください。