日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

算子

更新時間:

AnalyticDB for MySQL中的一個算子負責完成一個基本的數(shù)據(jù)處理邏輯,合理地組合算子、優(yōu)化算子的順序和執(zhí)行方式,可以提升數(shù)據(jù)的處理效率。本文介紹AnalyticDB for MySQL中的常用算子及算子所對應的屬性。

背景信息

AnalyticDB MySQL版中的一個算子負責完成一個基本的數(shù)據(jù)處理邏輯,一組算子按照執(zhí)行計劃完成數(shù)據(jù)的一組處理規(guī)則。AnalyticDB MySQL版是一個分布式系統(tǒng),大多數(shù)算子可以達到在多個節(jié)點上并行完成計算任務,來提高數(shù)據(jù)處理效率。

您可以通過AnalyticDB MySQL版的SQL診斷功能查看具備屬性的算子以及算子級別的結(jié)果診斷。更多詳情,請參見算子層計劃執(zhí)行樹算子級別診斷結(jié)果

說明

只有部分算子具備屬性。

Aggregation

AnalyticDB MySQL版是一個分布式數(shù)據(jù)庫,支持多節(jié)點并行完成聚合操作(更多關于聚合和分組聚合的信息,請參見分組聚合查詢優(yōu)化)。Aggregation算子通過sum()count()avg()等函數(shù)對數(shù)據(jù)進行聚合或分組聚合操作。

Aggregation算子包含了以下屬性。

屬性

說明

GroupByKeys

分組字段。

AggregationFunctions

使用的聚合函數(shù),例如sum()count()avg()等。

說明

如果SELECT字段沒有出現(xiàn)在GROUP BY子句中,也沒有使用任何其他聚合函數(shù),則系統(tǒng)會自動調(diào)用arbitrary()函數(shù)隨機選取分組中的一個值輸出。更多詳情,請參見ARBITRARY

Step

當前聚合所處的階段,取值如下:

  • PARTIAL:局部聚合。

  • FINAL:最終聚合。

  • SINGLE:單步聚合,即直接執(zhí)行最終聚合。

DistinctLimit

對應SQL語句中的DISTINCT LIMIT操作。

Filter

AnalyticDB MySQL版支持兩種數(shù)據(jù)過濾過程:

  • 數(shù)據(jù)源過濾:使用存儲層數(shù)據(jù)的索引進行過濾。

    說明

    沒有獨立的算子用于表示數(shù)據(jù)源過濾過程,該過程中的過濾條件會體現(xiàn)在TableScan算子中。關于TableScan算子的詳情,請參見TableScan

  • 非數(shù)據(jù)源過濾:存儲層數(shù)據(jù)沒有索引,需要在計算層使用Filter算子進行過濾。

AnalyticDB MySQL版默認對所有字段創(chuàng)建了索引,但在如下場景中不會將過濾條件下推:

  • 查詢語句中使用了no_index_columnsfilter_not_pushdown_columnsHint,或集群使用了adb_config filter_not_pushdown_columns配置,導致過濾條件下推功能被關閉。
  • 過濾條件中使用了函數(shù)(包括cast操作符)。
  • 過濾條件中的相關字段沒有索引(例如建表時指定了no_index關鍵字,或建表后執(zhí)行DROP INDEX刪除了索引)。

此時AnalyticDB MySQL版會使用Filter算子來過濾數(shù)據(jù)。

Filter算子包含了以下屬性。

屬性

說明

Filter

過濾算子的過濾條件。

Join

對應SQL語句中的Join操作。AnalyticDB MySQL版在創(chuàng)建分布式表時需要通過Distributed By來設置分布字段,Join key是否為分布字段涉及到數(shù)據(jù)的重分布類型。關于數(shù)據(jù)重分布的詳情,請參見RemoteExchange

Join算子包含了以下屬性。

屬性

說明

Criterias

Join條件,例如tb_1.col_a=tb_2.col_a

Type

Join類型。AnalyticDB MySQL版支持4種類型:INNER、LEFT、RIGHT和FULL。

Method

Join算法。AnalyticDB MySQL版支持2種算法:

  • Hash:Hash算法會把小表緩存到內(nèi)存中,使用Hash表查找的方式完成Join操作。

  • Index:Index算法會充分利用AnalyticDB MySQL版全索引的特點,使用Join key的索引完成Join操作。

JoinFilter

Join過濾條件。

Limit

對應SQL語句中的LIMIT操作。

MarkDistinct

對應SQL語句中的count(DISTINCT)操作。

說明
  • 僅當SQL語句中包含2個或2個以上的count(DISTINCT)操作時,才會使用MarkDistinct算子。

  • 若SQL語句中只包含1個count(DISTINCT)操作,AnalyticDB MySQL版會自動進行優(yōu)化,使用Aggregation算子。更多詳情,請參見Aggregation

Project

對應SQL語句中對特定字段的投影操作,例如case when then控制流、concat()函數(shù)等。

Project算子包含了以下屬性。

屬性

說明

ProjectExpression

Project表達式。

RemoteExchange

該算子用來表示上游向下游Stage傳輸數(shù)據(jù)時所用的方法。上下游Stage間傳輸數(shù)據(jù)的方法有如下幾種:

  • Broadcast:表示上游Stage中每個計算節(jié)點的數(shù)據(jù)都會復制到所有下游Stage的計算節(jié)點。

  • Repartition:表示上游Stage中每個節(jié)點的數(shù)據(jù)會按照固定的規(guī)則切分后,再分發(fā)到下游Stage的指定計算節(jié)點。

  • Gather:表示上游Stage中每個節(jié)點的數(shù)據(jù)會集中到下游Stage中某一個特定的計算節(jié)點。

關于數(shù)據(jù)傳輸方法的詳情,請參見Stage層執(zhí)行計劃樹

RemoteSource

該算子用來表示當前Stage的輸入數(shù)據(jù)是通過網(wǎng)絡從遠程節(jié)點傳輸過來的。

RemoteSource算子包含了以下屬性。

屬性

說明

OutputColumns

算子輸出的字段。

StageOutput

該算子用于將當前Stage處理后的數(shù)據(jù)通過網(wǎng)絡傳輸?shù)较掠蜸tage的節(jié)點。

Sort

對應SQL語句中ORDER BY子句的操作,執(zhí)行ORDER BY字段的排序。

Sort算子包含了以下屬性。

屬性

說明

OrderBy

排序字段。

Orderings

排序方式。支持如下方式:

  • ASC_NULLS_FIRST:升序,空值在前。

  • ASC_NULLS_LAST:升序,空值在后。

  • DESC_NULLS_FIRST:降序,空值在前。

  • DESC_NULLS_LAST:降序,空值在后。

SortMerge

執(zhí)行分布排序時,該算子用于對從上游Stage的多個節(jié)點傳輸來的數(shù)據(jù)進行歸并排序。

TableScan

該算子用于從數(shù)據(jù)源讀取數(shù)據(jù),如果需要過濾數(shù)據(jù),那么數(shù)據(jù)過濾由底層數(shù)據(jù)源使用索引高效完成。

TableScan算子包含了以下屬性。

屬性

說明

TableName

掃描的數(shù)據(jù)所屬表名。

SelectFields

表掃描節(jié)點掃描的字段。

DataBase

掃描的數(shù)據(jù)所屬數(shù)據(jù)庫名。

FilterPushDown

過濾條件是否下推到存儲節(jié)點。

說明

僅當當前Stage中存在過濾條件下推時才會展示該屬性。

PushedDownFilter

下推到存儲節(jié)點的過濾條件。

說明

僅當當前Stage中存在過濾條件下推時才會展示該屬性。

TableWriter

在ETL類型的SQL語句(如INSERT INTO或REPLACE INTO)執(zhí)行完對應的數(shù)據(jù)查詢后,會使用TableWriter算子完成目標表的寫入操作。

TopN

對應SQL語句中的ORDER BY LIMIT m,n查詢。

TopN算子包含了以下屬性。

屬性

說明

OrderBy

排序字段。

Count

對應SQL語句中ORDER BY時的LIMIT操作。

Orderings

排序方式。支持如下方式:

  • ASC_NULLS_FIRST:升序,空值在前。

  • ASC_NULLS_LAST:升序,空值在后。

  • DESC_NULLS_FIRST:降序,空值在前。

  • DESC_NULLS_LAST:降序,空值在后。

Step

TopN算子的執(zhí)行步驟,包括如下步驟:

  • PARTIAL:在分布式排序過程中,對各個節(jié)點上的數(shù)據(jù)進行局部排序。

  • SORTMERGE:對已經(jīng)進行了局部排序的數(shù)據(jù)進行最終的歸并排序。

  • SINGLE:沒有Partial過程,直接進行最終的歸并排序。

Offset

對應SQL語句中ORDER BY時的OFFSET操作。

Union

對應SQL語句中的UNION操作。

Window

對應SQL語句中的窗口函數(shù)操作。關于窗口函數(shù)的詳情,請參見窗口函數(shù)