元ドキュメント: MyLoader を使用した Bulk Load データインポート
MyLoader を使用した Bulk Load データインポート
このセクションでは、Bulk Load モードを使用して大量のデータを高速にデータベースにロードする方法について説明します。
前提条件
- ソースデータファイルを準備し、インポートマシンに配置していること
- ターゲットデータベースおよびテーブルを作成済みであること
- インポートマシンと TDSQL Boundless クラスタが正常に通信できること
- Tencent Cloud テクニカルサポートに連絡して MyLoader ツールを取得していること
操作手順
root ユーザーでインポートマシンにログインします。
MyLoader ツールのディレクトリに移動します。
bash
cd /data/tdsql3_run/6008/SQLEngine/bin/- 以下のコマンドを実行し、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-load | Bulk Load インポートモードを有効化します。 |
--enable-tdsql-bulk-load-allow-unsorted | --enable-tdsql-bulk-load-allow-unsorted | Bulk Load インポート時にプライマリキーデータの順不同をサポートします。インポートするデータファイル内のレコードがプライマリキーの順序でソートされていない場合、このオプションを追加する必要があります。 |
-r | --rows | -r × -q でトランザクションサイズを制御します。Bulk Load モードでは、1 トランザクションのデータ量は 100MB〜10GB を推奨します。MyLoader はデータファイル(.sql)からインポートする際、トランザクションがデータファイルをまたぐことはありません。-r × -q を大きく設定しても、.sql ファイルに 1000 行しかない場合、MyLoader が生成するトランザクションは 1000 行分のみとなります。そのため、データファイル自体が小さすぎないようにする必要があります。 |
-q | --queries-per-transaction | トランザクションあたりのクエリ数。 |
-h | --host | TDSQL Boundless データベースの接続 IP アドレス。 |
-P | --port | TDSQL Boundless データベースの接続ポート。 |
-u | --user | TDSQL Boundless データベースの接続アカウント。 |
-p | --password | TDSQL 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-database | MyLoader はデータベースを作成せず、指定されたデータベースにデータのインポートを試みます。指定されたデータベースが存在しない場合、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: デバッグ情報、情報、警告、エラー情報を出力。 |