本文概述建立 Google BigQuery 連線的步驟。
Summary
Google BigQuery 連接器分別支援以下認證類型,適用於複製版與資料流 Gen2。
| 驗證類型 | 複本 | 資料流 Gen2 |
|---|---|---|
| 服務帳戶登入 | √ | √ |
| 組織帳戶 | n/a | √ |
為 Dataflow Gen2 設定連線
你可以透過 Power Query 連接器,將 Fabric 中的 Dataflow Gen2 連接到 Google BigQuery。 請依照下列步驟建立連線:
- 檢查 功能、 限制與考量 ,確保您的情境得到支援。
- Google BigQuery 的完整先決條件。
- 在 Fabric 裡取得資料。
- 連接 Google BigQuery 資料。
先決條件
您需要Google帳戶或Google服務帳戶才能登入Google BigQuery。
支援的功能
- Import
- DirectQuery(Power BI 語意模型)
連線參數參考
進入點:GoogleBigQuery.Database
| Parameter | 顯示名稱 | Required | 類型 | Group | 範例值 |
|---|---|---|---|---|---|
| options | 進階選項 | No | 可以為空的記錄 | 進階選項 | |
| options.BillingProject | 計費項目標識碼 | No | 可為空的文字 | 進階選項 | 我的計費專案 |
| options.UseStorageApi | 「使用 Storage API」 | No | 可為 Null 的布林值 | 進階選項 | true |
| options.ConnectionTimeout | 連線逾時持續時間 | No | 可為空值的持續時間 | 進階選項 | {"Kind": "literal", "Text": "00:01:02"} |
| options.CommandTimeout | 命令超時時間 | No | 可為空值的持續時間 | 進階選項 | {"Kind": "literal", "Text": "01:02:03"} |
連線設定
取得資料
若要在 Data Factory 中取得數據:
在 Data Factory 的左側,選取 [工作區]。
從你的資料工廠工作區,選擇 「新」> ,然後選擇你的資料工廠項目:資料流、管線、複製工作或鏡像工作。
在 Power Query 中,選取功能區中的 [取得數據],或在目前檢視中選取 [從另一個來源取得數據]。
在 「選擇資料來源 」頁面,使用 搜尋 搜尋連接器名稱,或在連接器列表右側選擇「 查看更多 」,以查看 Data Factory 中所有可用的連接器。
如果你選擇查看更多連接器,仍可使用 搜尋 功能搜尋連接器名稱,或選擇分類查看該類別相關的連接器清單。
連接說明
若要從 Power Query Online 連線到 Google BigQuery,請執行下列步驟:
在取得數據體驗中,選取 [Google BigQuery] 選項。 不同的應用程式透過不同的方式來體驗 Power Query Online 的資料取得功能。 如需瞭解如何從應用程式進入 Power Query Online 的「取得資料」體驗的更多資訊,請移至 取得資料的地方。
在 [Google BigQuery Database] 對話框中,您可能需要建立新的連線或選取現有的連線。 選取要登入的組織或服務帳戶。 如果您使用內部部署數據,請選取內部部署數據閘道。 然後選取登入。
隨即會出現 [使用 Google 登入] 對話框。 選取您的Google帳戶並核准連線。
備註
雖然 [登入] 對話框顯示您在登入後會繼續使用 Power BI Desktop,但系統會將您重定向至線上應用。
如果您要使用任何進階選項,請選擇 [進階選項]。 其他資訊:<使用進階選項連線>
登入之後,請選取 [下一步 ] 以繼續。
成功連線之後, [導覽器 ] 視窗隨即出現,並顯示伺服器上可用的數據。 在導覽器中選取您的數據。 然後選取 [下一步 ] 以轉換 Power Query 中的數據。
限制與考量
本節說明Google BigQuery 連接器的任何限制或考慮。
在 Power BI Desktop 中連接到 Google BigQuery
使用 Google BigQuery 連接器搭配 Power BI 時,有幾個限制和考量需要注意。
連接器可用性
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 連線設定]的 [計費專案] 進階選項中輸入計費專案標識符。
此外,如果您也使用閘道在 Power BI 服務中建立報表,您仍可能會收到此錯誤。 在此情況下,您必須使用 Power Query 編輯器或 Power Query 公式列,在連線的 M 程式代碼中手動包含計費項目識別碼。 例如:
Source = GoogleBigQuery.Database([BillingProject="Include-Billing-Project-Id-Here"])
單一雲端連線支援
Google BigQuery 不支援多個雲端連線,因為它缺少用於設定多個參數欄位的參數欄位。 因此,只能使用單一雲端連線。
巢狀欄位
為了優化效能考慮,Google BigQuery 在反正規化、扁平化和巢狀時,能很好地處理大型數據集。
Google BigQuery 連接器支援巢狀欄位,這些欄位會以 JSON 格式載入為文字資料行。
使用者應選擇 Transform Data,然後使用 Power Query 編輯器中的 JSON 解析功能來擷取資料。
- 在 [轉換] 功能區選項卡底下,[文字欄位] 類別中,選取 [解析],然後選取 [JSON]。
- 使用 [展開數據行 ] 選項擷取 JSON 記錄欄位。
設定Google服務帳戶
如需設定或使用 Google 服務帳戶的詳細資訊,請移至 Google 檔中 建立和管理服務帳戶金鑰。
Navigator 不會顯示所有專案或資料集
導航視窗僅顯示已認證使用者擁有足夠 Google Cloud Platform (GCP) 權限的專案與資料集。 如果你能透過原生查詢存取資料,但某些專案或資料集在 Navigator 中沒有出現,請檢查以下事項:
- 建立連線時,請連接到你的帳單專案,而不是資料專案。
- 使用者需要在專案層級擁有 瀏覽器 角色(或等效角色)才能在 Navigator 中看到專案列表。 若沒有此角色,驅動程式無法枚舉專案,即使使用者擁有資料集層級存取權限。
- 選擇資料專案後,僅顯示使用者已授權存取的資料集。
- 僅在資料集層級賦予 BigQuery Metadata Viewer 角色,並不足以讓專案出現在 Navigator。 該角色必須在專案層級授予,或專案層級必須指派 瀏覽器 角色。
透過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。 此功能是由名為 UseStorageApi的進階選項所控制。 如果您使用細微的許可權,可能會遇到此功能的問題。 在此案例中,您可能會看到下列錯誤訊息,或無法從查詢取得任何數據:
ERROR [HY000] [Microsoft][BigQuery] (131) Unable to authenticate with Google BigQuery Storage API. Check your account permissions
您可以藉由正確調整 BigQuery 記憶體 API 的使用者權限來解決此問題。 需要這些記憶體 API 許可權,才能使用 BigQueryStorage 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 類型的欄會導致 Invalid query 錯誤或視覺錯誤。
查詢名稱與數據表名稱相同之數據行的限制
查詢名稱與數據表名稱相同的數據行時,BigQuery 會將數據行解譯為包含數據表中所有數據行而非指定數據行的 struct。 例如,SELECT debug FROM dataset.debug 會返回包含偵錯表中所有欄位的 struct,而非指定的偵錯欄位。 此行為並不直觀,正在尋求解決方案。 有三種因應措施可用:
- 因應措施 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
Power BI Desktop 導覽器不支持具體化檢視
已知的問題是 Google BigQuery 連接器目前不支援 Power BI 桌面導覽器的實體化視圖。
- 因應措施:利用原生查詢 SQL 語句從Google BigQuery擷取具體化檢視。
HTTP 錯誤 403:quotaExceeded(配額超過:您的用戶已超過並行 project.lists 請求的配額)
- 超過配額的情況發生在客戶帳戶使用Google project.lists API呼叫時。 當多個報表同時重新整理時,可能會在不同的查詢或報表中觸發錯誤。 為了防止錯誤,請將報表重新整理排成不同時間間隔。
- 更新查詢以包含計費項目識別碼 -
GoogleBigQuery.Database([BillingProject="Include-Billing-Project-Id-Here"])。 - 對
GoogleBigQuery.Database的呼叫應該與架構和數據表選取項目位於相同的查詢中,以避免發生錯誤。
使用 ADBC 時 ExecuteQueryInternalAsync 失敗
部分使用者在使用 Implementation="2.0" 該路徑連接 BigQuery 時可能會遇到問題並收到錯誤 Cannot execute <ExecuteQueryInternalAsync>b__2 after 5 tries。 此問題可能是由以下幾個因素造成的:
- 下一節中概述的權限問題。
- 如果傳遞了
LargeResultDataset,則驅動程式會嘗試使用提供的名稱來建立輸出資料集。 此建立需要正確的權限才能執行此操作。 - 如果在建立資料集期間未明確指定區域,BigQuery API 會預設為美國多區域。 此行為是由 API 本身驅動,而不是由連接器或用戶端設定驅動。
因應措施選項
手動建立資料集
為避免出現非預期的區域預設值,請使用 BigQuery 控制台在所需區域手動建立資料集。
Desktop Connector 設定
如果你使用 Power BI 桌面版,且在瀏覽資料表時遇到錯誤:
- 移至 檔案>選項 和設定>選項
- 在 [預覽功能] 底下,取消核取 [ 使用新的 Google BigQuery 連接器實作] 選項。
如果您收到此訊息,並且包含 Last exception: ... 的額外細節,還有其中 ... 是失敗的更多詳情,請 建立案件 以進行進一步調查。
與 ADBC 連線的權限問題
某些環境可能需要額外的權限才能使用 /ADBC 進行 Implementation="2.0"連線。 這是因為 ADBC 路徑使用與 ODBC 不同的 BigQuery API 來查詢和載入資料。 所需權限已列於驅動程式的 GitHub 儲存庫。
無法使用 ADBC 重新整理分割模型
Google BigQuery 連接器中的已知問題是分割的語意模型可能無法正確重新整理。 這通常顯示Cannot execute <ReadChunkWithRetries>b__0 after 5 tries錯誤。 最近已針對此問題發佈修正程式,應於 2025 年 10 月部署。 如果您收到此訊息,並且包含 Last exception: ... 的額外細節,還有其中 ... 是失敗的更多詳情,請 建立案件 以進行進一步調查。