Google BigQuery
本文介紹如何將 Tableau 連線到 Google BigQuery 並設定資料來源。
附註:Tableau Prep Builder 不支援本文中列出的某些功能和自訂項。有關在 Prep Builder 中連線資料的更多資訊,請參閱連線至資料(連結在新視窗開啟)。
開始之前
在開始之前,請收集以下連線資訊:
- Google BigQuery 電子郵件或電話和密碼
推薦設定
設定 OAuth 用戶端以使用貴公司的 IT 原則
您可以使用自訂 OAuth 用戶端,根據您自己的 IT 原則完全控制自己 OAuth 配置。使用您自己的 OAuth 用戶端的選項使您免於受制於 Tableau 發布週期和 Tableau 的 OAuth 用戶端輪替排程。有關如何設定您自己的 OAuth 用戶端的資訊,請參閱為站台設定自訂 OAuth。
進行連線並設定資料來源
附註:附註:若要將服務帳戶認證用於新的 Google BigQuery 資料來源,必須在 Tableau Desktop 中建立連線。
啟動 Tableau,並在 [連線] 下選取 [Google BigQuery] 。
完成以下 2 個選項之一以繼續。
選項 1:
- 在驗證中,選取使用 OAuth 登入。
- 按一下登入。
- 輸入密碼以繼續。
- 選取接受,以允許 Tableau 存取您的 Google BigQuery 資料。系統將提示您關閉瀏覽器。
選項 2:
提示:若使用 Tableau Server 或 Tableau Cloud 進行發佈,則必須首先登入正在使用的產品,然後在帳戶設定下新增儲存的 Google BigQuery 認證。這可防止「無效的認證錯誤」。
- 在「驗證」中選取「使用服務帳戶登入 (JSON) 檔案」。
- 輸入檔案路徑或使用瀏覽按鈕進行搜尋。
- 按一下登入。
- 輸入密碼以繼續。
- 選取接受,以允許 Tableau 存取您的 Google BigQuery 資料。系統將提示您關閉瀏覽器。
在資料來源頁面上,執行下列操作:
(可選)在頁面頂端選取預設資料來源名稱,然後輸入要在 Tableau 中使用的唯一資料來源名稱。舉例來說,使用可幫助其他資料來源使用者推斷出要連線的資料來源的資料來源命名約定。
(可選)從 「計費專案」 下拉清單中選取一個計費專案。如果您未選取計費項目,則在選取剩餘欄位後,欄位中將顯示
EmptyProject
。從「專案」下拉清單中選取一個專案。或者,選取 [publicdata] 以連線到 BigQuery 中的範例資料。
從「資料集」下拉清單中選取一個資料集。
在 [表] 下,選取一個表。
使用自訂 SQL 連線到特定查詢,而非整個資料來源。有關詳情,請參閱連線到自訂 SQL 查詢。
附註:
Google BigQuery 已從支援 BigQuery 舊版 SQL (BQL) 改為支援標準 SQL。在 Tableau 中開啟工作簿時,將升級工作簿以支援標準 SQL。
由於 BigQuery 中存在大量資料,Tableau 建議您即時連線。
- Google BigQuery 中不支援 Radians() 函式。
使用自訂屬性來提高查詢性能
附註:Tableau Prep Builder 目前不支援自訂屬性。
可以使用自訂屬性來提高從 BigQuery 傳回到 Tableau Cloud、Tableau Server 以及 Tableau Desktop 的大型結果集的效能。
只要您在將工作簿或資料來源發佈到 Tableau Cloud 或 Tableau Server 之前指定自訂屬性,就可以將這些屬性包括在發佈的工作簿或資料來源中。
使用 Google BigQuery 自訂屬性
自訂屬性接受整數值,並會對即時查詢和指定連線的擷取重新整理產生影響。
以下屬性對提高大型結果集的效能的幫助最大:
bq-fetch-tasks | 使用 HTTP 獲取資料時使用的並行幕後工作數。預設值為 10。 |
bq-large-fetch-rows | 要在每一批離線查詢中獲取的列數。預設值為 50000。 |
以下屬性也可用,主要用於小型查詢:
bq-fetch-rows | 要在每一批非離線查詢中獲取的列數。預設值為 10000。 |
bq-response-rows | 非離線非分批查詢中返回的列數。預設值為 10000。 |
此能力設定接受 yes 或 no 值,在測試時可能很有用。
CAP_BIGQUERY_FORCE_SPOOL_JOB | 強制所有查詢使用臨時表方法。預設值為 [no] 。將值變更為 [yes] 以啟用此屬性。 |
Tableau 如何從 Google BigQuery 中返回列
Tableau 使用兩種方法從 BigQuery 中返回列:預設的非離線方法,或臨時表(離線)方法:
第一次嘗試時,將使用預設的非離線查詢執行查詢,該查詢使用 bq-fetch-rows 設定。
如果結果集太大,BigQuery API 將返回錯誤,並且 Tableau BigQuery 連接器將透過將結果儲存到 BigQuery 臨時表中來重試查詢。然後,BigQuery 連接器從臨時表中進行讀取,這是一項使用 bq-large-fetch-rows 設定的離線作業。
如何指定屬性
您可以用以下兩種方式之一指定屬性:在 Tableau 資料來源自訂 .tdc
檔案中,或在工作簿或資料來源 XML 中。
在 .tdc
檔案中指定屬性
若要在從 Tableau Desktop 發佈工作簿或發佈資料來源的操作過程中指定自訂屬性,請執行以下步驟:
建立一個包含自訂屬性的 XML 檔案。
使用
.tdc
副檔名儲存該檔案,例如,BigQueryCustomization.tdc
。將檔案儲存到
My Tableau Repository\Datasources
資料夾。
在 Tableau Cloud 或 Tableau Server 發佈資料來源或工作簿後,Tableau Desktop 會讀取並包括 .tdc
檔案中的自訂屬性。
重要資訊:Tableau 不測試也不支援 TDC 檔案。這些檔案應用作研究資料連線或臨時解決資料連線問題的工具。建立和維護 TDC 檔案需要手動進行仔細的編輯,而且不會為共用這些檔案提供支援。
包括大型擷取建議設定的 .tdc 檔案範例
<connection-customization class='bigquery' enabled='true' version='8.0' >
<vendor name='bigquery' />
<driver name='bigquery' />
<customizations>
<customization name='bq-fetch-tasks' value='10' />
<customization name='bq-large-fetch-rows' value='10000' />
</customizations>
</connection-customization>
在工作簿或資料來源檔案的 XML 中手動內嵌屬性
可以在工作簿 .twb 檔案或資料來源 .tds 檔案中的「connection」標記內手動內嵌自訂屬性。BigQuery 自訂屬性在以下範例中顯示為粗體,更加便於您查看。
手動內嵌的屬性的範例
<connection CATALOG='publicdata' EXECCATALOG='some-project-123' REDIRECT_URI='some-url:2.0:oob' SCOPE='https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email' authentication='yes' bq-fetch-tasks='10' bq-large-fetch-rows='10000' bq_schema='samples' class='bigquery' connection-dialect='google-bql' connection-protocol='native-api' login_title='Sign in to Google BigQuery' odbc-connect-string-extras='' project='publicdata' schema='samples' server='googleapis.com/bigquery' server-oauth='' table='wikipedia' username=''>
檢查您的工作簿使用的是標準 SQL 還是舊版 SQL
2016 年,Google 更新了 BigQuery API 以支援標準 SQL,此外還支援 BigQuery SQL(現稱為舊版 SQL)。從 Tableau 10.1 開始,Google BigQuery 連接器已升級以支援標準 SQL,並且還仍然支援舊版 SQL。利用標準 SQL,BigQuery 連接器的使用者能夠使用詳細層級運算式、更快驗證中繼資料以及透過連線來選取計費項目。
現在,建立新工作簿後,預設情況下 Tableau 支援標準 SQL。Tableau 還使用 [資料] 窗格中的 [使用舊版 SQL] 選項支援舊版 SQL。例如,開啟使用以前版本的 Tableau Desktop 建立的工作簿時,如果您的工作簿使用舊版 SQL,則 [使用舊版 SQL] 選項處於選中狀態。
您可能需要設定 [使用舊版 SQL] 選項,原因如下:
您有一個現有工作簿,並且想要將該工作簿更新為使用標準 SQL,以便編寫詳細層級運算式或利用其他改進之處。在這種情況下,請確保未選取 [使用舊版 SQL] 選項。
要建立一個必須連線到舊版 SQL 檢視的新工作簿。您無法將舊版 SQL 與標準 SQL 混用,因此您必須選取 [使用舊版 SQL] 選項才能使工作簿正常工作。
在 Google BigQuery 中,檢視採用標準 SQL 或舊版 SQL 編寫。您可以將採用標準 SQL 編寫的檢視聯接到採用標準 SQL 編寫的檢視,或將採用舊版 SQL 編寫的檢視聯接到採用舊版 SQL 編寫的檢視,並且可以將採用任一 SQL 版本編寫的檢視聯接到表。但您無法在一個工作簿中聯接採用標準 SQL 編寫的檢視和採用舊版 SQL 編寫的檢視。在聯接檢視時,您必須設定 [使用舊版 SQL] 核取方塊以與所連線到的檢視中使用的 SQL 類型對應。
附註:如果您使用舊版 SQL 或標準 SQL,Tableau Desktop 可為巢狀資料提供有限的支援。舉例來說,如果表包含巢狀資料,並且您使用舊版 SQL 或標準 SQL,則資料來源頁面上的 [立即更新] 將不起作用。
有關從舊版 SQL 移轉到標準 SQL 詳情,請參閱 Google 雲端平台網站上的 Migrating from legacy SQL(連結在新視窗開啟)(從舊版 SQL 移轉)。
使用 BigQuery BI Engine 分析資料
可以使用 BigQuery BI Engine 通過 BigQuery 支援的報告和儀表板執行快速、低延遲的分析服務和互動分析。有關詳細資訊,包括如何將 BigQuery BI Engine 與 Tableau 整合的說明,請參閱 Google 文件中的使用 BI Engine 和 Tableau 分析 BigQuery 資料。
排查 Google BigQuery 表格問題
多個帳戶的連線
使用 Web 製作或發佈到 Web 時,不能在同一個工作簿中使用多個 Google BigQuery 帳戶。您可以在 Desktop 中有多個 Google BigQuery 帳戶連線。
發佈流程時,您在 [輸入] 步驟中用來連線至 Google BigQuery 的認證,必須與 Tableau Server 或 Tableau Cloud中在 [我的帳戶設定] 頁面的 [設定] 索引標籤中為 Google BigQuery 設定的認證相符。如果在發佈流程時選取不同認證,或驗證設定中沒有認證,則流程會失敗,並出現驗證錯誤,除非您在 Tableau Server 或 Tableau Cloud 中編輯流程的連線,以匹配這些認證。
Internet Explorer 11 和 Edge 的 Web 製作
在 Internet Explorer 11 和 Edge 中,無法使用不安全連線 (http) 存取伺服器。請使用安全連線 (https) 或切換至其他瀏覽器。
另請參閱
- 為 Google 設定 Oauth(連結在新視窗開啟) - 設定 Tableau Server 的 Oauth 連線。
- Oauth 連線(連結在新視窗開啟) -設定 Tableau Cloud 的 Oauth 連線。
- Google BigQuery 和 Tableau:最佳做法(連結在新視窗開啟) - 閱讀 Tableau 白皮書(需要註冊或登入)