evaluate プラグイン演算子

サービス側クエリ拡張機能 (プラグイン) を呼び出します。

演算子は evaluate 、プラグインと呼ばれるクエリ言語拡張機能を呼び出す表形式 の演算子です。 他の言語コンストラクトとは異なり、プラグインは有効または無効にすることができます。 プラグインは、言語のリレーショナルな性質によって "バインド" されません。 言い換えると、定義済みの静的に決定された出力スキーマが含まれていない可能性があります。

Note

  • 構文的には、evaluate は、表形式関数を呼び出す呼び出し演算子と同様に動作します。
  • evaluate 演算子を使用して提供されるプラグインは、クエリの実行または引数評価の通常の規則によってバインドされることはありません。
  • 特定のプラグインには、特定の制限がある場合があります。 たとえば、出力スキーマがデータに依存するプラグインなどです。 たとえば、 bag_unpack プラグインピボット プラグイン は、クラスター間クエリを実行するときに使用できません。

構文

[T|] evaluate [ evaluateParameters ] PluginName([ PluginArgs ])

構文規則について詳しく知る。

パラメーター

名前 必須 説明
T string プラグインへの表形式の入力。 一部のプラグインは入力を受け取らないので、表形式のデータ ソースとして機能します。
evaluateParameters string 0 個以上のスペース区切り では、評価 操作と実行プランの動作を制御する Name=Value の形式でパラメーターを評価します。 各プラグインでは、各パラメーターの処理方法が異なる場合があります。 特定の動作については、各プラグインのドキュメントを参照してください。
PluginName string ✔️ 呼び出されるプラグインの必須名。
PluginArgs string プラグインに提供する 0 個以上のコンマ区切り引数。

パラメーターの評価

サポートされているパラメーターは次のとおりです。

名前 説明
hint.distribution single, per_node, per_shard 分散のヒント
hint.pass_filters true, false 演算子 evaluate に、プラグインの前に一致するフィルターをパススルーすることを許可します。 フィルターは、演算子 evaluate の前に既存の列を参照する場合、「一致」と見なされます。 既定値: false
hint.pass_filters_column column_name プラグイン演算子が、プラグインの前の column_name を参照するフィルターをパススルーすることを許可します。 パラメーターは、異なる列名で複数回使用できます。

プラグイン

次のプラグインがサポートされています。

配布のヒント

配布のヒントは、プラグインの実行を複数のクラスター ノードに配布する方法を指定します。 各プラグインは、配布に対して異なるサポートを実装することができます。 プラグインのドキュメントでは、プラグインでサポートされている配布オプションが明記されています。

指定できる値

  • single: プラグインの 1 つのインスタンスがクエリ データ全体で実行されます。
  • per_node: プラグイン呼び出しの前のクエリがノード間で配布されている場合、プラグインのインスタンスは、含まれるデータに対して各ノードで実行されます。
  • per_shard: プラグインを呼び出す前のデータがシャードに配布されている場合、プラグインのインスタンスはデータの各シャード上で実行されます。