Оператор evaluate для подключаемых модулей

Вызывает расширение запросов на стороне службы (подключаемый модуль).

Оператор evaluate является табличным оператором, который позволяет вызывать расширения языка запросов, известные как подключаемые модули. В отличие от других языковых конструкций подключаемые модули можно включить или отключить. Подключаемые модули не связаны реляционной природой языка. Другими словами, они могут не иметь предопределенной, статически определенной выходной схемы.

Примечание

  • Синтаксически evaluate ведет себя аналогично оператору invoke, который вызывает табличные функции.
  • Подключаемые модули, предоставляемые с помощью оператора evaluate, не связаны обычными правилами выполнения запроса или вычисления аргументов.
  • Определенные подключаемые модули могут иметь определенные ограничения. Например, подключаемые модули, схема выходных данных которых зависит от данных. Например, подключаемый модуль bag_unpack и подключаемый модуль сводки нельзя использовать при выполнении запросов между кластерами.

Синтаксис

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

Дополнительные сведения о соглашениях о синтаксисе.

Параметры

Имя Тип Обязательно Описание
T string Табличные входные данные для подключаемого модуля. Некоторые подключаемые модули не принимают никаких входных данных и действуют в качестве табличного источника данных.
evaluateParameters string Ноль или более параметров оценки с разделителями пробелами в виде значения имени=, которые управляют поведением операции оценки и плана выполнения. Каждый подключаемый модуль может по-разному решать, как обрабатывать каждый параметр. Сведения об определенном поведении см. в документации по каждому подключаемого модуля.
Имя подключаемого модуля string ✔️ Обязательное имя вызываемого подключаемого модуля.
PluginArgs string Ноль или более аргументов, разделенных запятыми, для предоставления подключаемого модуля.

Оценка параметров

Поддерживаются следующие параметры:

Имя Значения Описание
hint.distribution single, per_node, per_shard Указания по распространению
hint.pass_filters true, false Разрешите evaluate оператору передавать все соответствующие фильтры перед подключаемым модулем. Фильтр считается "сопоставленным", если он ссылается на столбец, существующий evaluate до оператора . По умолчанию: false
hint.pass_filters_column column_name Разрешить оператору подключаемого модуля передавать фильтры, ссылающиеся на column_name перед подключаемым модулем. Параметр можно использовать несколько раз с разными именами столбцов.

Подключаемые модули

Поддерживаются следующие подключаемые модули:

Указания по распространению

Указания по распространению указывают, как выполнение подключаемого модуля будет распределяться между несколькими узлами кластера. Каждый подключаемый модуль может реализовать разную поддержку дистрибутива. В документации подключаемого модуля указаны параметры распространения, поддерживаемые подключаемым модулем.

Возможные значения:

  • single: один экземпляр подключаемого модуля будет выполняться по всем данным запроса.
  • per_node: если запрос перед вызовом подключаемого модуля распределяется между узлами, экземпляр подключаемого модуля будет выполняться на каждом узле с данными, которые он содержит.
  • per_shard: если данные перед вызовом подключаемого модуля распределяются по сегментам, экземпляр подключаемого модуля будет выполняться по каждому сегменту данных.