整理 BigQuery 資源

與其他 Google Cloud 服務一樣,BigQuery 資源會以階層方式排列。您可以使用這個階層管理 BigQuery 工作負載的各個層面,例如權限、配額、運算單元保留作業和帳單。

資源階層

BigQuery 會繼承 Google Cloud 資源階層,並新增額外的群組機制,稱為 資料集,這是 BigQuery 專屬的機制。本節將說明這個階層的元素。

資料集

資料集是用來整理及控管 BigQuery 資源存取權的邏輯容器。資料集類似於其他資料庫系統中的結構定義。

您建立的大部分 BigQuery 資源 (包括資料表、檢視畫面、函式和程序) 都會在資料集中建立。連線和工作是例外狀況,因為這兩者與專案相關聯,而非資料集。

資料集有位置。建立資料表時,資料表資料會儲存在資料集的位置。建立實際工作環境資料的資料表之前,請先考量位置需求。資料集建立之後,即無法變更位置。

專案

每個資料集都與專案相關聯。如要使用 Google Cloud,您必須至少建立一個專案。專案是建立、啟用及使用所有 Google Cloud 服務的基礎。詳情請參閱「資源階層」。一個專案可以包含多個資料集,且同一專案中可以有不同位置的資料集。

當您對 BigQuery 資料執行作業時,例如執行查詢或將資料擷取至資料表,就會建立工作。工作一律會與專案建立關聯,但不一定要在包含資料的專案中執行。事實上,工作可能會參照多個專案中資料集的資料表。查詢工作、載入工作或匯出工作一律會在參照的資料表所在位置執行。

每個專案都會連結至一個 Cloud Billing 帳戶。系統會向該帳戶收取專案產生的費用。如果您使用以量計價,系統會向執行查詢的專案收取查詢費用。如果您使用以容量為準的定價,系統會將運算單元預留項目的費用,記入用於購買運算單元的管理專案。系統會向資料集所在專案收取儲存空間費用。

資料夾

資料夾是在專案之上更進一步的分組機制。資料夾中的專案和資料夾會自動繼承父項資料夾的存取權政策。資料夾可用來為公司內的不同法人、部門和團隊建立模型。

組織

機構資源代表組織 (例如公司),同時也是Google Cloud 資源階層的根節點。

您不必建立機構資源就能開始使用 BigQuery,但我們建議您建立一個機構資源。使用「機構」資源可讓管理員集中控管 BigQuery 資源,而非由個別使用者控管所建立的資源。

下圖為資源階層範例。在這個範例中,機構在資料夾中設有專案。該專案已連結至帳單帳戶,並包含三個資料集。

資源階層

注意事項

選擇 BigQuery 資源的整理方式時,請考量下列事項:

  • 配額:許多 BigQuery 配額會在專案層級套用。其中部分角色適用於資料集層級。涉及運算資源 (例如查詢和載入工作) 的專案層級配額,會根據建立工作的專案計算,而非儲存空間專案。
  • 帳單:如果您希望機構中的不同部門使用不同的 Cloud Billing 帳戶,請為每個團隊建立不同的專案。在機構層級建立 Cloud Billing 帳戶,並將專案與這些帳戶建立關聯。
  • 運算單元預留項目。預留的運算單元範圍為機構資源。購買預留時段容量後,您可以將時段集區指派給機構中的任何專案或資料夾,或是指派時段給整個機構資源。專案會繼承上層資料夾或機構的時間段保留作業。保留的運算單元會與管理專案建立關聯,用於管理運算單元。詳情請參閱「使用保留項目進行工作負載管理」。
  • 權限:請考量權限階層對貴機構中需要存取資料的使用者有何影響。舉例來說,如果您想讓整個團隊存取特定資料,可以將該資料儲存在單一專案中,簡化存取權限管理。

    資料表和其他實體會繼承父項資料集的權限。資料集會繼承資源階層 (專案、資料夾、機構) 中父項實體的權限。如要對資源執行作業,使用者必須具備資源的相關權限,以及建立 BigQuery 工作所需的權限。建立工作所需的權限,與用於該工作的專案相關聯。

模式

本節將介紹兩種常見的 BigQuery 資源分類模式。

  • 中央資料湖泊、部門資料市集。機構會建立統一儲存專案,用於保存原始資料。機構內的各部門會自行建立資料超市專案進行分析。

  • 部門資料湖泊、中央資料倉儲。每個部門都會建立及管理自己的儲存空間專案,用來存放該部門的原始資料。接著,機構組織會建立中央資料倉儲專案進行分析。

每種方法都各有優缺點。許多機構都會結合這兩種模式的元素。

中央資料湖泊、部門資料市集

在這個模式中,您會建立統一儲存空間專案,用於保存組織的原始資料。資料擷取管道也可以在這個專案中執行。統一儲存空間專案可做為貴機構的資料湖泊。

每個部門都有專屬專案,用於查詢資料、儲存查詢結果,以及建立檢視畫面。這些部門層級專案會充當資料倉庫。這些帳單會與部門的帳單帳戶相關聯。

中央資料湖泊模式

這種結構的優點包括:

  • 集中式資料工程團隊可在單一位置管理擷取管道。
  • 原始資料會與部門層級專案分開。
  • 若是以量計價,系統會向執行查詢的部門收取執行查詢的帳單。
  • 您可以根據各部門的預估運算需求,為其指派運算單元。
  • 每個部門的專案層級配額都彼此獨立。

使用這種結構時,通常會需要下列權限:

  • 中央資料工程團隊會獲得儲存專案的 BigQuery 資料編輯者和 BigQuery 工作使用者角色。這樣一來,他們就能在儲存空間專案中擷取及編輯資料。
  • 部門分析師會獲得中央資料湖專案中特定資料集的「BigQuery 資料檢視者」角色。這樣一來,他們就能查詢資料,但無法更新或刪除原始資料。
  • 部門分析師也會獲得部門資料倉儲專案的 BigQuery Data Editor 角色和 Job User 角色。這樣一來,他們就能在專案中建立及更新資料表,並執行查詢工作,以便轉換及匯總資料,以便針對部門特定用途使用。

詳情請參閱「基本角色和權限」。

部門資料湖泊、中央資料倉儲

在這種模式中,每個部門都會建立及管理自己的儲存空間專案,用於儲存該部門的原始資料。中央 資料倉儲專案會儲存原始資料的匯總或轉換作業。

分析師可以查詢及讀取資料倉儲專案中的匯總資料。資料倉儲專案也為商業智慧 (BI) 工具提供存取層。

部門資料湖泊模式

這種結構的優點包括:

  • 為每個部門使用個別專案,就能更輕鬆地管理部門層級的資料存取權。
  • 中央數據分析團隊有一個專案可執行數據分析工作,因此更容易監控查詢。
  • 使用者可以透過集中式商業智慧 (BI) 工具存取資料,而該工具會與原始資料保持隔離。
  • 您可以將時段指派給資料倉儲專案,以便處理分析人員和外部工具提出的所有查詢。

使用這個結構時,通常會需要下列權限:

  • 資料工程師會獲得所屬部門資料超市的 BigQuery 資料編輯者和 BigQuery 工作使用者角色。這些角色可讓他們擷取資料並轉換為資料倉儲。
  • 分析師會在資料倉儲專案中獲得 BigQuery 資料編輯者和 BigQuery 工作使用者角色。這些角色可讓他們在資料倉儲中建立匯總檢視畫面,並執行查詢工作。
  • 將 BigQuery 連結至 BI 工具的服務帳戶會獲得特定資料集的「BigQuery 資料檢視者」角色,這些資料集可儲存資料湖中的原始資料,或資料倉儲專案中的轉換資料。

詳情請參閱「基本角色和權限」。

您也可以使用安全性功能,例如授權檢視畫面授權使用者定義函式 (UDF),讓特定使用者存取匯總資料,而不需要授予他們查看資料倉儲專案中原始資料的權限。

這種專案結構可能會導致資料倉儲專案中出現許多並行查詢。因此,您可能會達到並行查詢限制。如果您採用這種結構,請考慮提高專案的配額上限。您也可以考慮使用以容量為基礎的計費方式,購買運算單元集區來執行查詢。