Google BigQuery

本文介紹如何將 Tableau 連線到 Google BigQuery 並設定資料來源。

附註:Tableau Prep Builder 不支援本文中列出的某些功能和自訂項。有關在 Prep Builder 中連線資料的更多資訊,請參閱連線至資料(連結在新視窗開啟)

開始之前

在開始之前,請收集以下連線資訊:

  • Google BigQuery 電子郵件或電話和密碼

進行連線並設定資料來源

  1. 啟動 Tableau,並在 [連線] 下選取 [Google BigQuery]

    完成以下 2 個選項之一以繼續。

     

    選項 1:

    1. 在驗證中,選取使用 OAuth 登入
    2. 按一下登入
    3. 輸入密碼以繼續。
    4. 選取接受,以允許 Tableau 存取您的 Google BigQuery 資料。系統將提示您關閉瀏覽器。

     

     

    選項 2:

    1. 在驗證中,選取使用服務帳戶 (JSON) 檔案登入
    2. 輸入檔案路徑或使用瀏覽按鈕進行搜尋。
    3. 按一下登入
    4. 輸入密碼以繼續。
    5. 選取接受,以允許 Tableau 存取您的 Google BigQuery 資料。系統將提示您關閉瀏覽器。
  2.  

  3. 在資料來源頁面上,執行下列操作:

    1. (可選)在頁首選取預設資料來源名稱,然後輸入要在 Tableau 中使用的唯一資料來源名稱。舉例來說,使用可幫助其他資料來源使用者推斷出要連線的資料來源的資料來源命名約定。

    2. (可選)從 [計費項目] 下拉清單中,選取計費項目。如果您未選取計費項目,則在選取剩餘欄位後,欄位中將顯示 EmptyProject

    3. [項目] 下拉清單中,選取項目。或者,選取 [publicdata] 以連線到 BigQuery 中的範例資料。

    4. [資料集] 下拉清單中,選取資料集。

    5. [表] 下,選取一個表。

      使用自訂 SQL 連線到特定查詢,而非整個資料來源。有關詳情,請參閱連線到自訂 SQL 查詢

附註:
Google BigQuery 已從支援 BigQuery 舊版 SQL (BQL) 改為支援標準 SQL。當您在 Tableau 中開啟工作簿時,工作簿將升級以支援標準 SQL。
由於 BigQuery 中存在大量資料,Tableau 建議您即時連線。
- Google BigQuery 中不支援 Radians() 函式。

使用自訂屬性來提高查詢性能

附註Tableau Prep Builder 目前不支援自訂屬性。

可以使用自訂屬性來提高從 BigQuery 傳回到 Tableau Online、Tableau Server 以及 Tableau Desktop 的大型結果集的效能。

只要您在將工作簿或資料來源發佈到 Tableau Online 或 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 發佈工作簿或發佈資料來源的操作過程中指定自訂屬性,請執行以下步驟:

  1. 建立一個包含自訂屬性的 XML 檔案。

  2. 使用 .tdc 副檔名儲存該檔案,例如,BigQueryCustomization.tdc

  3. 將檔案儲存到 My Tableau Repository\Datasources 資料夾。

將資料來源或工作簿發佈到 Tableau Online 或 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 移轉)。

排查 Google BigQuery 表格問題

多個帳戶的連線

使用網頁製作或發佈至網路時,您無法在相同的工作簿中使用多個 Google BigQuery 帳戶。您可以在 Desktop 中有多個 Google BigQuery 帳戶連線。

發佈流程時,您在 [輸入] 步驟中用來連線至 Google BigQuery 的認證,必須與 Tableau ServerTableau Online中在 [我的帳戶設定] 頁面的 [設定] 索引標籤中為 Google BigQuery 設定的認證相符。如果您在發佈流程時選取不同認證,或驗證設定中沒有認證,則流程會失敗,並發生驗證錯誤,除非您在 Tableau Server 或 Tableau Online 中編輯流程的連線,以符合這些認證。

Internet Explorer 11 和 Edge 的 Web 製作

在 Internet Explorer 11 和 Edge 中,您無法使用不安全連線 (http) 存取伺服器。請使用安全連線 (https) 或切換至其他瀏覽器。

另請參閱

感謝您的意見回饋!