クロスクラスタデータ移行ツール
StarRocks クロスクラスタデータ移行ツールは、StarRocks コミュニティによって提供されています。このツールを使用すると、ソースクラスタからターゲットクラスタへのデータ移行を簡単に行うことができます。
- StarRocks クロスクラスタデータ移行ツールは、共有なしクラスタから別の共有なしクラスタまたは共有データクラスタへのデータ移行のみをサポートします。
- ターゲットクラスタの StarRocks バージョンは v3.1.8、v3.2.3 以降である必要があります。
準備
データ移行のために、ターゲットクラスタで以下の準備を行う必要があります。
ポートを開く
ファイアウォールを有効にしている場合、これらのポートを開く必要があります。
| コンポーネント | ポート | デフォルト |
|---|---|---|
| FE | query_port | 9030 |
| FE | http_port | 8030 |
| FE | rpc_port | 9020 |
| BE | be_http_port | 8040 |
| BE | be_port | 9060 |
レプリケーションのレガシー互換性を有効にする
StarRocks は、古いバージョンと新しいバージョンで動作が異なる場合があり、クロスクラスタデータ移行中に問題を引き起こす可能性があります。そのため、データ移行の前にターゲットクラスタでレガシー互換性を有効にし、データ移行が完了した後に無効にする必要があります。
-
レプリケーションのレガシー互換性が有効かどうかを確認するには、次のステートメントを使用します。
ADMIN SHOW FRONTEND CONFIG LIKE 'enable_legacy_compatibility_for_replication';trueが返された場合、レプリケーションのレガシー互換性が有効であることを示します。 -
レプリケーションのレガシー互換性を動的に有効にするには、次のステートメントを使用します。
ADMIN SET FRONTEND CONFIG("enable_legacy_compatibility_for_replication"="true"); -
クラスタの再起動時にデータ移行プロセス中にレガシー互換性が自動的に無効にならないようにするために、FE 設定ファイル fe.conf に次の設定項目を追加する必要があります。
enable_legacy_compatibility_for_replication = true
データ移 行が完了したら、設定ファイルから enable_legacy_compatibility_for_replication = true を削除し、次のステートメントを使用してレプリケーションのレガシー互換性を動的に無効にする必要があります。
ADMIN SET FRONTEND CONFIG("enable_legacy_compatibility_for_replication"="false");
Compaction を無効にする
データ移行のターゲットクラスタが共有データクラスタである場合、データ移行を開始する前に手動で Compaction を無効にし、データ移行が完了した後に再度有効にする必要があります。
-
Compaction が有効かどうかを確認するには、次のステートメントを使用します。
ADMIN SHOW FRONTEND CONFIG LIKE 'lake_compaction_max_tasks';0が返された場合、Compaction が無効であることを示します。 -
Compaction を動的に無効にするには、次のステートメントを使用します。
ADMIN SET FRONTEND CONFIG("lake_compaction_max_tasks"="0"); -
クラスタの再起動時にデータ移行プロセス 中に Compaction が自動的に有効にならないようにするために、FE 設定ファイル fe.conf に次の設定項目を追加する必要があります。
lake_compaction_max_tasks = 0
データ移行が完了したら、設定ファイルから lake_compaction_max_tasks = 0 を削除し、次のステートメントを使用して Compaction を動的に有効にする必要があります。
ADMIN SET FRONTEND CONFIG("lake_compaction_max_tasks"="-1");
カラムフィルタリングを無効にする
Scan ステージでの未使用カラムフィルタリングの最適化は、移行されたデータに対するクエリ中にクラッシュを引き起こす可能性があります。データ移行の前にこの最適化を無効にする必要があります。
SET GLOBAL enable_filter_unused_columns_in_scan_stage=false;
enable_filter_unused_columns_in_scan_stage
- 説明: Scan ステージで未使用カラムをフィルタリングするかどうか。
- デフォルト: true
- 導入バージョン: v3.1
データ移行の設定 (オプション)
次の FE および BE パラメータを使用してデータ移行操作を設定できます。ほとんどの場合、デフォルトの設定で十分です。デフォルトの設定を使用する場合、このステップをスキップできます。
以下の設定項目の値を増やすと移行が加速しますが、ソースクラスタへの負荷も増加しますのでご注意ください。
FE パラメータ
以下の FE パラメータは動的設定項目です。変更方法については、Configure FE Dynamic Parameters を参照してください。
| パラメータ | デフォルト | 単位 | 説明 |
|---|---|---|---|
| replication_max_parallel_table_count | 100 | - | 許可される同時データ同期タスクの最大数。StarRocks は各テーブルに対して 1 つの同期タスクを作成します。 |
| replication_max_parallel_replica_count | 10240 | - | 同時同期のために許可される tablet レプリカの最大数。 |
| replication_max_parallel_data_size_mb | 1048576 | MB | 同時同期のために許可されるデータの最大サイズ。 |
| replication_transaction_timeout_sec | 86400 | 秒 | 同期タスクのタイムアウト時間。 |
BE パラメータ
以下の BE パラメータは動的設定項目です。変更方法については、Configure BE Dynamic Parameters を参照してください。
| パラメータ | デフォルト | 単位 | 説明 |
|---|---|---|---|
| replication_threads | 0 | - | 同期タスクを実行するためのスレッド数。0 は、BE が存在するマシンの CPU コア数の 4 倍にスレッド数を設定することを示します。 |