Tableau 和 ODBC
Tableau 包括適用於許多資料庫的內置連接器。這些連接器利用特定於這些資料來源的功能和優化,並經過相應開發和測試,可確保連接器可靠並且效能良好。
但您可能會使用 Tableau 沒有相應連線的資料庫。在這種情況下,您也許仍然能夠將 Tableau 連線到資料庫。Tableau 有一個使用 ODBC 標準的連接器。透過使用 ODBC,您可以存取支援 SQL 標準並實現 ODBC API 的任何資料來源。
ODBC 基礎知識
ODBC(開放式資料庫連線)是一種行業標準,它使各種各樣的軟體能夠存取資料。ODBC 的基礎是 SQL 查詢的標準語法,軟體應用程式使用該語法連線到資料庫並從資料庫請求資料。通常由資料庫供應商提供的 ODBC 驅動程式接受採用此標準語法的請求,並將請求轉換為目標資料庫首選的本機格式。實際上,ODBC 驅動程式是一個將通用請求轉換為資料庫特定請求的轉換層。
例如,ODBC 規範詳細說明了應透過使用以下語法在 SQL 語句中指定日期: {d 'yyyy-mm-dd'}
。隨後驅動程式會將此格式轉換為實際資料庫的適當日期語法。如果使用 ODBC 連接器來連線到 Oracle 資料庫,ODBC 連接器將採用以下格式將請求傳送到 Oracle ODBC 驅動程式:
select name from emp where birthdate > {d '1987-12-29'}
驅動程式會將您的請求轉換為 Oracle 資料庫需要的實際格式,即:
select name from emp where birthdate > '29-DEC-87'
ODBC 規範包括用於進行函數請求的語法、聯接語法、資料類型和資料類型轉換。SQL 語言本身支援複雜的概念,例如巢狀查詢、相關子查詢、臨時表和可在 select、where、group by、join 等子句中使用的各種函數。ODBC 驅動程式負責將所有這些請求正確轉換為適合目標資料庫的語法。
Tableau 如何確定 ODBC 驅動程式的能力
各個資料庫供應商在實現 ODBC 標準的功能的方式上可能會存在差異。Tableau 使用 ODBC 中的功能發現 API 向資料庫驅動程式查詢其支援的功能。Tableau 如何根據驅動程式報告的內容變更行為的一個範例是建立計算欄位時可用功能的清單。驅動程式限制越少,就意味著可用功能就越多。
在某些情況下,Tableau 將要求您依據 ODBC 連接器返回的資料建立擷取。而且,有一些 Tableau 無法連線到的 ODBC 驅動程式和資料庫。
ODBC 發現
在初始連線過程中,Tableau 將執行驅動程式和 SQL 發現查詢請求,以便確定驅動程式的功能。
Tableau 執行的功能發現的一些範例包括:
可用的純量和彙總函數。
可用的日期和時間操作函數。
是否能建立臨時表?
是否能在陳述式中使用 IF 和 SELECT?
是否支援子查詢?
是否支援熱門和限制查詢?
支援哪些聯結樣式(外部、內部、完全)?
支援的資料類型。
根據功能發現結果,Tableau 將當前連線分為四種類別之一:
完全可用。這是支援 Tableau 使用的所有功能的驅動程式。
細微限制。這是具有少量非關鍵性限制的驅動程式。例如,不支援 Tableau 通常提供的一整套數位、字串或日期函數的驅動程式。Tableau 將修改其行為以考慮到這些限制並繼續。
重大限制。這是具有大量限制或不支援 Tableau 依賴的關鍵功能的驅動程式。不過,即使存在這些重大限制,Tableau 也可能可以很好地進行連線並建立 Tableau 資料擷取以便將擷取到 Tableau 中,供從資料庫中進一步離線處理。在這種情況下,Tableau 將建議您建立擷取。在建立擷取時,您也許無法在資料來源上建立篩選器來減少擷取中的資料量。(有關詳情,請參閱篩選資料來源中的資料。)在擷取資料之後,處理擷取時可以使用完整 Tableau 功能。
致命限制。此驅動程式不支援 Tableau 連線並執行基本查詢以建立擷取檔所需的一組最少功能。因此,在使用此驅動程式的情況下,Tableau 無法進一步執行。
建立連線後,如果 Tableau 確定可用功能將此連線分類為無法充分執行,將顯示一條消息來通知檢測到的限制。例如,連線到具有細微限制的 ODBC 驅動程式時,將顯示以下消息:
對於較嚴重的限制,警告對話方塊將建議您建立 Tableau 資料擷取以便繼續。
調整 ODBC 連接器效能
Tableau 支援自訂 ODBC 資料連線的功能,這可以改善連線體驗。有關詳情,請參閱自訂和調整連線。
針對 ODBC 連線的 Tableau 支援
Tableau 不保證使用具有任何特定 ODBC 驅動程式或資料庫的 Tableau 將能夠成功連線和查詢資料。有些 ODBC 驅動程式支援完整 Tableau 互動式體驗,而有些驅動程式可能僅可用於建立擷取。某些 ODBC 驅動程式可能無法與 Tableau 搭配工作。
附註:Tableau 將提供合理的客戶支援層級來說明排除使用 ODBC 驅動程式進行連線的故障,但無法建立或自訂連接器來處理特定的 ODBC 驅動程式。
附註:Tableau Desktop 版本 2023.3 及之後版本不再支援 32 位元 ODBC 驅動程式。只有 64 位元驅動程式才會出現在 DSN(資料來源名稱)和驅動程式下拉式選單中。
ODBC 常見問題解答
ODBC 連接器的一種典型用例是什麼?
ODBC 連線的最常見用例是專門存取資料以將其引入 Tableau 資料擷取中。將這些資料引入 Tableau 資料擷取中後,即可使用完整 Tableau 功能來處理資料。許多 ODBC 驅動程式都支援所需的功能以便連線並執行完成擷取所需的較簡單查詢。無論您是擷取所有資料還是僅選取幾列並設定一些篩選器來檢索相關子集,都應記住應使用 ODBC。
可在何處獲得適用於我的資料庫的 ODBC 驅動程式?
大多數資料庫供應商都分發可與其資料庫一起使用的 ODBC 驅動程式。請與您的資料庫供應商聯繫來獲取驅動程式。另外,還有許多協力廠商 ODBC 驅動程式製造商可以為各種常用資料庫提供驅動程式。
我需要什麼版本的 ODBC 驅動程式?
確保您的 ODBC 驅動程式是版本 3 或更高版本的驅動程式,這意味著它實現 ODBC 規範版本 3。每個驅動程式提供商對其驅動程式版本都有自己的版本編號系統,這可能不同於它實現的 ODBC 版本號。1995 年引入了 ODBC 版本 3 規範,因此您的資料庫提供商很可能具有實現此層級合規性的驅動程式。我們發現,許多使用不符合版本 3 標準的驅動程式(連線失敗)的 Tableau 客戶在升級到較新驅動程式後,都能夠繼續。
Tableau 是否已測試了資料庫 [x]?
Tableau 已測試了與許多資料來源的 ODBC 連線,但由於市場上提供的 ODBC 驅動程式數量龐大,我們沒有對每個可能的驅動程式進行測試,Tableau 也無法執行如此廣泛的測試。對於任何特定驅動程式,最佳建議是試用一下,然後告訴我們它的工作方式。
如果它不工作,該怎麼辦?
首先檢查驅動程式版本。如果您檢視 Tableau 記錄,我們將回顯驅動程式報告的 ODBC 版本層級。在記錄中搜尋類似於如下的條目:
ODBCProtocol: driver ODBC version: 03.52
末尾的數字指示 ODBC 版本層級。如果它小於 03.00,則驅動程式需要升級。
如果您在連線時收到警告,指出功能不受支援,請與您的資料庫供應商聯繫,來瞭解他們是否有支援更多功能的最新驅動程式。並非所有驅動程式都可以與 Tableau 一起使用。
我是應該使用指定的資料庫連接器,還是 ODBC 連接器?
如果您要連線到 Tableau 具有指定連線選項的資料庫,則使用指定連接器。指定連接器已針對特定資料庫優化。
另請參閱
其他資料庫 (ODBC) – 描述如何使用 ODBC 連接器連線到資料。
自訂和調整連線 — 描述如何自訂連線資訊以改進功能和提高效能。
Tableau 功能自訂項參考 - 列出可用於定義資料來源支援的 Tableau 功能的自訂項。
ODBC/SQL 自訂項參考 - 列出自訂項,這些自訂項表示 ODBC 驅動程式報告支援的部分 ODBC 和 SQL 標準。