Snowflake
本文介紹如何將 Tableau 連線到 Snowflake 資料倉儲並設定資料來源。
開始之前
在開始之前,請收集以下連線資訊:
- 要連線到的伺服器的名稱
- 驗證方法:
- OAuth:如果要從 IDP 啟用同盟,請使用此方法。
- SAML IDP:如果想在連線中內嵌 IDP 憑證,請使用此方法。
- 使用者名稱和密碼:如果想在 Snowflake 中存放使用者憑證,請使用此方法。
- 登入認證取決於選擇的驗證方法
- (可選)要在每次 Tableau 連線時執行的初始 SQL 語句
需要驅動程式
此連接器需要驅動程式才能與資料庫通訊。電腦上可能已經安裝了所需的驅動程式。如果電腦上未安裝該驅動程式,Tableau 會在連線對話方塊中顯示一條訊息,其中包含指向驅動程式下載(連結在新視窗開啟)頁面的連結,您可在該頁面中找到驅動程式連結和安裝說明。
附註:若要支援將 OAuth 用於 Snowflake,必須從 Snowflake(目前版本 2.25.4)安裝最新的 ODBC 驅動程式。
進行連線並設定資料來源
選取 Snowflake 作為連線後,將顯示一個包含 3 個索引標籤的 POPUP 功能表。使用「一般」索引標籤進行身份驗證。還可以在每個連線開始時執行 SQL 命令選取「初始 SQL」。有關詳情,請參閱執行初始 SQL。可以使用「進階」索引標籤新增帶有參數的客戶連線。
將 Tableau 連線到資料
- 啟動 Tableau,並在「連線」下選取「Snowflake」。
- 輸入要連線到的伺服器的名稱。
- 選取「驗證」方法:「使用者名和密碼」、「Okta 使用者名稱與密碼」或「使用 OAuth 登入」。
- 選取其中一種身份驗證方法並完成登入步驟。
Okta 使用者名稱和密碼:
- 輸入使用者名稱和密碼。
- 在「Okta」欄位中輸入該 Okta 伺服器的 URL。
使用 OAuth 登入
- (可選)如果要在每個連線開始時執行 SQL 命令,請選取「初始 SQL」。有關詳情,請參閱執行初始 SQL。
- 選取「登入」。
- 在開啟的網頁中,輸入「使用者名稱」和「密碼」,然後選取「登入」以登入 Snowflake。或者,如果已將 Snowflake 設定為支援單一登入 (SSO),請選取「單一登入」。
- 按一下「確定」確認存取 Snowflake 資料的權限。
- 關閉瀏覽器視窗與 Tableau。
- 轉到下一節「設定資料來源」。
- 選取「登入」。
如果 Tableau 無法建立連線,請驗證您的認證是否正確。如果仍然無法連線,則說明您的電腦在定位伺服器時遇到問題。請聯絡您的網路系統管理員或資料庫管理員。
存取權杖逾時:始終驗證存取權杖 TDC
Snowflake 存取權杖會在 10 分鐘後過期。在某些擷取重新整理過程中,存取權杖過期時,會稍後在作業中建立新連線。為解決此問題,我們新增了一項新功能,該功能從 Tableau 2024.2 開始預設啟用。若要在舊版本中啟用此功能,可以使用下列 TDC。
<connection-customization class='snowflake' enabled='true' version='10.0'>
<vendor name='snowflake' />
<driver name='snowflake' />
<customizations>
<customization name='CAP_OAUTH_VALIDATE_ALWAYS' value='yes'/>
</customizations>
</connection-customization>
若使用的是 Tableau Cloud,則可以從 Tableau Desktop 進行發佈,並將 TDC 安裝在 Tableau 存放庫資料來源資料夾中。這會在發佈時將 TDC 內嵌到工作簿或資料來源中。
只要伺服器端沒有安裝另一個 TDC,無論啟用標幟的狀態如何,都會始終套用內嵌 TDC。Tableau Cloud 上從未安裝過 TDC(僅限內嵌)。
附註:流程不支援內嵌 TDC。
使用驅動程式參數自訂連線
可以透過將驅動程式參數附加到「進階」索引標籤中的連線字串來修改使用 Snowflake 連接器建立的連線。
附註:您無法變更 Tableau 所產生的驅動程式參數;您只能附加參數。
例如,此語法可指定在未滿足 no_proxy
值時要使用的 Proxy 伺服器,並且允許主機名稱略過該 Proxy 伺服器:
Proxy=http://proxyserver.company:80;no_proxy=.trustedserver.com;
有關另一個自訂驅動程式參數範例,請參閱為 Snowflake 使用 Proxy。
附註:如果想自訂而不將其內嵌到資料來源中,可以在 Windows 的註冊中設定參數(只有標記為「設定參數」的參數可用)。有關驅動程式參數的詳情,請參閱 Snowflake 網站上的 ODBC 組態和連線參數。
設定資料來源
在資料來源頁面上,執行下列操作:
(可選)在頁面頂端選取預設資料來源名稱,然後輸入要在 Tableau 中使用的唯一資料來源名稱。舉例來說,使用可幫助其他資料來源使用者推斷出要連線的資料來源的資料來源命名約定。
- 從「倉儲」下拉式清單中選取倉儲或使用文字方塊按名稱搜尋倉儲。
附註:若將其保留為空白並且不選取倉儲,Tableau 會使用預設的 Snowflake 虛擬倉儲。
有關詳情,請參閱 Snowflake 中的預設虛擬倉儲。
- 從「資料庫」下拉式清單中選取資料庫或使用文字方塊按名稱搜尋資料庫。
- 從「結構描述」下拉式清單中選取結構描述或使用文字方塊按名稱搜尋結構描述。
- 在「表」下,選取表或使用文字方塊按名稱搜尋表。
- 將表拖到畫布,然後選取工作表索引標籤以開始分析。使用自訂 SQL 連線到特定查詢,而非整個資料來源。有關詳情,請參閱連線到自訂 SQL 查詢。
登入到 Mac
如果在 Mac 上使用 Tableau Desktop,則在輸入伺服器名稱進行連線時,請使用完整網域名稱(例如 mydb.test.ourdomain.lan)而不是相對的網域名稱(例如 mydb 或 mydb.test)。
或者,可以將網域新增到 Mac 電腦的「搜尋網域」的清單中,以便在您連線時,只需要提供伺服器名稱。若要更新「搜尋網域」的清單,請轉到「系統喜好設定」>「網路」>「進階」,然後開啟「DNS」索引標籤。
Snowflake 中的預設虛擬倉儲
建立 Snowflake 資料來源時,會同時建立 Snowflake 倉儲(用於計算資源)和 Snowflake 資料庫(用於資料資源)。倉儲和資料庫都需要權限才可進行存取。假設您具有對每個倉儲和資料庫的權限,則可以根據所需的計算能力使用不同的倉儲存取同一資料庫。
建立資料來源時,可以選擇從下拉式清單中選擇倉儲,若將其留空並且不選取倉儲,Tableau 使用預設的 Snowflake 虛擬倉儲。若隨後發佈該資料來源或工作簿,則當使用者連線時,Tableau 會使用該使用者的 預設 Snowflake 虛擬倉儲。
應為每位使用者指派一個預設倉儲,以便 Tableau 可以使用該預設倉儲來開啟 Snowflake 資料來源中的工作簿。
設定 Snowflake 伺服器的 OAuth 支援
有關如何為 Tableau 和 Snowflake 之間的連線設定 OAuth 的資訊,請參閱為 Snowflake 連線設定 OAuth(連結在新視窗開啟)。
為 Snowflake 使用 Proxy
您可以透過 Proxy 從 Tableau 連線至 Snowflake。若使用的是 Tableau 版本 2019.4 或更高版本,則可以透過在「進階」索引標籤中輸入所需的參數來使用連接器對話方塊對其進行設定。
例如:
proxy=http://proxyserver.company:80
如需進一步了解應該使用的參數,請參閱 Snowflake 說明文件(連結在新視窗開啟)。
附註:Tableau 不會使用 DSN 連線到 Snowflake,因此您可以忽略 Snowflake 說明文件中有關使用 DSN 的指示說明。
若使用的是 2019.4 之前的 Tableau 版本,則可以透過使用 odbc-extras
在 TDC 檔案中輸入參數進行設定。
例如:
<connection-customization class='snowflake' enabled='true' version='19.1'>
<vendor name='snowflake' />
<driver name='snowflake' />
<customizations>
<customization name='odbc-connect-string-extras' value='proxy=http://proxyserver.company:80' />
</customizations></connection-customization>
有關詳細資訊,請參閱為原生連接器自訂連線字串(連結在新視窗開啟)。
疑難排解
效能
使用下列資訊可協助解決您在將 Tableau 與 Snowflake 結合使用時遇到的任何效能問題。
擷取大小
使用無界 VARCHAR 或 VARBINARY 欄位時,驅動程式會將欄位大小傳回為 16M。這會導致 Tableau 使用較小的擷取大小來保持在記憶體限制內,從而造成查詢速度緩慢。有幾種方法可以解決這個問題。
結構描述變更
若為欄定義新增大小,例如 VARCHAR(256),這將允許 Tableau 計算最佳擷取大小。
TDC 自訂項
可以使用驅動程式參數 default_varchar_size 或 default_binary_size。也可以使用 (https://docs.snowflake.com/en/developer-guide/odbc/od
bc-parameters)設定無界欄位的最大欄位大小。
可以使用進階 UI 或 TDC。
還需要設定附加功能 CAP_ODBC_FETCH_BUFFERS_RESIZABLE。
附註:此解決方案不適用於 Tableau Cloud,除非使用 Tableau Bridge。
若使用 Tableau Bridge,則可以在 Bridge 主機上安裝 TDC,以將其套用於通過該主機的所有連線。請參閱下面的範例。
![參數快顯對話方塊](Img/td_snowflake_custom_params.png)
若您打算使用前面的 UI 自訂每個資料來源的欄位大小,請使用此 TDC。
<connection-customization class='snowflake' enabled='true' version='10.0'>
<vendor name='snowflake' />
<driver name='snowflake' />
<customizations>
<customization name='CAP_ODBC_FETCH_BUFFERS_RESIZABLE' value='yes'/>
</customizations>
</connection-customization>
使用此 TDC 對所有資料來源套用自訂項。
<connection-customization class='snowflake' enabled='true' version='10.0'>
<vendor name='snowflake' />
<driver name='snowflake' />
<customizations>
<customization name='CAP_ODBC_FETCH_BUFFERS_RESIZABLE' value='yes'/>
<customization name='odbc-connect-string-extras' value='default_varchar_size=512;default_binary_size=512'/>
</customizations>
</connection-customization>
常見問題
以下是一些常見問題和解決步驟。
我遇到一個錯誤「此欄位 XXX 不存在」,我該怎麼辦?
使用計算欄位、將其新增至工作表並將資料來源取代為 Snowflake 資料 (CustomSQL) 時,會發生此錯誤。
請使用取代欄位引用功能來解決該錯誤。有關取代欄位引用的其他資訊,請參閱取代欄位引用。
- Snowflake 網站上的將 Tableau 與 Snowflake 搭配使用的最佳做法(連結在新視窗開啟)(需要註冊)。