Partage via


evaluate plugin, opérateur

Appelle une extension de requête côté service (plug-in).

L’opérateur evaluate est un opérateur tabulaire qui vous permet d’appeler des extensions de langage de requête appelées plug-ins. Contrairement à d’autres constructions de langage, les plug-ins peuvent être activés ou désactivés. Les plug-ins ne sont pas « liés » par la nature relationnelle du langage. En d’autres termes, ils n’ont peut-être pas de schéma de sortie prédéfini, déterminé statiquement.

Remarque

  • Syntactiquement, evaluate se comporte de la même façon que l’opérateur invoke, qui appelle des fonctions tabulaires.
  • Les plug-ins fournis par l’opérateur d’évaluation ne sont pas liés par les règles régulières d’exécution de requête ou d’évaluation d’argument.
  • Des plug-ins spécifiques peuvent avoir des restrictions spécifiques. Par exemple, les plug-ins dont le schéma de sortie dépend des données. Par exemple, bag_unpack plug-in et le plug-in pivot ne peuvent pas être utilisés lors de l’exécution de requêtes entre clusters.

Syntaxe

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

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
T string Entrée tabulaire au plug-in. Certains plug-ins ne prennent pas d’entrée et agissent comme une source de données tabulaire.
evaluateParameters string Zéro ou plusieurs paramètres d’évaluation séparés par l’espace sous la forme de valeur de nom = qui contrôlent le comportement de l’opération d’évaluation et du plan d’exécution. Chaque plug-in peut décider différemment comment gérer chaque paramètre. Reportez-vous à la documentation de chaque plug-in pour un comportement spécifique.
PluginName string ✔️ Nom obligatoire du plug-in appelé.
Plug-inArgs string Zéro ou plusieurs arguments séparés par des virgules à fournir au plug-in.

Évaluer les paramètres

Les paramètres suivants sont pris en charge :

Nom Valeurs Description
hint.distribution single, , per_nodeper_shard Indicateurs de distribution
hint.pass_filters true, false Autoriser evaluate l’opérateur à passer les filtres correspondants avant le plug-in. Le filtre est considéré comme « mis en correspondance » s’il fait référence à une colonne existante avant l’opérateur evaluate . Valeur par défaut : false
hint.pass_filters_column column_name Autoriser l’opérateur de plug-in à passer des filtres faisant référence à column_name avant le plug-in. Le paramètre peut être utilisé plusieurs fois avec des noms de colonnes différents.

Plug-ins

Les plug-ins suivants sont pris en charge :

Indicateurs de distribution

Les indicateurs de distribution spécifient la façon dont l’exécution du plug-in sera distribuée sur plusieurs nœuds de cluster. Chaque plug-in peut implémenter une prise en charge différente de la distribution. La documentation du plug-in spécifie les options de distribution prises en charge par le plug-in.

Valeurs possibles :

  • single: une seule instance du plug-in s’exécutera sur l’ensemble des données de requête.
  • per_node: Si la requête avant l’appel du plug-in est distribuée entre les nœuds, une instance du plug-in s’exécute sur chaque nœud sur les données qu’il contient.
  • per_shard: si les données avant l’appel du plug-in sont distribuées entre les partitions, une instance du plug-in s’exécute sur chaque partition des données.