evaluate プラグイン演算子
サービス側クエリ拡張機能 (プラグイン) を呼び出します。
evaluate
演算子は表形式の演算子であり、plugins と呼ばれるクエリ言語拡張機能を呼び出すことができます。 他の言語コンストラクトとは異なり、プラグインは有効または無効にすることができます。 プラグインは、言語のリレーショナル特性によって "バインド" されません。 つまり、定義済みの静的に決定された出力スキーマがない可能性があります。
Note
- 構文的には、
evaluate
は、表形式関数を呼び出す呼び出し演算子と同様に動作します。 - evaluate 演算子を使用して提供されるプラグインは、クエリの実行または引数評価の通常の規則によってバインドされることはありません。
- 特定のプラグインには、特定の制限がある場合があります。 たとえば、出力スキーマがデータに依存するプラグインなどです。 たとえば、 bag_unpack プラグイン および pivot プラグイン は、クロスクラスター クエリを実行するときに使用できません。
構文
[T |
] evaluate
[ evaluateParameters ] PluginName (
[ PluginArgs ])
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
T | string |
プラグインへの表形式の入力。 一部のプラグインは入力を受け取らないので、表形式のデータ ソースとして機能します。 | |
evaluateParameters | string |
評価操作と実行プランの動作を制御する Name = Value の形式で 0 個以上のスペース区切り評価パラメーター。 各プラグインでは、各パラメーターの処理方法が異なる場合があります。 特定の動作については、各プラグインのドキュメントを参照してください。 |
|
PluginName | string |
✔️ | 呼び出されるプラグインの必須名。 |
PluginArgs | string |
プラグインに提供する 0 個以上のコンマ区切り引数。 |
パラメーターの評価
サポートされているパラメーターは次のとおりです。
Name | Values | 説明 |
---|---|---|
hint.distribution |
single 、 per_node 、 per_shard |
分散のヒント |
hint.pass_filters |
true , false |
演算子 evaluate に、プラグインの前に一致するフィルターをパススルーすることを許可します。 フィルターは、演算子 evaluate の前に既存の列を参照する場合、「一致」と見なされます。 既定値: false |
hint.pass_filters_column |
column_name | プラグイン演算子が、プラグインの前の column_name を参照するフィルターをパススルーすることを許可します。 パラメーターは、異なる列名で複数回使用できます。 |
プラグイン
次のプラグインがサポートされています。
- autocluster プラグイン
- azure-digital-twins-query-request プラグイン
- bag-unpack プラグイン
- basket プラグイン
- cosmosdb-sql-request プラグイン
- dcount-intersect プラグイン
- diffpatterns プラグイン
- diffpatterns-text プラグイン
- infer-storage-schema プラグイン
- ipv4-lookup プラグイン
- ipv6-lookup プラグイン
- mysql-request-plugin
- narrow プラグイン
- ピボット プラグイン
- プレビュー プラグイン
- R プラグイン
- rolling-percentile プラグイン
- rows-near プラグイン
- schema-merge プラグイン
- sql-request プラグイン
- sequence-detect プラグイン
分散のヒント
配布のヒントは、プラグインの実行を複数のクラスター ノードに配布する方法を指定します。 各プラグインは、配布に対して異なるサポートを実装することができます。 プラグインのドキュメントでは、プラグインでサポートされている配布オプションが明記されています。
指定できる値
single
: プラグインの 1 つのインスタンスがクエリ データ全体で実行されます。per_node
: プラグイン呼び出しの前のクエリがノード間で配布されている場合、プラグインのインスタンスは、含まれるデータに対して各ノードで実行されます。per_shard
: プラグインを呼び出す前のデータがシャードに配布されている場合、プラグインのインスタンスはデータの各シャード上で実行されます。