Google BigQuery

摘要

項目 說明
發行狀態 正式發行
產品 Power BI (語意模型)
Power BI (數據流)
網狀架構 (資料流 Gen2)
Power Apps (數據流)
Customer Insights (數據流)
支援的驗證類型 組織帳戶
服務帳戶

注意

某些功能可能會存在於一個產品中,但由於部署排程和主機特定功能,而不存在其他功能。

注意

自 2021 年 7 月起,Google 已停止從內嵌瀏覽器架構登入 Google 帳戶的支援。 由於這項變更,您必須 將Power BI Desktop版本更新 為2021年6月或更新版本,以支援登入Google。

必要條件

您需要Google帳戶或Google服務帳戶才能登入Google BigQuery。

支援的功能

  • Import
  • DirectQuery (Power BI 語意模型)

從 Power Query Desktop 連線 Google BigQuery 數據

若要從 Power Query Desktop 連線到 Google BigQuery,請執行下列步驟:

  1. 在取得數據體驗中選取 Google BigQuery 。 Power Query Desktop 中的數據體驗會因應用程式而異。 如需 Power Query Desktop 取得應用程式數據體驗的詳細資訊,請移至 取得數據的位置。

  2. 如果您想要使用任何進階選項,請選取 [進階選項]。 否則,請選取 [ 確定 ] 繼續。 詳細資訊:使用進階選項 連線

    顯示具有進階選項選取範圍之初始對話框的影像。

  3. Google BigQuery 連接器支援透過組織帳戶或服務帳戶登入進行連線。 在此範例中,您將使用組織帳戶登入。 選取 [登入 ] 以繼續。

    登入Google BigQuery。

    您也可以使用Google服務帳戶登入。 在此情況下,請選取 [服務帳戶登入 ],然後輸入您的服務帳戶電子郵件和服務帳戶 JSON 密鑰檔案內容。 然後選取 [連線]。

  4. [使用 Google 登入] 對話框隨即出現。 選取您的Google帳戶並核准連線到Power BI Desktop。

    登入Google。

  5. 登入之後,請選取 [連線 繼續]。

    連線 Google BigQuery 數據。

  6. 成功連線之後, [導覽器 ] 視窗隨即出現,並顯示伺服器上可用的數據。 在導覽器中選取您的數據。 然後選取 [ 轉換數據 ] 以轉換 Power Query 中的數據,或 選取 [載入 ] 以在 Power BI Desktop 中載入數據。

    Power Query 導覽器將 Google BigQuery 數據載入傳統型應用程式影像。

從 Power Query Online 連線 Google BigQuery 數據

若要從 Power Query Online 連線到 Google BigQuery,請執行下列步驟:

  1. 取得數據體驗中選取Google BigQuery 選項。 不同的應用程式有不同的方式可取得Power Query Online取得資料體驗。 如需如何取得 Power Query Online 取得應用程式數據體驗的詳細資訊,請移至 取得數據的位置。

    [取得數據] 對話框的螢幕快照,強調Google BigQuery連接器。

  2. 在 [ Google BigQuery 資料庫 ] 對話框中,您可能需要建立新的連線或選取現有的連線。 如果您使用內部部署數據,請選取內部部署數據閘道。 然後選取 [ 登入]。

    登入對話框的影像。

  3. [使用 Google 登入] 對話框隨即出現。 選取您的Google帳戶並核准連線。

    注意

    雖然 [登入] 對話框表示一旦您登入后,您將會繼續前往 Power BI Desktop,但系統會改為將您傳送至在線應用程式。

    Google 登入對話框的影像。

  4. 如果您想要使用任何進階選項,請選取 [進階選項]。 詳細資訊:使用進階選項 連線

  5. 登入之後,請選取 [下一步 ] 以繼續。

    使用者成功登入的影像。

  6. 成功連線之後, [導覽器 ] 視窗隨即出現,並顯示伺服器上可用的數據。 在導覽器中選取您的數據。 然後選取 [下一步 ] 以轉換 Power Query 中的數據。

    Power Query 導覽器將 Google BigQuery 數據載入線上應用程式的影像。

使用進階選項 連線

Power Query Desktop 和 Power Query Online 都提供一組進階選項,您可以視需要新增至查詢。

顯示 Power Query Desktop 中可用的進階選項。

下表列出您可以在Power Query Desktop和Power Query Online 中設定的所有進階選項。

進階選項 描述
計費項目標識碼 Power Query 將執行查詢的專案。 許可權和計費會系結至此專案。 如果未提供任何計費項目標識符,則預設會使用Google API傳回的第一個可用專案。
使用 儲存體 Api 旗標,可讓您使用Google BigQuery 的 儲存體 API。 此選項預設為 true。 此選項可設定為 false,以不使用 儲存體 API,並改用 REST API。
連線 ion 逾時持續時間 標準連線設定(以秒為單位),可控制Power Query等候連線完成的時間長度。 如果您的連線在 15 秒之前未完成,您可以變更此值(預設值)。
命令逾時持續時間 Power Query 等候查詢完成並傳回結果的時間長度。 預設值取決於驅動程序預設值。 您可以在幾分鐘內輸入另一個值,讓聯機保持開啟時間更長。
專案識別碼 您要執行原生查詢的專案。 此選項僅適用於Power Query Desktop。
SQL statement 如需詳細資訊,請移至 使用原生資料庫查詢從資料庫匯入數據。 這個版本的原生資料庫查詢功能中,您需要使用格式 Database.Schema.Table的完整資料表名稱,例如 SELECT * FROM DEMO_DB.PUBLIC.DEMO_TABLE。 此選項僅適用於Power Query Desktop。

選取所需的進階選項之後,請在 Power Query Desktop 或 Power Query Online 中選取 [確定],以聯機到您的 Google BigQuery 數據。

限制與考量

本節說明Google BigQuery 連接器的任何限制或考慮。

在 Power BI Desktop 中 連線 Google BigQuery

搭配 Power BI 使用 Google BigQuery 連接器時,請記住一些限制和考慮。

連線 or 可用性

Google BigQuery 連接器可在 Power BI Desktop 和 Power BI 服務 中使用。 在 Power BI 服務 中,您可以使用從 Power BI 到 Google BigQuery 的雲端對雲端連線來存取連接器。

「拒絕存取」錯誤

當您嘗試從 Power BI Desktop 連線到 Google BigQuery 時,可能會收到下列錯誤訊息:

Datasource.Error: ODBC: ERROR [HY000][Microsoft][BigQuery] (100) Error interacting with REST API: Access Denied: Project <project name>: The user <user name> bigquery.jobs.create permissions in project <project name>.

在此情況下,您可能需要在Power Query 連線 ion 設定的 [計費專案進階] 選項中輸入計費專案識別碼。

此外,如果您也使用閘道在 Power BI 服務 中建立報表,您仍可能會收到此錯誤。 在此情況下,您必須使用 Power Query 編輯器或 Power Query 公式列,在連線的 M 程式代碼中手動包含計費項目識別碼。 例如:

Source = GoogleBigQuery.Database([BillingProject="Include-Billing-Project-Id-Here"])

巢狀欄位

為了優化效能考慮,Google BigQuery 在反正規化、扁平化和巢狀時,能很好地處理大型數據集。

Google BigQuery 連接器支援巢狀欄位,這些欄位會以 JSON 格式載入為文字資料行。

Google BigQuery 巢狀字段支援。

用戶應該選取 [轉換數據],然後使用 Power Query 編輯器 中的 JSON 剖析功能來擷取數據。

  1. 在 [轉換] 功能區索引卷標底下,選取 [文字數據行] 類別,選取 [剖析],然後選取 [JSON]。
  2. 使用 [展開數據行 ] 選項擷取 JSON 記錄欄位。

設定Google服務帳戶

如需設定或使用 Google 服務帳戶的詳細資訊,請移至 在 Google 檔中建立和管理服務帳戶密鑰

透過Google服務帳戶進行驗證

當您透過Power BI Desktop中的 Google 服務帳戶進行驗證時,連接器需要特定的認證格式。

  • 服務帳戶電子郵件:必須是電子郵件格式
  • 服務帳戶 JSON 金鑰檔案內容:一旦下載此 JSON 金鑰,所有新行都必須從檔案中移除,讓內容位於一行中。 一旦 JSON 檔案為該格式,就可以將內容貼到此欄位。

當您在 Power BI 服務 或 Power Query Online 中透過 Google 服務帳戶進行驗證時,用戶必須使用「基本」驗證。 [用戶名稱] 欄位會對應至上述 [服務帳戶電子郵件] 欄位,而 [密碼] 欄位會對應至上述 [服務帳戶 JSON 金鑰檔案內容] 字段。 每個認證的格式需求在Power BI Desktop、Power BI 服務和Power Query Online 中都保持不變。

無法使用Google BigQuery 儲存體 API 進行驗證

根據預設,Google BigQuery 連接器會使用Google BigQuery 儲存體 API。 此功能是由稱為Use 儲存體 Api 的進階選項所控制。 如果您使用細微的許可權,可能會遇到此功能的問題。 在此案例中,您可能會看到下列錯誤訊息,或無法從查詢取得任何數據:

ERROR [HY000] [Microsoft][BigQuery] (131) Unable to authenticate with Google BigQuery Storage API. Check your account permissions

您可以藉由正確調整 BigQuery 儲存體 API 的使用者許可權來解決此問題。 需要這些記憶體 API 許可權,才能使用 BigQuery 正確存取資料 儲存體 API:

  • bigquery.readsessions.create:透過 BigQuery 儲存體 API 建立新的讀取會話。
  • bigquery.readsessions.getData:透過 BigQuery 儲存體 API 從讀取工作階段讀取資料。
  • bigquery.readsessions.update:透過 BigQuery 儲存體 API 更新 讀取工作階段。

這些許可權通常會在角色中 BigQuery.User 提供。 詳細資訊, Google BigQuery 預先定義的角色和許可權

如果上述步驟無法解決問題,您可以停用 BigQuery 儲存體 API。

無法在直接查詢模式中使用 DateTime 類型數據

有一個已知問題,即透過直接查詢不支援 DateTime 類型。 選取具有 DateTime 類型的數據行會導致「查詢無效」錯誤或視覺錯誤。

查詢名稱與數據表名稱相同之數據行的限制

查詢名稱與數據表名稱相同的數據行時,BigQuery 會將數據行解譯為 struct 包含數據表中所有數據行的,而不是指定的數據行。 例如, SELECT debug FROM dataset.debugstruct 回具有偵錯數據表中所有數據行的,而不是指定的偵錯數據行。 此行為通常並不直覺,且正在調查修正。 有三種因應措施可用:

  • 因應措施 1:將數據表包裝成不衝突數據行名稱的檢視:CREATE VIEW dataset.new_view AS SELECT * FROM dataset.debug
  • 因應措施 2:重新命名數據行以避免與數據表名稱發生衝突—ALTER TABLE dataset.debug RENAME COLUMN debug to new_debug
  • 因應措施 3:將 SELECT 查詢變更為使用 table.column 來參考衝突數據行—SELECT debug.debug FROM dataset.debug