筆記[工作]-BigQuery文件閱讀:查詢計畫與時程

更新 發佈閱讀 4 分鐘

當BigQuery執行查詢工作時,會將宣告式SQL陳述式轉換成執行圖,圖中會把執行作業拆分成一系列的查詢階段,而這些階段是由更精細的執行步驟組合所組成的。BigQuery會使用大量分散式平行架構來執行這些查詢。階段會模擬許多潛在工作站可能並行執行的工作單元。各階段會透過快速的分散式重組架構通訊。

在查詢計畫中,工作單元和工作站一詞用於傳達並行處理的相關資訊。在BigQuery的其他部分,可能會看到「運算單元」一詞,這是查詢執行作業的多個面向的抽象表示法,包括運算、記憶體和I/O資源。

解讀及最佳化步驟

  • READ步:READ步驟表示階段正在存取資料以供處理。可以直接從查詢中參照的資料表,或從Shuffle記憶體中讀取資料。
  • COMPUTE步:在COMPUTE步驟中,BigQuery會對資料執行下列動作:
    • 評估查詢的SELECT、WHERE、HAVING和其他子句中的運算式,包括計算、比較和邏輯運算。
    • 執行內建SQL函式和使用者定義函式。
    • 根據查詢中的條件篩選資料列。
  • WRITE步:WRITE步驟會針對中繼資料和最終輸出結果執行。寫入Shuffle記憶體:在多階段查詢中,WRITE步驟通常會將已處理的資料傳送至另一個階段,以便進一步處理。這通常是亂數記憶體的情況,因為亂數記憶體會結合或匯總來自多個來源的資料。這個階段寫入的資料通常是暫時結果,而非最終輸出內容。或者,最終輸出內容:查詢結果會寫入目的地或暫時性資料表。
  • JOIN步:在JOIN步驟中,BigQuery會結合兩個資料來源的資料。
  • AGGREGATE步:在AGGREGATE步驟中,BigQuery會匯總及分組資料。
  • REPARTITION步:REPARTITION和COALESCE都是BigQuery直接套用至查詢中隨機排序資料的最佳化技巧。
    • REPARTITION:此運算旨在重新平衡各工作節點的資料分布情形。假設在重新排序後,一個worker節點會產生不成比例的大量資料。REPARTITION步驟會更平均地重新分配資料,避免任何單一工作站成為瓶頸。這對於需要大量運算的作業(例如彙整)尤其重要。
    • COALESCE:如果在洗牌後有許多小資料區塊,就會執行這個步驟。COALESCE步驟會將這些桶合併為較大的桶,藉此減少管理大量小型資料的額外負擔。在處理非常小的中間結果集時,這項功能尤其實用。
    • 如果查詢計畫中顯示REPARTITION或COALESCE步驟,不一定表示查詢有問題。這通常表示BigQuery正在主動最佳化資料分發作業,以提升效能。不過,如果您屢次看到這些作業,可能表示資料本身有偏差,或是查詢導致過度重複排序資料。

聯合查詢說明

聯合查詢可使用EXTERNAL_QUERY函式,將查詢陳述式傳送至外部資料來源。聯合查詢會採用稱為SQL推送的最佳化技術。這些函式會將篩選等作業委派給外部資料來源,而非在BigQuery中執行,藉此提升查詢效能。

API 表示法範例

查詢計劃資訊會內嵌於工作回應資訊,可以呼叫 jobs.get 擷取該資訊。

HTTP request

GET https://bigquery.googleapis.com/bigquery/v2/projects/{projectId}/jobs/{jobId}

The URL uses gRPC Transcoding syntax.


留言
avatar-img
留言分享你的想法!
avatar-img
柴郡貓姍蒂的沙龍
49會員
39內容數
2025/08/24
_Default Bucket 是GCP自動為每個Google Cloud Project建立的預設日誌儲存桶,大部分的日誌(像是稽核記錄、GKE logs、Compute Engine logs等)預設都會儲存在這裡。 每個_Default bucket預設會包含以下view: _AllLo
2025/08/24
_Default Bucket 是GCP自動為每個Google Cloud Project建立的預設日誌儲存桶,大部分的日誌(像是稽核記錄、GKE logs、Compute Engine logs等)預設都會儲存在這裡。 每個_Default bucket預設會包含以下view: _AllLo
2025/08/24
VPC Serverless Connectors 是Google Cloud提供的一種機制,允許「Serverless工作負載(如Cloud Run、Cloud Functions、App Engine標準環境)」安全且私密地連線到使用者的VPC資源(例如 VM、Cloud SQL、Redis、
2025/08/24
VPC Serverless Connectors 是Google Cloud提供的一種機制,允許「Serverless工作負載(如Cloud Run、Cloud Functions、App Engine標準環境)」安全且私密地連線到使用者的VPC資源(例如 VM、Cloud SQL、Redis、
2025/08/24
SSO SSO全名為Single Sign On,意思是多個登入端點,皆採用相同的認證管道。就是當企業有多個網站時,可以從一個統一的入口登入帳戶,接著就所有的網站都能使用。常見的例如Google這樣的多服務平台,無論要登入Gmail、雲端硬碟還是Youtube,都會導向到同一個 Google 登入
2025/08/24
SSO SSO全名為Single Sign On,意思是多個登入端點,皆採用相同的認證管道。就是當企業有多個網站時,可以從一個統一的入口登入帳戶,接著就所有的網站都能使用。常見的例如Google這樣的多服務平台,無論要登入Gmail、雲端硬碟還是Youtube,都會導向到同一個 Google 登入
看更多
你可能也想看
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
※ 為什麼需要 Subquery? 當⼀個任務需要多個 Query 完成任務,可以使⽤ Subquery 把多個 Query 合併成⼀個 Query。 當我們在進行SQL查詢時,每次查詢都需要在Web Server和資料庫之間來回傳遞資料。這個過程會產生網路延遲,特別是當兩者之間的物理距離較遠時
Thumbnail
※ 為什麼需要 Subquery? 當⼀個任務需要多個 Query 完成任務,可以使⽤ Subquery 把多個 Query 合併成⼀個 Query。 當我們在進行SQL查詢時,每次查詢都需要在Web Server和資料庫之間來回傳遞資料。這個過程會產生網路延遲,特別是當兩者之間的物理距離較遠時
Thumbnail
※ GROUP BY 用於將數據表中的數據按照一個或多個列進行分組。例如在處理一個表格的資料時,可以指定欄位,一個或是多個,然後把將其視為ID進行分組處理。 ※ 語法 SELECT column1, column2, ..., aggregate_function(column) FROM
Thumbnail
※ GROUP BY 用於將數據表中的數據按照一個或多個列進行分組。例如在處理一個表格的資料時,可以指定欄位,一個或是多個,然後把將其視為ID進行分組處理。 ※ 語法 SELECT column1, column2, ..., aggregate_function(column) FROM
Thumbnail
這篇文章主要是介紹了SQL查詢效能調校的方法,針對索引最佳化做了整理和分享,並提供了一些注意事項和建議。
Thumbnail
這篇文章主要是介紹了SQL查詢效能調校的方法,針對索引最佳化做了整理和分享,並提供了一些注意事項和建議。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
利用文字紀錄,明確寫下自己的採購項目......
Thumbnail
利用文字紀錄,明確寫下自己的採購項目......
Thumbnail
這邊統整了所有過去發表過關於 QUERY 函式的教學分享,希望可以方便你按照順序閱讀和練習。 QUERY 可以用來查詢、篩選、聚集、排序資料,還可以做張簡易的資料透視表,是我在 Google 試算表上做數據分析、製作報告、製作儀表板時最常用的函式之一,既方便又好用,誠心推薦!
Thumbnail
這邊統整了所有過去發表過關於 QUERY 函式的教學分享,希望可以方便你按照順序閱讀和練習。 QUERY 可以用來查詢、篩選、聚集、排序資料,還可以做張簡易的資料透視表,是我在 Google 試算表上做數據分析、製作報告、製作儀表板時最常用的函式之一,既方便又好用,誠心推薦!
Thumbnail
BigQuery 是 Google 推出的無伺服器資料倉儲方案,內建有查詢引擎(類似於 SQL),查詢引擎除了可以方便管理外,也能夠在短時間內對數 TB 的數據進行撈取。相較於其他的資料倉儲解決方案相比,它的成本較低,但如果你的資料量太大有可能成本還是超出你的預期
Thumbnail
BigQuery 是 Google 推出的無伺服器資料倉儲方案,內建有查詢引擎(類似於 SQL),查詢引擎除了可以方便管理外,也能夠在短時間內對數 TB 的數據進行撈取。相較於其他的資料倉儲解決方案相比,它的成本較低,但如果你的資料量太大有可能成本還是超出你的預期
Thumbnail
大數據時代下,Log的多元應用至關重要。Log生成龐大,格式各異,特別金融業需合規。探討Log廣泛應用、資訊安全、IT管理和商業決策。建立Log管理系統核心深入法規,強化IT治理、權限控管。一站式Log管理平台,確保資訊安全合規。
Thumbnail
大數據時代下,Log的多元應用至關重要。Log生成龐大,格式各異,特別金融業需合規。探討Log廣泛應用、資訊安全、IT管理和商業決策。建立Log管理系統核心深入法規,強化IT治理、權限控管。一站式Log管理平台,確保資訊安全合規。
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News