叢集資料表簡介

本文件提供 BigQuery 資料表叢集處理支援總覽。

總覽

在 BigQuery 中建立叢集化資料表時,資料表資料會依照資料表結構定義中的一或多個資料欄內容進行自動編排。您指定的資料欄會用來將相關資料放在相同位置。使用多個資料欄為資料表組成叢集時,您指定的資料欄的順序非常重要。指定的資料欄順序決定了資料的排列順序。

叢集可以提升某幾種查詢的效能,例如使用篩選子句的查詢,以及匯總資料的查詢。當查詢工作或載入工作將資料寫入叢集處理過的資料表時,BigQuery 會使用叢集化資料欄裡的值排序資料,將資料分到 BigQuery 儲存空間中的多個區塊。當提交的查詢含有根據叢集化資料欄篩選資料的子句時,BigQuery 會使用排序過的區塊,不會掃描不需要的資料。

同樣地,當您所提交的查詢會根據叢集化資料欄中的值匯總資料時,由於排序過的區塊會將含有相似值的資料列並置於相同位置,所以效能也會提升。

使用叢集處理的時機

目前 BigQuery 支援對分區資料表建立叢集,使用時機如下:

  • 資料已使用 date 或 timestamp 資料欄分區。
  • 您通常會在查詢中,對特定資料欄使用篩選或匯總。

擷取時間分區資料表和依據 DATETIMESTAMP 資料欄分區的資料表都支援建立資料表叢集。非分區資料表目前不支援建立叢集。

同時使用叢集和分區處理時,可依 date 或 timestamp 資料欄將資料分區,然後將叢集建立到另外一組資料欄。在此情況下,各分區中的資料是根據叢集處理過的資料欄值來建立叢集。分區功能可讓系統根據已掃描的分區,準確地預估查詢費用。

為分區資料表建立叢集

依 date 或 timestamp 資料欄分區的資料表中,每個分區都包含一天的資料。儲存資料時,BigQuery 會確保同個區塊中的所有資料都屬於同個分區。即使您對分區資料表進行的操作可能會變更資料表,系統仍會保留資料表的下列屬性:查詢工作、資料操縱語言 (DML) 陳述式、資料定義語言 (DDL) 陳述式、載入工作和複製工作。因此,比起未分區資料表,BigQuery 必須替分區資料表維護的中繼資料較多。隨著分區數量的增加,中繼資料的負擔也會增加。

雖然必須維護更多的中繼資料,但確保資料全面分區可讓 BigQuery 在執行查詢之前更準確地預估查詢將處理的位元組數,計算出最終費用的上限。

在經過叢集處理的資料表中,BigQuery 會根據叢集化的資料欄值自動排序資料,將資料分到理想大小的儲存區塊中。您可以建立經過叢集和分區處理的資料表,以獲得更精細的排序結果。在每項可能變更叢集資料表的操作情境下,其使用的排序屬性都會保留。因此,BigQuery 可能無法準確預估查詢將處理的位元組數或查詢費用。如果資料區塊在查詢的執行過程中遭到排除,BigQuery 會盡可能地降低查詢費用。

自動重新建立叢集

當資料新增至叢集資料表時,新插入的資料可寫入包含與先前寫入的區塊中的索引鍵範圍重疊的索引鍵範圍的區塊。這些重疊的索引鍵會弱化資料表的排序屬性。

為了維護叢集資料表的效能特性,BigQuery 會在背景中執行自動重新建立叢集作業,以恢復資料表的排序屬性。對於分區資料表,將為每個分區範圍內的資料維護叢集。

叢集資料表的配額和限制

當您使用叢集化資料表功能搭配分區資料表時,請遵守分區資料表的限制

配額和限制也適用於各種可以在叢集資料表執行的工作,包括:

如要深入瞭解所有配額和限制,請參閱配額與限制一文。

叢集資料表定價

在 BigQuery 中建立及使用經過叢集處理的資料表時,系統會依據資料表中儲存的資料量,以及您對資料所執行的查詢來計算費用:

許多叢集資料表作業都是免費的 (包括將資料載入叢集資料表、複製資料表和分區,以及匯出資料),但仍須遵循 BigQuery 的配額與限制。如需所有免費作業的相關資訊,請參閱價格頁面上的免費作業

有關詳細的叢集資料表價格範例,請參閱定價頁面。

開發中的功能

下列功能正在開發,目前尚未提供:

  • 非分區資料表的叢集功能。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
需要協助嗎?請前往我們的支援網頁