要求分類ポリシー
分類プロセスでは、要求の特性に基づいて、受信要求がワークロード グループに割り当てられます。 クラスター レベルの要求分類ポリシーの一部として、ユーザー定義関数を記述して分類ロジックを調整します。
分類プロセスでは、要求の特性に基づいて、受信要求がワークロード グループに割り当てられます。 Eventhouse レベルの要求分類ポリシーの一部として、ユーザー定義関数を記述して分類ロジックを調整します。
要求分類ポリシーが有効になっていない場合、すべての要求は default
ワークロード グループに分類されます。
Policy オブジェクト
ポリシーには、次のプロパティがあります。
-
IsEnabled
:bool
- ポリシーが有効かどうかを示します。 -
ClassificationFunction
:string
- 要求の分類に使用する関数の本文。
分類関数
受信要求の分類は、ユーザー定義関数に基づいています。 関数の結果は、要求を既存のワークロード グループに分類するために使用されます。
ユーザー定義関数には、次の特性と動作があります。
-
IsEnabled
がポリシーでtrue
に設定されている場合、新しい要求ごとにユーザー定義関数が評価されます。 - ユーザー定義関数は、要求の完全な有効期間にわたって要求のワークロード グループ コンテキストを提供します。
- 要求には、次の状況で
default
ワークロード グループ コンテキストが与えられます。- ユーザー定義関数は、空の文字列、
default
、または存在しないワークロード グループの名前を返します。 - この関数は何らかの理由で失敗します。
- ユーザー定義関数は、空の文字列、
- 特定の時点で指定できるユーザー定義関数は 1 つだけです。
大事な
要求分類関数は、クラスターで実行される要求ごとに評価されます。 可能な限り軽量に保ち、それに大量の計算を含めないことをお勧めします。 たとえば、多くの正規表現を実行の一部として評価する必要は避けてください。
大事な
要求分類関数は、Eventhouse で実行される要求ごとに評価されます。 可能な限り軽量に保ち、それに大量の計算を含めないことをお勧めします。 たとえば、多くの正規表現を実行の一部として評価する必要は避けてください。
要件と制限事項
分類関数:
-
string
型の 1 つのスカラー値を返す必要があります。 これは、要求を割り当てるワークロード グループの名前です。 - 他のエンティティ (データベース、テーブル、または関数) を参照することはできません。
- 具体的には、次の関数と演算子を使用しない場合があります。
cluster()
database()
table()
external_table()
externaldata
- 具体的には、次の関数と演算子を使用しない場合があります。
- 次のプロパティを持つ、
request_properties
という名前のプロパティ バッグである特殊なdynamic
シンボルにアクセスできます。
名前 | 種類 | 形容 | 例 |
---|---|---|---|
current_database |
string |
要求データベースの名前。 | "MyDatabase" |
current_application |
string |
要求を送信したアプリケーションの名前。 |
"Kusto.Explorer" 、"KusWeb" |
current_principal |
string |
要求を送信したプリンシパル ID の完全修飾名。 | "aaduser=1793eb1f-4a18-418c-be4c-728e310c86d3;83af1c0e-8c6d-4f09-b249-c67a2e8fda65" |
query_consistency |
string |
クエリの場合: クエリの一貫性 - strongconsistency または weakconsistency 。 このプロパティは、要求の 要求プロパティの一部として呼び出し元によって設定: 設定するクライアント要求プロパティは、queryconsistency です。 |
"strongconsistency" 、"weakconsistency" |
request_description |
string |
要求の作成者が含めることができるカスタム テキスト。 テキストは、要求の クライアント要求プロパティの一部として呼び出し元によって設定: 設定するクライアント要求プロパティは、request_description です。 |
"Some custom description" ;ダッシュボード用に自動的に設定されます: "dashboard:{dashboard_id};version:{version};sourceId:{source_id};sourceType:{tile/parameter}" |
request_text |
string |
要求の難読化されたテキスト。 クエリ テキストに含まれる難読化文字列リテラルは、複数の星 (* ) 文字に置き換えられます。
注: 要求テキストの先頭の 65,536 文字のみが評価されます。 |
".show version" |
request_type |
string |
要求の種類 (Command または Query )。 |
"Command" 、"Query" |
手記
set
ステートメントを使用して要求オプションを設定しても、それらのステートメントによる分類は許可されません。 オプションは、クライアント要求プロパティ オブジェクトで設定する必要があります。
例
1 つのワークロード グループ
iff(request_properties.current_application == "Kusto.Explorer" and request_properties.request_type == "Query",
"Ad-hoc queries",
"default")
複数のワークロード グループ
case(current_principal_is_member_of('aadgroup=somesecuritygroup@contoso.com'), "First workload group",
request_properties.current_database == "MyDatabase" and request_properties.current_principal has 'aadapp=', "Second workload group",
request_properties.current_application == "Kusto.Explorer" and request_properties.request_type == "Query", "Third workload group",
request_properties.current_application == "Kusto.Explorer", "Third workload group",
request_properties.current_application == "KustoQueryRunner", "Fourth workload group",
request_properties.request_description == "this is a test", "Fifth workload group",
hourofday(now()) between (17 .. 23), "Sixth workload group",
"default")
管理コマンド
次の管理コマンドを使用して、クラスターの要求分類ポリシーを管理します。
命令 | 形容 |
---|---|
.alter cluster request classification policy |
クラスターの要求分類ポリシーを変更します |
.alter-merge cluster request classification policy |
クラスターの要求分類ポリシーを有効または無効にします。 |
.delete cluster request classification policy |
クラスターの要求分類ポリシーを削除します |
.show cluster request classification policy |
クラスターの要求分類ポリシーを表示します |
Eventhouse の要求分類ポリシーを管理するには、次の管理コマンドを使用します。
命令 | 形容 |
---|---|
.alter cluster request classification policy |
Eventhouse の要求分類ポリシーを変更します |
.alter-merge cluster request classification policy |
Eventhouse の要求分類ポリシーを有効または無効にします。 |
.delete cluster request classification policy |
Eventhouse の要求分類ポリシーを削除します |
.show cluster request classification policy |
Eventhouse の要求分類ポリシーを表示します |
関連コンテンツ
- ワークロード グループ を
する - 要求プロパティの