擷取資料
資料擷取是與原始資料集分開儲存的資訊子集。它有兩個目的:提高效能以及利用原始資料中可能不可用或不支援的 Tableau 功能。藉助建立資料擷取,可以透過套用篩選器和設定其他限制來有效減少整體資料量。
建立資料擷取後,可以使用原始來源中的最新資料對其進行重新整理。在重新整理過程中,可以靈活地選擇完整重新整理(取代擷取中的所有現有內容)或累加式重新整理(僅包含自上次重新整理以來的新列)。
附註:從版本 2024.1 開始,Tableau 引入了一項功能,讓使用者能夠使用非唯一索引鍵欄對擷取執行累加式重新整理。有關詳細資訊,請參閱累加式重新整理。
擷取的優勢
處理大型資料集:擷取可以處理大量資料,甚至達到數十億列。這讓使用者能夠有效地處理大量資料集。
改進的效能:與直接連線到原始資料的檢視相比,與利用擷取資料來源的檢視進行互動可以帶來更好的效能。擷取可最佳化查詢效能,從而加快資料分析和視覺效果的速度。
增強的功能:擷取可提供對原始資料來源可能不可用或不支援的其他 Tableau 功能的存取。
例如,使用者可以利用擷取來計算計數(相異),從而實現更進階的計算和分析。
離線資料存取 (Tableau Desktop):擷取允許離線存取資料。這意味著即使原始資料來源不可用,使用者仍然可以在本機儲存、操作和使用資料。
建立擷取
Tableau 工作流程中有多個選項可用於建立擷取,但主要方法如下所述。
連線到資料並在「資料來源」頁面上設定資料來源後,在右上角選取擷取,然後選取編輯連結,以開啟「擷取資料」對話方塊。
在資料儲存下,選取邏輯資料表或實體資料表。有關此步驟的協助,請參閱資料儲存部分。
展開篩選器以設定篩選器,以便限制根據欄位及其值擷取的資料量。
選取彙總可視維度的資料,以使用度量的預設彙總來彙總度量。
(可選)選取將日期匯總到指定的日期層級,例如年、月等。
選取要擷取的列數。可以擷取所有列、範例或前 N 列。
選取累加式重新整理方塊,然後指定要重新整理的表以及資料庫中將用於識別新列的欄。
完成後,選擇儲存設定。
選取工作表索引標籤。這將啟動建立擷取。
接下來,選取儲存擷取的位置。
輸入擷取檔案名稱。
選取「儲存」。若未顯示「儲存」對話方塊,請參閱「擷取疑難排解」部分。
擷取欄位描述
建立擷取時,可以設定多個欄位。本節將引導您瞭解每個欄位。
資料儲存
在資料儲存下,可以選取邏輯資料表或實體資料表。邏輯資料表將資料來源中每個邏輯資料表的資料儲存在一個擷取表中。另一方面,實體資料表將資料來源中每個實體資料表的資料儲存在一個擷取表中。
邏輯資料表
若想要限制擷取中的資料量並使用其他擷取屬性(例如篩選器、彙總或前 N 個),則應選取邏輯資料表。
資料包含傳遞函數 (RAWSQL) 時,此選項也很有效。
Tableau 會使用邏輯資料表作為儲存擷取資料的預設結構。
若選擇此選項且擷取包含聯結,則在建立擷取時將套用聯結。
實體資料表
若擷取由使用等效聯結合併的表組成,並且滿足使用實體資料表選項的條件,則應選取實體資料表。此選項會在查詢時執行聯結,可能會提高效能並減小擷取檔案的大小。
使用實體資料表選項的注意事項。要使用實體資料表選項儲存擷取,擷取中的資料必須滿足以下所有條件。
實體資料表之間的所有聯結都是等效 (=) 聯結。
用於關係或聯結的欄的資料類型相同。
未使用傳遞函數 (RAWSQL)。
未設定累加式重新整理。
未設定擷取篩選器。
未設定「前 N 個」或採樣。
擷取儲存為實體資料表時,無法向其附加資料。
對於邏輯資料表,不能將資料附加到具有多個邏輯資料表的擷取。
使用實體資料表選項的提示
在設定和使用擷取時,Tableau 一般建議您使用預設資料儲存選項「邏輯表」。在很多情況下,擷取所需的某些功能(例如擷取篩選條件),僅在您使用「邏輯表」選項時可用。
超過預期大小之擷取的「邏輯表」選項
應謹慎使用實體資料表選項,以協助解決特定情況,例如資料來源滿足使用實體資料表選項的條件,且擷取的大小超過預期。若要確定擷取大小是否超過預期,使用「邏輯表」選項之擷取中的列總和必須大於擷取建立前所有組合表的列總和。若遇到這種情況,請嘗試改用實體資料表選項。
使用實體資料表選項時的替代篩選建議使用實體資料表選項時,會停用其他有助於減少擷取中資料的選項,例如擷取篩選器、彙總、前 N 個和採樣。如果您需要減少使用「實體表」選項的擷取資料,請考慮使用以下其中一項建議,先篩選資料,然後再將資料轉移至 Tableau Desktop:
連線到資料,並使用自訂 SQL 定義篩選器
不要連線到資料庫資料表,而是使用自訂 SQL 連線到資料。建立自訂 SQL 查詢時,請確定它包含您需要減少擷取資料的適當篩選層級。有關 Tableau Desktop 中的自訂 SQL 的詳情,請參閱連線到自訂 SQL 查詢。
在資料庫中定義檢視
若您對資料庫具有寫入存取權限,請考慮定義僅包含擷取所需資料的資料庫檢視,然後從 Tableau Desktop 連線到該資料庫檢視。
擷取的列層級安全性
如果要在列層級保護擷取資料,建議使用「實體資料表」選項來實現此目的。有關 Tableau 中列層級安全性的詳細資訊,請參閱限制資料列層級的存取。
資料表一般注意事項
邏輯資料表和實體資料表選項僅影響擷取中資料的儲存方式。這些選項不會影響擷取中的資料表在「資料來源」頁面上的顯示方式。
例如,假設您的擷取由一個包含三個實體資料表的邏輯資料表組成。
如果直接開啟設定為使用預設選項「邏輯表」的擷取 (.hyper) 檔案,則會在「資料來源」頁面中看到列出一個表。
但是,如果開啟使用打包資料來源 (.tdsx) 檔案的擷取或包含其對應擷取 (.hyper) 檔案的資料來源 (.tdsx) 檔案,您將在 [資料來源] 頁面上看到包含擷取的全部三個表。
篩選器
使用篩選器設定篩選器,以限制根據欄位及其值擷取的資料量。
彙總
彙總允許您彙總度量。您也可以選取將日期匯總到指定的日期層級,例如年、月等。下面的範例會顯示如何為您可以選擇的每個彙總選項擷取資料。
原始資料 | 每個記錄都顯示為一個單獨列。資料中共有 7 列。 | |
彙總可視維度的資料 (無匯總) | 具有相同日期和地區的記錄已彙總到一列中。擷取中共有 5 列。 | |
彙總可視維度的資料 (按 [月] 匯總日期) | 日期已按 [月] 層級進行匯總,並且具有相同地區的記錄已彙總到一列中。擷取中共有 3 列。 |
列數
可以擷取所有列或前 N 列。Tableau 首先會應用篩選器和彙總,然後從經過篩選和彙總的結果中擷取列數。列數選項取決於要從中進行擷取的資料來源的類型。您可能在「擷取資料」對話方塊中看不到「採樣」選項,因為某些資料來源不支援採樣。
附註:您最初在「資料來源」頁面或工作表索引標籤上隱藏的任何欄位都將從擷取中排除。按一下隱藏所有未使用的欄位按鈕可從擷取中移除隱藏欄位。
累加式重新整理
大多數資料來源都支援累加式重新整理。您可以將重新整理設定為僅新增自上次擷取資料以來新增的列,而不是重新整理整個擷取。
例如,您可能有一個每天都使用新銷售交易進行更新的資料來源。您只需新增當天發生的新交易,而不是每天重新組建整個擷取。
累加式重新整理和進階設定提示
本節將幫助您提供一些提示,以防止您在設定上述功能時可能遇到的錯誤。
累加式重新整理
在列數中,需要選取所有列。
若啟用彙總,則累加式重新整理不可用。
進階設定:
進階設定與篩選器不相容。
擷取提示
儲存工作簿以保留與擷取的連線
建立擷取後,工作簿將開始使用您的資料的擷取版本。但是,在儲存工作簿之前,不會儲存與資料擷取版本的連線。這意味著,如果不先儲存就關閉工作簿,則在下次開啟該工作簿時,該工作簿將連線到原始資料來源。
在抽樣資料與整個擷取之間切換
處理大型擷取時,建立較小的資料範例會很有幫助。這可讓您設定檢視,而不必在每次向分析中新增欄位時執行冗長的查詢。透過在「資料」功能表中選取適當的選項,可以輕鬆地在使用範例資料和完整資料來源之間切換。
不要直接連線到擷取
將擷取儲存到電腦時,可以使用新的 Tableau Desktop 直接連線到擷取。但是,由於以下一些原因,不建議這樣做:
資料表的名稱可能不同。
擷取使用特殊命名來確保每個資料表都有唯一的名稱,這可能很難理解。
您無法更新或重新整理擷取。
直接連線到擷取時,Tableau 會將其視為原始資料來源,而不是副本。這意味著您無法將其連結回原始資料來源。
資料表之間的結構和關係將會丟失。
資料表之間的排列和連線儲存在 .tds 檔案中,而不是在 .hyper 檔案中。因此,直接連線到 .hyper 檔案時,將丟失此資訊。若使用邏輯資料表儲存進行擷取,將看不到任何對原始實體資料表的引用。
從工作簿中移除擷取
您可以隨時移除擷取,方法是在 [資料] 功能表中選取擷取資料來源,然後選取 。移除擷取時,您可以選取 [僅從工作簿中移除擷取] 或 [移除並刪除擷取檔] 。後一個選項將從硬碟中刪除擷取。
查看擷取歷程記錄 (Tableau Desktop)
您可以檢視上次更新擷取的時間以及其他詳細資料,方法是在 [資料] 功能表中選取資料來源,然後選取 。
如果開啟所儲存的帶有擷取的工作簿,並且 Tableau 找不到此擷取,則在出現提示時,請在 [未找到擷取] 對話方塊中選取以下選項之一:
尋找擷取:如果擷取存在,但不在 Tableau 最初儲存它的位置中,請選取此選項。按一下 [確定] 以開啟 [開啟檔] 對話方塊,您可以在其中指定擷取檔案的新位置。
刪除擷取:如果您沒有對擷取的進一步需求,請選取此選項。這相當於關閉資料來源。將會刪除引用資料來源的所有已開啟工作簿。
停用擷取:使用從中建立擷取的原始資料來源,而不是擷取。
重新組建擷取:重新組建擷取。會自動應用您在最初建立擷取時指定的所有篩選器和其他自訂項。
擷取疑難排解
建立擷取花費很長時間:根據資料集的大小,建立擷取資料可能需要較長時間。不過,在擷取了資料並將其儲存到電腦後,效能將會提高。
未建立擷取: 如果資料集包含非常大量的列(例如,數千個列),則在某些情況下 Tableau 可能無法建立擷取。如果遇到問題,請考慮擷取較少的欄或重新組建基礎資料。
[儲存] 對話方塊未顯示或未依據 .twbx 建立擷取: 如果按照上面的過程從已封裝工作簿中擷取資料, [儲存] 對話方塊將不會顯示。在依據已封裝工作簿 (.twbx) 建立擷取時,擷取檔會自動存儲在與已封裝工作簿關聯的檔案包中。若要存取依據已封裝工作簿建立的擷取檔案,您必須將工作簿解包。有關詳情,請參閱已封裝工作簿。
擷取功能更新
累加式重新整理
從版本 2024.1 開始,Tableau 引入了一項功能,讓使用者能夠使用非唯一索引鍵資料行對資料擷取執行累加式重新整理。有一個新的 UI 支援這些進階設定。
網路中的擷取
從版本 2020.4 開始,資料擷取可在 Web 製作過程中和內容伺服器中提供。現在,您不再需要使用 Tableau Desktop 來擷取資料來源。有關詳情,請參閱在 Web 上建立擷取。
邏輯資料表和實體資料表擷取
隨著在 2020.2 版之 Tableau 資料模型中引入邏輯資料表和實體資料表,擷取儲存體選項已從單一表和多表變更為邏輯資料表和實體資料表。這些選項能夠更清楚地描述如何儲存擷取。有關詳情,請參閱擷取資料。
棄用 .tde 格式
附註:從 2023 年 3 月開始,使用 .tde 格式的擷取在 Tableau Cloud、Tableau Public 和 Tableau Server(版本 2023.1.0)中被棄用。有關詳情,請參閱擷取升級為 .hyper 格式。
從 10.5 版本開始,當您建立一個新的擷取時,它將使用 .hyper 格式。.hyper 格式的擷取利用了改進的資料引擎,此引擎針對更大的資料集支援更快的分析和查詢效能。
同樣,使用版本 10.5 或更新版本對 .tde 擷取執行與擷取相關的工作時,擷取會升級為 .hyper 擷取。在 .tde 擷取升級為 .hyper 擷取後,它不能恢復為 .tde 擷取。有關詳情,請參閱擷取升級為 .hyper 格式。
檢視中值和標記的變化
為了提高擷取效率和可擴展性,可以在版本 10.5 或更新版本中以不同方式計算擷取中的值(與版本 10.4 及更低版本相比)。變更計算值的方式可能會影響檢視中標記的填充方式。在某些極少數的情況下,變更可能會導致檢視形狀發生變化或變為空白。這些變更可能也適用於多連線資料來源、使用檔資料即時連線的資料來源、連線到 Google Sheets 資料的資料來源、基於雲端的資料來源、純擷取資料來源以及 WDC 資料來源。
若要瞭解使用版本 2022.4 後您可能會在檢視中看到的某些差異,請檢視以下各部分。
日期和日期時間值的格式
在版本 10.5 和更高版本中,關於如何透過 DATE、DATETIME 和 DATEPARSE 函數解譯日期字串,擷取將遵循更一致且更嚴格的規則。這會影響日期的解析方式,或者這些函數所允許的日期格式和模式。更具體地說,這些規則可以概括如下:
- 計算日期,然後按欄進行分析,而不是按列進行分析。
- 計算日期,然後根據建立工作簿所在的位置的地區設定進行分析,而不是根據開啟工作簿所在的電腦的地區設定進行分析。
這些新規則使擷取更加高效,並能組建與商業資料庫一致的結果。
但是,由於存在這些規則,特別是在建立工作簿時的地區設定與開啟工作簿時的地區設定或工作簿所發佈到的伺服器的地區設定不同時,您可能會發現 1.) 日期和日期時間值變更為不同的日期和日期時間值,或者 2.) 日期和日期時間值變更為 Null。當日期和日期時間值變更為不同的日期和日期時間值或者變為 Null 時,通常表示基礎資料存在問題。
為什麼使用版本 10.5 和更高版本後您可能會在擷取資料來源中看到日期和日期時間值發生變化,以下是一些常見的原因。
日期/日期時間值發生變化的常見原因 | Null 值的常見原因 |
---|---|
|
|
日期案例 1
假設您有一個以英語地區設定建立的工作簿,該工作簿使用 .tde 擷取資料來源。下表顯示了該擷取資料來源中包含的一個字串列。
2018/10/31 |
31/10/2018 |
2018/12/10 |
根據特定的英文地區設定,我們可以確定日期欄的格式遵循 MDY(月日年)格式。以下各表顯示了當使用 DATE 函數將字串值轉換為日期值時 Tableau 基於此地區設定所顯示的內容。
2018年10月31日 |
2018年10月31日 |
2018年12月10日 |
如果以德語地區設定開啟該擷取,您將看到以下內容:
31 Oktober 2018 |
31 Oktober 2018 |
12 Oktober 2018 |
但是,在使用版本 10.5 或更新版本以德語地區設定開啟擷取後,將會嚴格實施德語地區設定的 DMY(日月年)格式,並導致出現 Null 值,原因是其中一個值未遵循 DMY 格式。
Null |
2018年10月31日 |
2018年10月12日 |
日期案例 2
假設您有另一個以英語地區設定建立的工作簿,該工作簿使用 .tde 擷取資料來源。下表顯示了該擷取資料來源中包含的數位日期列。
1112018 |
1212018 |
1312018 |
1412018 |
根據特定的英文地區設定,我們可以確定日期欄的格式遵循 MDY(月日年)格式。當使用 DATE 函數將數位值轉換為日期值時,以下各表展示了 Tableau 基於此地區設定所顯示的內容。
2018/11/1 |
2018/12/1 |
Null |
Null |
日期案例 3
假設您有一個使用 .tde 擷取資料來源的工作簿。下表顯示了該擷取資料來源中包含的一個字串列。
2018/10/31 |
2018-31-10 |
2018/12/10 |
2018/10/12 |
由於日期使用 ISO 格式,因此日期列始終採用 YYYY-MM-DD 格式。以下各表顯示了當使用 DATE 函數將字串值轉換為日期值時 Tableau 所顯示的內容。
2018年10月10日 |
Null |
2018年12月10日 |
2018年10月12日 |
附註:在版本 10.4(及更低版本)中,ISO 格式和其他日期格式可能組建不同的結果,具體情況取決於建立工作簿採用的地區設定。例如,在英語地區設定中,2018-12-10 和 2018/12/10 均可能組建 December 12, 2018。但是,在德語地區設定中,2018-12-10 可能組建 December 12, 2018,2018/12/10 可能組建 October 12, 2018。
排序順序和區分大小寫
擷取支援排序規則,因此可以更恰當地對包含重音符號或大小寫不同的字串值進行排序。
例如,假設您有一個字串值表。就排序順序而言,這意味著,像 [Égypte] 這樣的字串值現在恰當地列在 [Estonie] 之後和 [Fidji] 之前。
關於 Excel 資料:
就大小寫而言,這意味著 Tableau 存儲值的方式在版本 10.4(及更低版本)和版本 10.5(及更高版本)之間已變更。但是,用於排序和比較值的規則未變更。在版本 10.4(及更早版本)中,像 [House] 、 [HOUSE] 和 [houSe] 這樣的字串值被視為相同,並用一個代表性的值存儲。在版本 10.5(及更高版本)中,這些相同的字串值被為唯一,因此存儲為單獨的值。有關詳情,請參閱 值計算方式的變更。
擺脫「前 N 個」查詢中的束縛
如果擷取中的「前 N 個」查詢針對排名中的特定位置組建重複值,則使用版本 10.5 或更新版本時,擺脫束縛的位置可能會有所不同。例如,假設您建立了一個 [前 3個] 篩選器。位置 3、4 和 5 具有相同的值。使用版本 10.4 和更早版本時,最前項篩選器可能會返回位置 1、2 和 3。但是,使用版本 10.5 或更新版本時,最前項篩選器可能會返回位置 1、2 和 5。
浮點值的精度
擷取能更好地利用電腦上的可用硬體資源,因此能夠以高度並行的方式執行數學運算。正因如此,.hyper 擷取的實數彙總順序可能會不同。採用不同方式對數位進行彙總後,每次計算彙總時您可能都會在檢視中的小數點後看到不同的值。這是因為浮點加法和乘法不一定遵循結合律。即,(a + b) + c 不一定與 a + (b + c) 相同。同樣,由於浮點乘法不一定遵循指派律,因此實數的彙總順序也可能不同。即,(a x b) x c 不一定與 a x b x c 相同。.hyper 擷取中這種類型的舍入行為類似於商業資料庫中的浮點舍入行為。
例如,假設您的工作簿在由浮點值組成的彙總欄位上包含滑塊篩選器。由於浮點值的精度已變更,因此篩選器可能會排除定義篩選器範圍上限或下限的標記。沒有這些數字可能會導致出現一個空白檢視。要解決此問題,請移動篩選器上的滑塊或刪除並再次新增篩選器。
彙總的準確性
擷取能更好地利用電腦上的可用硬體資源,針對大資料集進行了優化,因此能夠以高度並行的方式計算彙總。正因如此,.hyper 擷取執行的彙總可能與商業資料庫中的結果類似,而超過專業統計計算軟體中的結果。如果使用小資料集或者需要更高的準確性,請考慮透過輔助線、摘要卡統計或者像方差、標準差、關聯或協方差這樣的表計算函數來執行彙總。
關於擷取的 [立即運算計算] 選項
如果使用較早版本的 Tableau Desktop 在 .tde 擷取中使用了 [立即運算計算] 選項,則某些計算欄位已經實現並因此已提前計算並存儲在擷取中。如果將擷取從 .tde 擷取升級為 .hyper 擷取,則不會包括擷取中以前實現的計算。您必須再次使用 [立即運算計算] 選項,確保擷取在升級後包括已實現的計算。有關詳情,請參閱在擷取中實現計算。
新擷取 API
您可以使用 Extract API 2.0 建立 .hyper 擷取。對於以前使用 Tableau SDK 執行的任務(例如發佈擷取),您可以使用 Tableau Server REST API 或 Tableau Server 使用者端 (Python) 庫。對於重新整理工作,也可以使用 Tableau Server REST API。有關詳情,請參閱Tableau Hyper API。