什麼是 BI Engine?

BigQuery BI Engine 是速度飛快的記憶體內分析服務,可透過智慧快取您最常用到的資料,加速 BigQuery 中的許多 SQL 查詢。BI Engine 可加快任何來源的 SQL 查詢速度,包括由資料視覺化工具編寫的查詢,並可管理快取資料表,以便持續進行最佳化。這樣一來,您就能改善查詢效能,而無須手動調整或資料分層。您可以使用叢集分區,進一步透過 BI Engine 改善大型資料表的效能。

舉例來說,如果資訊主頁只顯示上季的資料,建議您按時間分割資料表,這樣系統只會將最新的分區載入記憶體。您也可以結合已實作的檢視畫面和 BI Engine 的優點。當您使用具象化檢視畫面彙整及扁平化資料,以便為 BI Engine 最佳化結構時,這項功能就特別實用。

BI Engine 具備下列優點:

  1. BigQuery API:BI Engine 會直接整合 BigQuery API。任何透過 RESTJDBC 和 ODBC 驅動程式 等標準機制與 BigQuery API 搭配運作的 BI 解決方案或自訂應用程式,都可以不經修改就使用 BI Engine。
  2. 向量化執行階段:BigQuery 會在 BI Engine 中使用一種稱為「向量化處理」的現代技術。在執行引擎中使用向量化處理功能,可一次處理資料批次,更有效率地運用新型 CPU 架構。BI Engine 也會使用進階資料編碼,特別是字典和執行長度編碼,進一步壓縮儲存在記憶體層中的資料。
  3. 完美整合:BI Engine 可搭配 BigQuery 功能和中繼資料使用,包括授權檢視畫面、資料欄和資料列層級安全性,以及資料遮罩。
  4. 保留項目:BI Engine 保留項目會在專案位置層級管理記憶體配置。BI Engine 會快取已查詢的特定資料欄或分區,並優先處理標示為偏好的資料表。

BI Engine 架構

BI Engine 可與任何商業智慧 (BI) 工具整合,包括 Looker、Tableau、Power BI 和自訂應用程式,加快資料探索和分析的速度。

BI Engine 架構

BI Engine 用途

BI Engine 可大幅加快許多 SQL 查詢的速度,包括用於 BI 資訊主頁的查詢。如要有效加速,請找出對查詢至關重要的資料表,然後將其標示為偏好資料表。如要使用 BI Engine,請建立預留項目,定義 BI Engine 專用的儲存空間容量。您可以讓 BigQuery 根據專案的使用模式決定要快取哪些資料表,也可以標記特定資料表,避免其他流量干擾加速作業。

BI Engine 適用於下列用途:

  • 您使用 BI 工具分析資料:無論 BigQuery 查詢是在 BigQuery 控制台、用戶端程式庫、API、ODBC 或 JDBC 連接器中執行,BI Engine 都能加快查詢速度。這樣一來,透過內建連線 (API) 或連接器連結至 BigQuery 的資訊主頁,效能就能大幅提升。
  • 您有最常查詢的特定資料表:BI Engine 可讓您指定特定偏好資料表來加速。如果您有較常查詢的資料表子集,或是用於高曝光率資訊主頁,這項功能就很實用。

在下列情況下,BI Engine 可能無法滿足您的需求:

  • 查詢中使用萬用字元:BI Engine 不支援參照萬用字元表格的查詢,因此無法享有加速功能。

  • 您大量依賴不支援的 BigQuery 功能:雖然 BI Engine 在將商業智慧 (BI) 工具連結至 BigQuery 時支援大部分的 SQL 函式和運算子,但仍有不支援的功能,包括外部資料表和非 SQL 使用者定義函式。

BI Engine 的注意事項

決定如何設定 BI Engine 時,請考量下列事項:

確保特定查詢加速

您可以建立使用 BI Engine 保留項目的專案,確保特定查詢集一律加快速度。為此,您必須確保該專案中的 BI Engine 預留項目大小足以與這些查詢中使用的所有資料表大小相符,並將這些資料表指定為 BI Engine 的偏好資料表。請只在該專案中執行需要加速的查詢。

盡量減少加入運算

BI Engine 最適合用於預先彙整或預先彙整的資料,以及少量彙整資料。當一個連接一端的資料量很大,而另一端的資料量較小時,這一點尤其正確,例如當您查詢與小型維度資料表連接的大型事實資料表時。您可以將 BI Engine 與具象化檢視畫面結合,執行彙整作業,產生單一大型平面表格。如此一來,就不必對每個查詢執行相同的彙整作業。

瞭解 BI Engine 的影響

您可以查看 Cloud Monitoring 中的用量統計資料,或在 BigQuery 中查詢 INFORMATION_SCHEMA,進一步瞭解工作負載如何從 BI Engine 中獲益。請務必停用 BigQuery 中的「Use cached results」選項,以便取得最準確的比較結果。詳情請參閱「使用快取查詢結果」。

限制

包含 VECTOR_SEARCH 函式的查詢不會由 BigQuery BI Engine 加速。

配額與限制

如要瞭解 BI Engine 適用的配額與限制,請參閱「BigQuery 配額與限制」。

定價

如要瞭解 BI Engine 的定價,請參閱 BigQuery 定價頁面。

查詢最佳化和加速

BigQuery 和 BI Engine 會將為 SQL 查詢產生的查詢計畫細分為子查詢。子查詢包含多項作業,例如掃描、篩選或匯總資料,通常是分片的執行單位。

雖然 BI Engine 可正確執行所有 BigQuery 支援的 SQL 查詢,但只有特定子查詢會經過最佳化。特別是,BI Engine 最適合用於掃描儲存空間資料的葉節點子查詢,以及執行篩選、運算、匯總、排序和特定類型的彙整作業。其他尚未由 BI Engine 完全加速的子查詢會改由 BigQuery 執行。

由於採用這種選擇性最佳化方式,BI Engine 最適合用於簡單的商業智能或資訊主頁類型查詢 (因此產生的子查詢較少),因為執行時間大部分都用於處理原始資料的葉子層級子查詢。

後續步驟