Skip to content

MyLoader を使用した Bulk Load データインポート

このセクションでは、Bulk Load モードを使用して大量のデータを高速にデータベースにロードする方法について説明します。

前提条件

  • ソースデータファイルを準備し、インポートマシンに配置していること
  • ターゲットデータベースおよびテーブルを作成済みであること
  • インポートマシンと TDSQL Boundless クラスタが正常に通信できること
  • Tencent Cloud テクニカルサポートに連絡して MyLoader ツールを取得していること

操作手順

  1. root ユーザーでインポートマシンにログインします。

  2. MyLoader ツールのディレクトリに移動します。

bash
cd /data/tdsql3_run/6008/SQLEngine/bin/
  1. 以下のコマンドを実行し、Bulk Load モードでデータをインポートします。
bash
./myloader -h 10.34.159.202 -P 17110 -u test -p test123 -t 20 -B sbtest \
  -d /data/TDSQLV30/Module8-409/TDSQL3-TOOLS/bin/loader_file \
  -r 8000 -q 100 --max-threads-per-table=20 \
  --max-retry-statement-count=10 --max-retry-checkpoint-count=10 \
  --not-create-database --insert-ignore=True --append-if-not-exist \
  --enable-tdsql-bulk-load -v 3

パラメータ一覧

パラメータ正式名称説明
--enable-tdsql-bulk-load--enable-tdsql-bulk-loadBulk Load インポートモードを有効化します。
--enable-tdsql-bulk-load-allow-unsorted--enable-tdsql-bulk-load-allow-unsortedBulk Load インポート時にプライマリキーデータの順不同をサポートします。インポートするデータファイル内のレコードがプライマリキーの順序でソートされていない場合、このオプションを追加する必要があります。
-r--rows-r × -q でトランザクションサイズを制御します。Bulk Load モードでは、1 トランザクションのデータ量は 100MB〜10GB を推奨します。MyLoader はデータファイル(.sql)からインポートする際、トランザクションがデータファイルをまたぐことはありません。-r × -q を大きく設定しても、.sql ファイルに 1000 行しかない場合、MyLoader が生成するトランザクションは 1000 行分のみとなります。そのため、データファイル自体が小さすぎないようにする必要があります。
-q--queries-per-transactionトランザクションあたりのクエリ数。
-h--hostTDSQL Boundless データベースの接続 IP アドレス。
-P--portTDSQL Boundless データベースの接続ポート。
-u--userTDSQL Boundless データベースの接続アカウント。
-p--passwordTDSQL Boundless データベースの接続パスワード。
-B--databaseターゲットデータベース名。
-d--directoryロードするデータファイルのディレクトリを指定します。
-t--threadsデータロード時に使用するスレッド数。デフォルトは 4 です。
--max-threads-per-table--max-threads-per-tableテーブルごとに使用する最大スレッド数を設定します。デフォルト値は 4 です。
--max-retry-statement-count--max-retry-statement-count単一のクエリが失敗した場合のステートメント再試行の最大回数を設定します。デフォルト値は 0 です。
--max-retry-checkpoint-count--max-retry-checkpoint-countチェックポイントでエラーが発生した場合の最大再試行回数を設定します。デフォルト値は 0 です。
--not-create-database--not-create-databaseMyLoader はデータベースを作成せず、指定されたデータベースにデータのインポートを試みます。指定されたデータベースが存在しない場合、MyLoader はエラーを報告してインポートプロセスを停止します。
--insert-ignore--insert-ignore重複するプライマリキーレコードの挿入時に INSERT IGNORE ステートメントを有効化します。
--append-if-not-exist--append-if-not-existテーブル作成ステートメントに IF NOT EXISTS 句を追加します。
-v--verboseログ出力の詳細レベルを設定します。0: サイレントモード(出力なし)。1: エラー情報のみ出力。2(デフォルト): 警告情報とエラー情報を出力。3: 情報、警告、エラー情報を出力。4: デバッグ情報、情報、警告、エラー情報を出力。

Tencent Cloud プロダクトドキュメント