Os operadores do AnalyticDB for MySQL representam etapas individuais em um plano de execução. Cada operador executa uma tarefa específica de processamento de dados, como varrer uma tabela, unir conjuntos de dados, agregar resultados ou mover dados entre nós. Em um cluster distribuído, a maioria dos operadores é executada em paralelo nos nós de computação.
Use o recurso de diagnóstico de SQL para inspecionar as propriedades dos operadores e visualizar os resultados de diagnóstico no nível do operador. Para entender como os operadores se compõem em estágios e planos, consulte o gráfico de hierarquia do plano de execução na camada de operador.
Apenas operadores específicos possuem propriedades.
Operadores de acesso a dados
TableScan
Lê dados da source de dados subjacente. Quando as condições de filtro podem ser enviadas para a camada de armazenamento (predicate pushdown), o TableScan as aplica diretamente usando índices de dados, eliminando a necessidade de um operador Filter separado.
|
Propriedade |
Descrição |
|
TableName |
A tabela sendo varrida. |
|
DataBase |
O banco de dados ao qual a tabela pertence. |
|
SelectFields |
Os campos lidos por este nó TableScan. |
|
FilterPushDown |
Indica se as condições de filtro foram enviadas para um nó de armazenamento. Exibido apenas quando o estágio atual inclui condições de filtro enviadas. |
|
PushedDownFilter |
As condições de filtro enviadas para um nó de armazenamento. Exibido apenas quando o estágio atual inclui condições de filtro enviadas. |
Operadores de processamento de dados
Aggregation
Executa agregações regulares ou baseadas em agrupamento usando funções como SUM(), COUNT() e AVG(). O AnalyticDB for MySQL realiza operações de agregação em paralelo nos nós de computação. Para mais informações, consulte Otimização de consultas de agrupamento e agregação.
| Propriedade | Descrição |
|---|---|
| GroupByKeys | Os campos usados para agrupamento. |
| AggregationFunctions | As funções de agregação aplicadas, como SUM(), COUNT() e AVG(). Nota
Quando nenhum campo SELECT aparece na cláusula GROUP BY e nenhuma outra função de agregação é usada, o sistema invoca |
| Step | O estágio de agregação. Valores válidos: PARTIAL (agregação parcial), FINAL (agregação final), SINGLE (agregação de etapa única que executa a agregação final diretamente). |
DistinctLimit
Corresponde a DISTINCT LIMIT em instruções SQL.
Filter
Filtra dados na camada de computação quando o predicate pushdown não está disponível. Por padrão, o AnalyticDB for MySQL cria índices para todos os campos e envia as condições de filtro para a camada de armazenamento (visíveis como propriedades FilterPushDown em um operador TableScan). O operador Filter aparece quando o pushdown é bloqueado.
O pushdown é bloqueado nos seguintes casos:
A consulta usa a dica
no_index_columnsoufilter_not_pushdown_columns, ou o parâmetroadb_config filter_not_pushdown_columnsestá configurado para o cluster.As condições de filtro usam funções como
CAST.As colunas filtradas não possuem índices — por exemplo, a tabela foi criada com a palavra-chave
no_indexou os índices foram removidos posteriormente usandono_index.
|
Propriedade |
Descrição |
|
Filter |
A condição de filtro aplicada por este operador. |
Join
Corresponde a JOIN em instruções SQL. O algoritmo de junção depende dos dados e dos índices disponíveis.
Ao criar uma tabela distribuída no AnalyticDB for MySQL, especifique as chaves de distribuição usando a cláusula DISTRIBUTED BY. O tipo de redistribuição de dados depende do uso da chave de junção como chave de distribuição. Para mais informações sobre redistribuição de dados, consulte a seção RemoteExchange.
|
Propriedade |
Descrição |
|
Criterias |
As condições de junção. Exemplo: |
|
Type |
O tipo de junção: |
|
Method |
O algoritmo de junção: |
|
JoinFilter |
Condições de filtro adicionais aplicadas durante a junção. |
Limit
Corresponde a LIMIT em instruções SQL.
MarkDistinct
Gerencia COUNT(DISTINCT) quando uma consulta contém duas ou mais operações COUNT(DISTINCT). Para um único COUNT(DISTINCT), o AnalyticDB for MySQL usa o operador Aggregation.
Project
Aplica expressões de projeção a campos específicos, como expressões CASE WHEN THEN ou a função CONCAT().
|
Propriedade |
Descrição |
|
ProjectExpression |
A expressão de projeção aplicada aos campos de saída. |
Sort
Corresponde a ORDER BY em instruções SQL. Ordena os campos presentes na cláusula ORDER BY.
|
Propriedade |
Descrição |
|
OrderBy |
O campo usado para ordenar os dados. |
|
Orderings |
A direção da ordenação e o posicionamento de valores NULL. Valores válidos: |
SortMerge
Durante a ordenação distribuída, mescla e reordena dados parcialmente classificados recebidos de vários nós upstream.
TopN
Corresponde a ORDER BY LIMIT m,n em instruções SQL. Combina ordenação e limitação em um único operador para maior eficiência.
|
Propriedade |
Descrição |
|
OrderBy |
O campo usado para ordenar os dados. |
|
Count |
Corresponde às operações ORDER BY LIMIT em instruções SQL. |
|
Orderings |
A direção da ordenação e o posicionamento de valores NULL. Valores válidos: |
|
Step |
A etapa de execução. Valores válidos: |
|
Offset |
O deslocamento da linha inicial (o valor OFFSET). |
Union
Corresponde a UNION em instruções SQL.
Window
Corresponde às funções de janela em instruções SQL. Para visualizar as funções compatíveis, consulte Funções de janela.
Operadores de movimento de dados
RemoteExchange
Transfere dados entre nós de computação, dos estágios upstream para os estágios downstream. O método depende da estrutura da consulta e do alinhamento das chaves de distribuição.
|
Método |
Comportamento |
|
Broadcast |
Copia dados de cada nó upstream para todos os nós downstream. Cada nó downstream recebe uma cópia completa. |
|
Repartition |
Particiona os dados de cada nó upstream conforme uma regra especificada e envia cada partição para o nó downstream de destino. |
|
Gather |
Concentra dados de todos os nós upstream em um único nó downstream. |
Para mais informações sobre como os estágios trocam dados, consulte o gráfico de hierarquia do plano de execução na camada de estágio.
RemoteSource
Marca o ponto onde os dados entram no estágio atual provenientes de nós remotos pela rede.
|
Propriedade |
Descrição |
|
OutputColumns |
Os campos passados para o estágio atual por este operador. |
StageOutput
Transfere os dados processados no estágio atual para os nós do estágio downstream pela rede.
Operadores de escrita
TableWriter
Grava os resultados da consulta em uma tabela. Aparece em consultas que executam operações de extração, transformação e carga (ETL), como INSERT INTO e REPLACE INTO.