全部產品
Search
文件中心

E-MapReduce:Query Profile介紹

更新時間:Jul 10, 2024

Query Profile記錄了查詢中涉及的所有工作節點的執行資訊。通過Query Profile,您可以進行可視化的分析來快速識別影響StarRocks執行個體查詢效能的瓶頸。

啟用Query Profile

如果您當前的執行個體未啟用Query Profile功能,則可以通過將變數enable_profile設定為true以啟用Query Profile。

SET enable_profile = true;
說明
  • 僅核心版本為2.5.13及以上版本(2.x系列)或者核心版本為3.1.5及以上版本(3.x系列)時,您可以設定全域開啟Profile功能,不會對查詢效能產生影響。

  • 如果您的核心版本低於上述提到的版本,強烈建議您先升級到上述版本再開啟Query Profile功能,以免對查詢效能產生影響。

Query Profile結構

Query Profile由以下五部分組成:

  • Fragment:執行樹。一個查詢由一個或多個Fragment組成。

  • FragmentInstance:每個Fragment可以有多個執行個體,每個執行個體稱為FragmentInstance,分別由不同的計算節點來執行。

  • Pipeline:執行鏈。一個Pipeline由一組首尾相接的Operator 構成。一個FragmentInstance會被拆分成多個 Pipeline。

  • PipelineDriver:一個Pipeline可以有多個執行個體,每個執行個體稱為PipelineDriver,以充分利用多個計算核心。

  • Operator:運算元。一個 PipelineDriver由多個Operator組成。

可視化Query Profile

StarRocks Manager可視化了Query Profile,整個Profile對應一棵樹形結構,樹的節點代表彙總後的Operator。單擊Operator,可以在頁面右側的選項卡中查看其詳細資料;未選中Operator時,右側展示Query的概覽資訊。

執行概覽image

執行概覽頁面為您展示一些Summary指標,包含執行時間(Execution time)、I/O效能及網路傳輸資料量等關鍵資訊。

  • Execution time

    指標

    說明

    IO

    所有SCAN節點IO耗時之和。

    LocalDiskReadIOTime

    從本機快取讀取資料產生的I/O耗時。該指標僅適用於存算分離執行個體。

    RemoteReadIOTime

    從遠端OSS讀取資料產生的I/O耗時。該指標僅適用於存算分離執行個體。

    IoSeekTime

    IO Seek定址過程產生的總耗時。該指標僅適用於存算分離執行個體。

    Processing

    Operator節點用於記錄其執行計算操作的總耗時。

    ExecutionWallTime

    Query執行總耗時。

  • IO

    指標

    說明

    RawRowsRead

    所有SCAN節點實際掃描到的記錄行數之和。

    DiskReadBytes

    所有SCAN執行節點讀取的壓縮後資料總量之和。

    LocalDiskReadBytes

    所有Connector Scan執行節點從本機快取讀取的壓縮資料大小之和。該指標僅適用於存算分離執行個體。

    RemoteReadBytes

    所有Connector Scan執行節點從OSSObject Storage Service讀取的壓縮資料大小之和。該指標僅適用於存算分離執行個體。

    ResultRows

    所有SCAN執行節點輸出記錄條數總和。

    ResultBytes

    所有SCAN執行節點讀取的資料總量之和。

  • Network

    指標

    說明

    Bytes sent over network

    所有Exchange執行節點傳輸的位元組總數,對應BytesSent指標。

Operator

單擊Operator,可以在頁面右側查看以下內容:

  • 節點頁簽:展示該Operator的核心指標。

  • 節點詳情頁簽:展示該Operator的所有指標。

  • Pipeline頁簽:展示該Operator所屬Pipeline指標。該頁簽的指標僅與調度相關,您無需過多關注。

說明
  • Operator花費的時間比例越大,其對應顏色就越深(支援對執行耗時排名前三的節點標註顏色)。您可以藉此輕鬆確認查詢的瓶頸。

  • 通過滑鼠滾動,或單擊放大縮小按鈕,可以放大和縮小Profile樹。

重要指標

Query層級

  • Summary指標

    指標

    說明

    Total

    查詢消耗的總時間,包括Planning、Executing和Profiling階段的耗時。

    QueryCpuCost

    查詢累積CPU使用時間。所有並發進程累加,因此該指標會大於實際的執行時間。

    QueryMemCost

    查詢總記憶體消耗。

    Variables

    查詢相關的變數。

  • Pipeline層級

    指標

    說明

    ActiveTime

    Driver執行時間。

    DriverTotalTime

    Driver消耗的總時間。

    PendingTime

    Driver因為輸入或者前置條件不滿足等待的時間。

Operator層級

  • Operator通用指標和Chunk Accumulate

    指標

    說明

    OperatorTotalTime

    Operator消耗的總時間。

    PushRowNum

    Operator累積輸出行數。

    PullRowNum

    Operator累積輸入行數。

    PullChunkNum

    Operator累積輸入Chunk數。

    PushChunkNum

    Operator累積輸出Chunk數。

    PeakMemoryUsage

    Operator最大記憶體使用量量。

  • OLAP Scan Operator

    指標

    說明

    Table

    表名稱。

    ScanTime

    Scan累計時間。Scan操作在非同步I/O線程池中完成。

    TabletCount

    Tablet數量。

    PushdownPredicates

    下推的謂詞數量。

    BytesRead

    讀取資料的大小。

    CompressedBytesRead

    讀取壓縮資料的大小。

    IOTime

    累計I/O時間。

    BitmapIndexFilterRows

    Bitmap索引過濾的資料行數。

    BloomFilterFilterRows

    Bloomfilter過濾的資料行數。

    SegmentRuntimeZoneMapFilterRows

    Runtime Zone Map過濾的資料行數。

    SegmentZoneMapFilterRows

    Zone Map過濾的資料行數。

    ShortKeyFilterRows

    Short Key過濾的資料行數。

    ZoneMapIndexFilterRows

    Zone Map索引過濾的資料行數。

  • Connector Scan Operator

    以下指標是在OLAP Scan Operator的基礎上增加的,適用於存算分離執行個體。

    指標

    說明

    CompressedBytesReadLocalDisk

    從計算節點的本機快取讀取的經過壓縮後的資料量。

    CompressedBytesReadRemote

    從OSS讀取的經過壓縮的資料總量。

    IOTimeLocalDisk

    從本機快取讀取資料時所產生的I/O操作耗時。

    IOTimeRemote

    從OSS讀取資料時所產生的I/O操作耗時。

  • Exchange Operator

    • Sink

      指標

      說明

      PartType

      資料分布模式,包括UNPARTITIONED、RANDOM、HASH_PARTITIONED和BUCKET_SHUFFLE_HASH_PARTITIONED。

      BytesSent

      發送的資料大小。

      OverallThroughput

      吞吐速率。

      NetworkTime

      資料包傳輸時間(不包括接收後處理時間)。

      WaitTime

      由於發送端隊列滿而導致的等待時間。

      NetworkBandwidth

      網路頻寬。

    • Source

      指標

      說明

      SenderWaitLockTime

      等鎖時間。

      BytesReceived

      接收的資料大小。

      DecompressChunkTime

      解壓時間。

      DeserializeChunkTime

      還原序列化時間。

      SenderTotalTime

      發送總時間。

  • Aggregate Operator

    指標

    說明

    GroupingKeys

    GROUP BY列。

    AggregateFunctions

    彙總函式。

    AggComputeTime

    彙總函式計算耗時。

    ExprComputeTime

    運算式計算耗時。

    HashTableSize

    Hash Table大小。

  • Join Operator

    • Probe

      指標

      說明

      DistributionMode

      資料分布模式。

      JoinType

      Join類型。

      OtherJoinConjunctEvaluateTime

      其他JoinConjunct耗時。

      ProbeConjunctEvaluateTime

      Probe Conjunct耗時。

      SearchHashTableTime

      查詢Hash Table耗時。

      WhereConjunctEvaluateTime

      Where Conjunct耗時。

    • Build

      指標

      說明

      JoinPredicates

      Join謂詞。

      JoinType

      Join類型。

      BuildBuckets

      Hash Table的Bucket數量。

      BuildHashTableTime

      構建Hash Table耗時。

      RuntimeFilterBuildTime

      Runtime Filter構建時間。

      RuntimeFilterNum

      Runtime Filter個數。

      DistributionMode

      資料分布模式。

  • Window Function Operator

    指標

    說明

    ComputeTime

    視窗Function Compute耗時。

    PartitionKeys

    分區列。

    AggregateFunctions

    彙總函式。

  • Sort Operator

    指標

    說明

    SortKeys

    排序鍵。

    SortType

    查詢結果排序方式:全排序或者排序Top N個結果。

    MergingTime

    資料合併耗時。

    SortingTime

    資料排序耗時。

  • TableFunction Operator

    指標

    說明

    TableFunctionExecTime

    Table Function計算耗時。

    TableFunctionExecCount

    Table Function執行次數。

  • Project Operator

    指標

    說明

    ExprComputeTime

    運算式計算耗時。

    CommonSubExprComputeTime

    公用子運算式計算耗時。

  • LocalExchange Operator

    指標

    說明

    Type

    Local Exchange類型,包括:Passthrough、Partition以及Broadcast。

    ShuffleNum

    Shuffle數量。該指標僅當Type為Partition時有效。

相關文檔

如果您想有效地查看和解讀Query Profile以最佳化StarRocks查詢效能,詳情請參見Profile效能診斷及最佳化案例