メインコンテンツまでスキップ
バージョン: Stable-3.3

Considerations

このトピックでは、データロードを実行する前に考慮すべきシステムの制限と設定について説明します。

メモリ制限

StarRocks は、各ロードジョブのメモリ使用量を制限するためのパラメータを提供しており、特に高い同時実行性のシナリオでメモリ消費を削減します。ただし、メモリ使用量の制限を過度に低く設定しないでください。メモリ使用量の制限が過度に低い場合、ロードジョブのメモリ使用量が指定された制限に達するため、データが頻繁にメモリからディスクにフラッシュされる可能性があります。ビジネスシナリオに基づいて適切なメモリ使用量の制限を指定することをお勧めします。

メモリ使用量を制限するために使用されるパラメータは、各ロード方法によって異なります。詳細については、 Stream LoadBroker LoadRoutine LoadSpark Load 、および INSERT を参照してください。ロードジョブは通常、複数の BEs または CNs で実行されます。そのため、パラメータは、関与する各 BE または CN 上の各ロードジョブのメモリ使用量を制限し、すべての関与する BEs または CNs 上のロードジョブの総メモリ使用量を制限するわけではありません。

StarRocks はまた、各個別の BE または CN 上で実行されるすべてのロードジョブの総メモリ使用量を制限するためのパラメータを提供しています。詳細については、以下の「 System configurations 」セクションを参照してください。

システム設定

このセクションでは、StarRocks が提供するすべてのロード方法に適用されるいくつかのパラメータ設定について説明します。

FE 設定

各 FE の設定ファイル fe.conf で次のパラメータを設定できます。

  • max_load_timeout_secondmin_load_timeout_second

    これらのパラメータは、各ロードジョブの最大タイムアウト期間と最小タイムアウト期間を指定します。タイムアウト期間は秒単位で測定されます。デフォルトの最大タイムアウト期間は 3 日間で、デフォルトの最小タイムアウト期間は 1 秒です。指定する最大タイムアウト期間と最小タイムアウト期間は、1 秒から 3 日間の範囲内でなければなりません。これらのパラメータは、同期ロードジョブと非同期ロードジョブの両方に有効です。

  • desired_max_waiting_jobs

    このパラメータは、キューで待機中のロードジョブの最大数を指定します。デフォルト値は 1024 です(v2.4 以前は 100、v2.5 以降は 1024)。FE 上の PENDING 状態のロードジョブの数が指定した最大数に達すると、FE は新しいロードリクエストを拒否します。このパラメータは、非同期ロードジョブにのみ有効です。

  • max_running_txn_num_per_db

    このパラメータは、StarRocks クラスターの各データベースで許可される進行中のロードトランザクションの最大数を指定します。ロードジョブには 1 つ以上のトランザクションが含まれる場合があります。デフォルト値は 100 です。データベースで実行中のロードトランザクションの数が指定した最大数に達すると、送信した後続のロードジョブはスケジュールされません。この状況で、同期ロードジョブを送信すると、ジョブは拒否されます。非同期ロードジョブを送信すると、ジョブはキューで待機中になります。

    注記

    StarRocks はすべてのロードジョブを一緒にカウントし、同期ロードジョブと非同期ロードジョブを区別しません。

  • label_keep_max_second

    このパラメータは、完了し FINISHED または CANCELLED 状態にあるロードジョブの履歴記録の保持期間を指定します。デフォルトの保持期間は 3 日間です。このパラメータは、同期ロードジョブと非同期ロードジョブの両方に有効です。

BE/CN 設定

各 BE の設定ファイル be.conf または各 CN の設定ファイル cn.conf で次のパラメータを設定できます。

  • write_buffer_size

    このパラメータは、最大メモリブロックサイズを指定します。デフォルトサイズは 100 MB です。ロードされたデータは最初に BE または CN 上のメモリブロックに書き込まれます。ロードされたデータの量が指定した最大メモリブロックサイズに達すると、データはディスクにフラッシュされます。ビジネスシナリオに基づいて適切な最大メモリブロックサイズを指定する必要があります。

    • 最大メモリブロックサイズが非常に小さい場合、BE または CN 上に多数の小さなファイルが生成される可能性があります。この場合、クエリパフォーマンスが低下します。生成されるファイルの数を減らすために、最大メモリブロックサイズを増やすことができます。
    • 最大メモリブロックサイズが非常に大きい場合、リモートプロシージャコール (RPC) がタイムアウトする可能性があります。この場合、ビジネスニーズに基づいてこのパラメータの値を調整できます。
  • streaming_load_rpc_max_alive_time_sec

    各 Writer プロセスの待機タイムアウト期間。デフォルト値は 1200 秒です。データロードプロセス中、StarRocks は各タブレットにデータを受信して書き込むために Writer プロセスを開始します。指定した待機タイムアウト期間内に Writer プロセスがデータを受信しない場合、StarRocks は Writer プロセスを停止します。StarRocks クラスターが低速でデータを処理する場合、Writer プロセスは長期間にわたって次のデータバッチを受信せず、「TabletWriter add batch with unknown id」エラーを報告することがあります。この場合、このパラメータの値を増やすことができます。

  • load_process_max_memory_limit_bytesload_process_max_memory_limit_percent

    これらのパラメータは、各個別の BE または CN 上でのすべてのロードジョブに消費される最大メモリ量を指定します。StarRocks は、2 つのパラメータの値のうち、より小さいメモリ消費量を最終的に許可されるメモリ消費量として識別します。

    • load_process_max_memory_limit_bytes: 最大メモリサイズを指定します。デフォルトの最大メモリサイズは 100 GB です。

    • load_process_max_memory_limit_percent: 最大メモリ使用量を指定します。デフォルト値は 30% です。このパラメータは mem_limit パラメータとは異なります。mem_limit パラメータは、StarRocks クラスターの総最大メモリ使用量を指定し、デフォルト値は 90% x 90% です。

      BE または CN が存在するマシンのメモリ容量を M とすると、ロードジョブに消費される最大メモリ量は次のように計算されます: M x 90% x 90% x 30%

システム変数設定

次の system variable を設定できます。

  • query_timeout

    クエリのタイムアウト期間。単位: 秒。値の範囲: 1 から 259200。デフォルト値: 300。この変数は、現在の接続内のすべてのクエリステートメント、および INSERT ステートメントに影響します。