次の方法で共有


要求の制限ポリシー

適用対象: ✅Microsoft FabricAzure Data Explorer

ワークロード グループの要求制限ポリシーを使用すると、その実行中に要求によって使用されるリソースを制限できます。

ポリシー オブジェクト

各制限は次で構成されます。

  • 型指定された Value - 制限の値。
  • IsRelaxable - 要求の 要求プロパティの一部として、呼び出し元が制限を緩和できるかどうかを定義するブール値。

次の制限は構成可能です。

財産 種類 形容 サポートされている値 照合クライアント要求プロパティ
DataScope string クエリのデータ スコープ。 この値は、クエリがすべてのデータに適用されるか、ホット キャッシュのみに適用されるかを決定します。 AllHotCache、または null query_datascope
MaxMemoryPerQueryPerNode long クエリが割り当てることができるメモリの最大量 (バイト単位)。 [1, 50% の単一ノードの合計 RAM] max_memory_consumption_per_query_per_node
MaxMemoryPerIterator long クエリ演算子が割り当てることができるメモリの最大量 (バイト単位) [1, 50% の単一ノードの合計 RAM] maxmemoryconsumptionperiterator
MaxFanoutThreadsPercentage int クエリ実行をファンアウトする各ノードのスレッドの割合。 100%に設定すると、クラスターは各ノード上のすべての CPU を割り当てます。 たとえば、Azure D14_v2 ノードにデプロイされたクラスター上の 16 個の CPU などです。 [1, 100] query_fanout_threads_percent
MaxFanoutNodesPercentage int クエリ実行をファンアウトするクラスター上のノードの割合。 MaxFanoutThreadsPercentageと同様の方法で機能します。 [1, 100] query_fanout_nodes_percent
MaxResultRecords long 要求が呼び出し元に返されるレコードの最大数。それ以降は結果が切り捨てられます。 切り捨て制限は、クライアントに返されるクエリの最終的な結果に影響します。 ただし、切り捨ての制限は、クロスクラスター参照の結果など、サブクエリの中間結果には適用されません。 [1, 9223372036854775807] truncationmaxrecords
MaxResultBytes long 要求が呼び出し元に返される最大データ サイズ (バイト単位) を超えると、結果が切り捨てられます。 切り捨て制限は、クライアントに返されるクエリの最終的な結果に影響します。 ただし、切り捨ての制限は、クロスクラスター参照の結果など、サブクエリの中間結果には適用されません。 [1, 9223372036854775807] truncationmaxsize
MaxExecutionTime timespan 要求の最大期間。
メモ:
1) これを使用して、の既定の の制限の上に実行時間制限を設定できますが、拡張することはできません。
2) タイムアウト処理は の解決ではなく、クエリが 実行されないように設計されています。
3) クライアントでのペイロードの読み取りにかかる時間は、タイムアウトの一部として扱われません。 呼び出し元がストリームからデータを取得する速度によって異なります。
4) 実行の中止が完了するまでに時間がかかる場合、合計実行時間が構成された値を超える可能性があります。
[00:00:00, 01:00:00] servertimeout
財産 種類 形容 サポートされている値 照合クライアント要求プロパティ
DataScope string クエリのデータ スコープ。 この値は、クエリがすべてのデータに適用されるか、ホット キャッシュのみに適用されるかを決定します。 AllHotCache、または null query_datascope
MaxMemoryPerQueryPerNode long クエリが割り当てることができるメモリの最大量 (バイト単位)。 [1, 50% の単一ノードの合計 RAM] max_memory_consumption_per_query_per_node
MaxMemoryPerIterator long クエリ演算子が割り当てることができるメモリの最大量 (バイト単位) [1, 50% の単一ノードの合計 RAM] maxmemoryconsumptionperiterator
MaxFanoutThreadsPercentage int クエリ実行をファンアウトする各ノードのスレッドの割合。 100%に設定すると、Eventhouse は各ノードのすべての CPU を割り当てます。 たとえば、Azure D14_v2 ノードにデプロイされたイベントハウス上の 16 個の CPU などです。 [1, 100] query_fanout_threads_percent
MaxFanoutNodesPercentage int クエリ実行をファンアウトする Eventhouse 上のノードの割合。 MaxFanoutThreadsPercentageと同様の方法で機能します。 [1, 100] query_fanout_nodes_percent
MaxResultRecords long 要求が呼び出し元に返されるレコードの最大数。それ以降は結果が切り捨てられます。 切り捨て制限は、クライアントに返されるクエリの最終的な結果に影響します。 ただし、切り捨て制限は、クロスイベントハウス参照の結果など、サブクエリの中間結果には適用されません。 [1, 9223372036854775807] truncationmaxrecords
MaxResultBytes long 要求が呼び出し元に返される最大データ サイズ (バイト単位) を超えると、結果が切り捨てられます。 切り捨て制限は、クライアントに返されるクエリの最終的な結果に影響します。 ただし、切り捨て制限は、クロスイベントハウス参照の結果など、サブクエリの中間結果には適用されません。 [1, 9223372036854775807] truncationmaxsize
MaxExecutionTime timespan 要求の最大期間。
メモ:
1) これを使用して、の既定の の制限の上に実行時間制限を設定できますが、拡張することはできません。
2) タイムアウト処理は の解決ではなく、クエリが 実行されないように設計されています。
3) クライアントでのペイロードの読み取りにかかる時間は、タイムアウトの一部として扱われません。 呼び出し元がストリームからデータを取得する速度によって異なります。
4) 実行の中止が完了するまでに時間がかかる場合、合計実行時間が構成された値を超える可能性があります。
[00:00:00, 01:00:00] servertimeout

手記

定義されていない、または nullとして定義されている制限は、default ワークロード グループの要求制限ポリシーから取得されます。

CPU リソースの使用率

クエリでは、クラスター内のすべての CPU リソースを使用できます。 既定では、複数のクエリが同時に実行されている場合、システムは、公平なラウンドロビンアプローチを使用してリソースを分散します。 この戦略は、アドホック クエリを使用して高パフォーマンスを実現するために最適です。

クエリでは、Eventhouse 内のすべての CPU リソースを使用できます。 既定では、複数のクエリが同時に実行されている場合、システムは、公平なラウンドロビンアプローチを使用してリソースを分散します。 この戦略は、アドホック クエリを使用して高パフォーマンスを実現するために最適です。

ただし、特定のクエリに割り当てられた CPU リソースを制限するシナリオもあります。 たとえば、より長い待機時間に対応できるバックグラウンド ジョブを実行している場合などです。 要求制限ポリシーを使用すると、分散サブクエリ操作の実行時に使用するスレッドまたはノードの割合を低く柔軟に指定できます。 既定の設定は 100%です。

default ワークロード グループ

default ワークロード グループには、既定で次のポリシーが定義されています。 このポリシーは変更できます。

{
  "DataScope": {
    "IsRelaxable": true,
    "Value": "All"
  },
  "MaxMemoryPerQueryPerNode": {
    "IsRelaxable": true,
    "Value": < 50% of a single node's total RAM >
  },
  "MaxMemoryPerIterator": {
    "IsRelaxable": true,
    "Value": 5368709120
  },
  "MaxFanoutThreadsPercentage": {
    "IsRelaxable": true,
    "Value": 100
  },
  "MaxFanoutNodesPercentage": {
    "IsRelaxable": true,
    "Value": 100
  },
  "MaxResultRecords": {
    "IsRelaxable": true,
    "Value": 500000
  },
  "MaxResultBytes": {
    "IsRelaxable": true,
    "Value": 67108864
  },
  "MaxExecutiontime": {
    "IsRelaxable": true,
    "Value": "00:04:00"
  }
}

手記

  • default ワークロード グループの制限を定義し、null 以外の値を指定する必要があります。
  • default ワークロード グループ内のすべての制限は、trueに設定 IsRelaxable
  • コマンドや、などのクエリ コマンドからの 取り込みなど、 ワークロード グループ内の特定のコマンドの種類に対する要求制限は無効になります。 これらのコマンドが既定以外のワークロード グループに割り当てられると、ポリシーで指定された要求制限が適用されます。

次の JSON は、カスタム要求の制限ポリシー オブジェクトを表します。

{
  "DataScope": {
    "IsRelaxable": true,
    "Value": "HotCache"
  },
  "MaxMemoryPerQueryPerNode": {
    "IsRelaxable": true,
    "Value": 2684354560
  },
  "MaxMemoryPerIterator": {
    "IsRelaxable": true,
    "Value": 2684354560
  },
  "MaxFanoutThreadsPercentage": {
    "IsRelaxable": true,
    "Value": 50
  },
  "MaxFanoutNodesPercentage": {
    "IsRelaxable": true,
    "Value": 50
  },
  "MaxResultRecords": {
    "IsRelaxable": true,
    "Value": 1000
  },
  "MaxResultBytes": {
    "IsRelaxable": true,
    "Value": 33554432
  },
  "MaxExecutiontime": {
    "IsRelaxable": true,
    "Value": "00:01:00"
  }
}
  • ワークロード グループ を する
  • クライアント要求プロパティ
  • .alter-merge workload_groupの
  • .create-or-alter workload_groupを する
  • .drop workload_groupを する
  • .show workload_group コマンド を する