Tous les produits
Search
Centre de documentation

AnalyticDB:Operators

Dernière mise à jour :Aug 10, 2026

Les opérateurs d'AnalyticDB for MySQL représentent les étapes individuelles d'un plan d'exécution. Chaque opérateur gère une tâche de traitement des données spécifique : analyse d'une table, jointure de jeux de données, agrégation des résultats ou déplacement des données entre nœuds. Dans un cluster distribué, la plupart des opérateurs s'exécutent en parallèle sur les nœuds de calcul.

Utilisez la fonctionnalité diagnostics SQL pour inspecter les propriétés des opérateurs et consulter les résultats du diagnostic au niveau des opérateurs. Pour comprendre comment les opérateurs se composent en étapes et en plans, consultez le schéma hiérarchique du plan d'exécution au niveau des opérateurs.

Remarque

Seuls certains opérateurs possèdent des propriétés.

Opérateurs d'accès aux données

TableScan

Lit les données depuis la source de données sous-jacente. Lorsque les conditions de filtrage peuvent être propagées vers la couche de stockage (propagation des prédicats), l'opérateur TableScan les applique directement à l'aide des index de données ; aucun opérateur Filter distinct n'est nécessaire.

Propriété Description
TableName La table analysée.
DataBase La base de données à laquelle appartient la table.
SelectFields Les champs lus par ce nœud TableScan.
FilterPushDown Indique si les conditions de filtrage sont propagées vers un nœud de stockage. Affiché uniquement lorsque l'étape actuelle inclut des conditions de filtrage propagées.
PushedDownFilter Les conditions de filtrage propagées vers un nœud de stockage. Affiché uniquement lorsque l'étape actuelle inclut des conditions de filtrage propagées.

Opérateurs de traitement des données

Aggregation

Effectue une agrégation standard ou une agrégation par regroupement à l'aide de fonctions telles que SUM(), COUNT() et AVG(). AnalyticDB for MySQL exécute les opérations d'agrégation en parallèle sur les nœuds de calcul. Pour plus d'informations, consultez la section Optimisation des requêtes de regroupement et d'agrégation.

Propriété Description
GroupByKeys Les champs utilisés pour le regroupement.
AggregationFunctions Les fonctions d'agrégation appliquées, telles que SUM(), COUNT() et AVG().
Remarque

Lorsqu'aucun champ SELECT n'apparaît dans la clause GROUP BY et qu'aucune autre fonction d'agrégation n'est utilisée, le système appelle ARBITRARY() pour renvoyer une valeur aléatoire du groupe. Consultez ARBITRARY.

Step L'étape d'agrégation. Valeurs valides : PARTIAL (agrégation partielle), FINAL (agrégation finale), SINGLE (agrégation en une seule étape qui effectue directement l'agrégation finale).

DistinctLimit

Équivalent à DISTINCT LIMIT dans les instructions SQL.

Filter

Filtre les données au niveau de la couche de calcul lorsque la propagation des prédicats n'est pas disponible. Par défaut, AnalyticDB for MySQL crée des index pour tous les champs et propage les conditions de filtrage vers la couche de stockage (visibles sous forme de propriétés FilterPushDown sur un opérateur TableScan). L'opérateur Filter apparaît lorsque la propagation est bloquée.

La propagation est bloquée dans les cas suivants :

  • L'indicateur no_index_columns ou filter_not_pushdown_columns est utilisé dans une requête, ou adb_config filter_not_pushdown_columns est configuré pour le cluster.

  • Les conditions de filtrage utilisent des fonctions telles que CAST.

  • Les colonnes filtrées ne disposent d'aucun index ; par exemple, la table a été créée avec le mot-clé no_index ou les index ont été supprimés ultérieurement à l'aide de no_index.

Propriété Description
Filter La condition de filtrage appliquée par cet opérateur.

Join

Équivalent à JOIN dans les instructions SQL. L'algorithme de jointure dépend des données et des index disponibles.

Lors de la création d'une table distribuée dans AnalyticDB for MySQL, spécifiez les clés de distribution à l'aide de la clause DISTRIBUTED BY. Le type de redistribution des données est déterminé par l'utilisation ou non de la clé de jointure comme clé de distribution. Pour plus d'informations sur la redistribution des données, consultez la section RemoteExchange.

Propriété Description
Criterias Les conditions de jointure. Exemple : tb_1.col_a=tb_2.col_a.
Type Le type de jointure : INNER JOIN, LEFT JOIN, RIGHT JOIN ou FULL JOIN.
Method L'algorithme de jointure : Hash (met en cache la table la plus petite en mémoire et fait correspondre les lignes à l'aide d'une table de hachage) ou Index (utilise les index de clé de jointure basés sur la fonctionnalité d'indexation complète des colonnes d'AnalyticDB for MySQL).
JoinFilter Conditions de filtrage supplémentaires appliquées lors de la jointure.

Limit

Équivalent à LIMIT dans les instructions SQL.

MarkDistinct

Gère COUNT(DISTINCT) lorsqu'une requête contient deux opérations COUNT(DISTINCT) ou plus. Pour une seule opération COUNT(DISTINCT), AnalyticDB for MySQL utilise plutôt l'opérateur Aggregation.

Project

Applique des expressions de projection à des champs spécifiques, par exemple des expressions CASE WHEN THEN ou la fonction CONCAT().

Propriété Description
ProjectExpression L'expression de projection appliquée aux champs de sortie.

Sort

Équivalent à ORDER BY dans les instructions SQL. Trie les champs de la clause ORDER BY.

Propriété Description
OrderBy Le champ utilisé pour trier les données.
Orderings La direction du tri et le placement des valeurs NULL. Valeurs valides : ASC_NULLS_FIRST, ASC_NULLS_LAST, DESC_NULLS_FIRST, DESC_NULLS_LAST.

SortMerge

Lors du tri distribué, fusionne et retrier les données partiellement triées reçues de plusieurs nœuds en amont.

TopN

Équivalent à ORDER BY LIMIT m,n dans les instructions SQL. Combine le tri et la limitation en un seul opérateur pour plus d'efficacité.

Propriété Description
OrderBy Le champ utilisé pour trier les données.
Count Équivalent aux opérations ORDER BY LIMIT dans les instructions SQL.
Orderings La direction du tri et le placement des valeurs NULL. Valeurs valides : ASC_NULLS_FIRST, ASC_NULLS_LAST, DESC_NULLS_FIRST, DESC_NULLS_LAST.
Step L'étape d'exécution. Valeurs valides : PARTIAL (trie les données localement sur chaque nœud), SORTMERGE (fusionne et trie les données partiellement triées), SINGLE (effectue directement la fusion et le tri finaux).
Offset Le décalage de la ligne de départ (la valeur OFFSET).

Union

Équivalent à UNION dans les instructions SQL.

Window

Équivalent aux fonctions de fenêtrage dans les instructions SQL. Pour connaître les fonctions prises en charge, consultez la section Fonctions de fenêtrage.

Opérateurs de déplacement des données

RemoteExchange

Transfère les données entre les nœuds de calcul, des étapes en amont vers les étapes en aval. La méthode dépend de la structure de la requête et de l'alignement des clés de distribution.

Méthode Comportement
Broadcast Copie les données de chaque nœud en amont vers tous les nœuds en aval. Chaque nœud en aval se retrouve avec une copie complète.
Repartition Partitionne les données de chaque nœud en amont selon une règle spécifiée et envoie chaque partition au nœud en aval cible.
Gather Concentre les données de tous les nœuds en amont sur un seul nœud en aval.

Pour plus d'informations sur la manière dont les étapes échangent des données, consultez le schéma hiérarchique du plan d'exécution au niveau des étapes.

RemoteSource

Marque le point d'entrée des données dans l'étape actuelle en provenance de nœuds distants via le réseau.

Propriété Description
OutputColumns Les champs transmis à l'étape actuelle par cet opérateur.

StageOutput

Transfère les données traitées dans l'étape actuelle vers les nœuds des étapes en aval via le réseau.

Opérateurs d'écriture

TableWriter

Écrit les résultats de la requête dans une table. Apparaît dans les requêtes qui effectuent des opérations ETL (extraction, transformation et chargement), telles que INSERT INTO et REPLACE INTO.