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

考慮事項

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

メモリ制限

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

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

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

システム設定

このセクションでは、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 は各 tablet にデータを受信して書き込むために 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%

システム変数設定

次のシステム変数を設定できます。

  • query_timeout

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