evaluate 插件运算符

调用服务端查询扩展(插件)。

evaluate 运算符是一个表格运算符,可用于调用称为“插件”的查询语言扩展。 与其他语言构造不同,可以启用或禁用插件。 插件不受语言关系性质“约束”。 换句话说,它们可能没有预定义的、静态确定的输出架构。

注意

  • 从语法上讲,evaluate 的行为类似于 invoke 运算符,后者可调用表格函数。
  • 通过 evaluate 运算符提供的插件不受查询执行或参数评估的常规规则约束。
  • 特定插件可能有特定的限制。 例如,其输出架构依赖于数据的插件。 例如,在执行跨群集查询时不能使用 bag_unpack 插件pivot 插件

语法

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

详细了解语法约定

参数

客户 类型​​ 必需 说明
T string 插件的表格输入。 某些插件不接受任何输入,而充当表格数据源。
evaluateParameters string 零个或零个以上以空格分隔并以 Name = Value 形式表示的求值参数,用于控制求值操作和执行计划的行为。 每个插件可能会以不同方式确定如何处理每个参数。 有关具体行为,请参阅每个插件的文档。
PluginName string 调用的插件的名称,为必需项。
PluginArgs string 要提供给插件的零个或多个以逗号分隔的参数。

求值参数

支持以下参数:

名称 描述
hint.distribution singleper_nodeper_shard 分布提示
hint.pass_filters truefalse 允许 evaluate 运算符在插件之前传递任何匹配筛选器。 如果筛选器引用存在于 evaluate 运算符之前的列,则认为它是“匹配的”。 默认:false
hint.pass_filters_column column_name 允许插件运算符传递筛选器来引用插件前的 column_name。 参数可多次用于不同的列名称。

插件

支持以下插件:

分布提示

分布提示指定如何在多个群集节点之间分布插件执行。 每个插件可能会针对分布提供不同的支持。 插件的文档指定了插件支持的分布选项。

可能的值:

  • single:插件的单个实例将针对整个查询数据运行。
  • per_node:如果在插件调用之前的查询分布在节点之间,则会在每个节点上针对其包含的数据运行插件的一个实例。
  • per_shard:如果在插件调用之前的数据分布在分片之间,则会针对数据的每个分片运行插件的一个实例。