教學目標

學習 Google Cloud Platform 的心得分享,初步了解有關 Google Cloud BI 解決方案的重點概念。

重點概念

首先 Google Cloud BI 解決方案主要能夠從資料中擷取出深入分析資訊,以利發展為商業智慧模式,主要透過 BigQuery 所提供的強大功能和規模,以及記憶體內的 BigQuery BI Engine 分析服務加速處理速度,以利在最短時間內獲得互動式視覺分析結果,並且 Gartner 公司在 2019 年的 Magic Quadrant 研究報告中,將 Google 評選為分析資料管理解決方案的領導品牌。至於 BigQuery 的計費方式主要是根據儲存,查詢和串流輸入的費用,然而載入資料、複製資料、匯出資料、刪除資料和中繼資料相關作業為免費操作。所謂儲存空間的費用主要取決於儲存在 BigQuery 的資料量,分為動態和長期,以 90 天為基準,每個月前 10GB 儲存資料免費,所謂查詢的費用主要取決於查詢在 BigQuery 的資料,分為以量計價和固定費率,以量計價取決於每個查詢所處理的資料量,固定費率取決於可預測的費用金額,適合預算固定的客戶,每個月處理前 1TB 查詢資料免費。

接著 BigQuery 主要支援批次和串流事件資料,批次載入資料至 BigQuery 主要直接使用 API,因為有預算成本的考量所以批次載入資料是最佳的選擇,BigQuery API 支援批次作業,能夠在單一 HTTP 要求中加入多個 API 呼叫,使用批次作業的情境主要有當剛開始使用 API,有許多資料需要上傳,或者使用者在應用程式離線時變更資料,但是需要與雲端應用程式進行同步處理,單一批次要求最多僅能夠包括 1,000 個呼叫,請注意 BigQuery API 批次系統使用的語法與 OData 批次處理系統相同,但語意不同。此外批次載入資料至 BigQuery 中不需要付費,但是串流載入資料至 BigQuery 中需要付費。如果同時擁有多個 BigQuery 專案和使用者,則能夠提出自訂配額的要求,並且指定每日處理的查詢資料量上限,以利達到成本控管目的,為查詢資料量建立自訂配額之後,就能夠掌控專案層級或使用者層級的費用,所謂專案層級的自訂配額會限制一項專案中所有使用者的匯總用量,以及使用者層的自訂配額會分別套用至單一專案中的每個使用者或服務帳戶。

再來 BigQuery 主要會將所有查詢結果寫入至資料表中,這份資料表可以由使用者指定目資料表,也能夠是暫時性的快取結果資料表,而暫時性的快取結果資料表主要是依據不同的使用者和專案個別維護,系統不會收取儲存費用,但是如果將查詢結果寫入永久性資料表,則必須支付資料的儲存費用。其中所有查詢結果包括互動式與批次查詢會以快取方式儲存在暫存資料表中約 24 小時,但是有些例外情況,系統無法進行快取查詢,分別為:

  1. 指定目標資料表。
  2. 針對外部資料來源執行查詢。
  3. 變更參考資料表或邏輯檢視表。
  4. 使用萬用字元查詢多個資料表。
  5. 接收到串流緩衝區的資料附加至資料表。
  6. 快取結果已經過期,一般快取的生命週期為 24 小時。
  7. 使用非確定性函式系統會根據查詢執行時間傳回不同的值,像是 CURRENT_TIMESTAMP()、NOW() 和 CURRENT_USER()。

當我們執行查詢時,系統會在匿名資料集的特殊資料集中建立暫時性的快取結果資料表。一般資料集主要是從身分與存取權管理資源階層模型繼承權限,也就是專案與機構權限,但是匿名資料集的存取權僅限於資料集的擁有者,也就是執行產生快取結果的查詢使用者,匯名資料集的名稱會以底線開頭。此外BigQuery 基本上是分析引擎,許多查詢應用皆以會一個資料表為主,像是為資料執行去標準化作業時,則會將資訊與所有維度內入至單層式資料表結構,而在 BigQuery 中為資料執行去標準化作業的建作法主要是利用原生支援,使用 JSON 和 Avro 中入資料中的巢狀與重複結構,以利更自然的呈現基礎資料,至於執行去標準化作業,則會使用查詢更簡單和快速,但是會增加資料處理數量和儲存空間。

最後 BigQuery 主要支援 Cloud IAM 原始角色用於專案層級存取,根據預設,當我們將存取權授予專案時,也會將存取權授予該專案的資料集非資料表,因此 BigQuery 存取控制適用於資料集,並且我們能夠覆寫每個資料集的預設存取權限,而僅有具有專案原始角色 Owner 的使用者才能夠撤銷或變更任何專案角色,請注意專案的原始角色主要有三個,分別為 Viewer、Editor 和 Owner,而資料集的原始角色主要有三個,分別為 READER、WRITER 和 OWNER,請注意資料集必須至少包含一個具備 Owner 角色的實體,擁有 Owner 角色的使者無法移除本身 Owner 角色,此外當建立新的資料集時,BigQuery 預設會根據專案原始角色對應資料集原始角色,專案原始角色 Viewer 對應資料集原始角色 READER,專案原始角色 Editor 對應資料集原始角色 WRITER 以及專案原始角色 Owner 對應資料集原始角色 OWNER,請注意當使用者執行查詢時,系統就會建立匿名資料集,以儲存快取結果資料表,並且僅有執行該項查詢的使用者具有匿名資料集的 OWNER 存取權。更進一步透過檢視表授予資料集的存取權限,稱為授權檢視表 (Authorized Views),即使不將原始資料表的存取權授予特定使用者和群組,也能夠分享查詢結果,主要會使用檢視表的 SQL 查詢限制使用者能夠查詢的特定資料欄位。檢視表的建立位置不能與該檢視表查詢來源資料位置相同,因為我們只能夠在資料集層級指派存取權限控管設定,如果在相同資料集,則使用者就會同時取得檢視表和資料的存取權,請注意所有授權檢視表的副本皆必須由具備原始資料存取權的使用者來建立,以利確保資料的共用方式遵循資料擁有者的政策。

總結 Google Cloud BI 解決方案主要能夠從資料中擷取出深入分析資訊,以利發展為商業智慧模式,其中核心服務就是 BigQuery。

相關資源