提取数据
数据提取是与原始数据集分开保存的信息子集。它有两个目的:提高性能以及利用原始数据中可能不可用或不支持的 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 文件时,您将丢失此信息。如果您为数据提取使用逻辑表存储,您将看不到任何对原始物理表的引用。
如果您使用数据策略中的用户函数连接到虚拟连接,请不要使用数据提取
如果虚拟连接具有包含用户函数(链接在新窗口中打开)(例如,USERNAME()
)的数据策略,并且您从工作簿或数据源连接到它并在该处创建数据提取,则数据提取将仅包含与创建数据提取时的虚拟连接数据策略匹配的行。若要利用数据策略中包含用户函数的虚拟连接,请使用从工作簿或数据源到虚拟连接的实时连接,而不是数据提取。
从工作簿中移除数据提取
您可以随时移除数据提取,方法是在“数据”菜单中选择数据提取数据源,然后选择 。移除数据提取时,您可以选择“仅从工作簿中移除数据提取”或“移除并删除数据提取文件”。后一个选项将从硬盘中删除数据提取。
查看数据提取历史记录 (Tableau Desktop)
您可以查看上次更新数据提取的时间以及其他详细信息,方法是在“数据”菜单中选择数据源,然后选择 。
如果打开所保存的带有数据提取的工作簿,并且 Tableau 找不到此数据提取,则在出现提示时,请在“未找到数据提取”对话框中选择以下选项之一:
查找数据提取:如果数据提取存在,但不在 Tableau 最初保存它的位置中,请选择此选项。单击“确定”以打开“打开文件”对话框,您可以在其中指定数据提取文件的新位置。
删除数据提取:如果您没有对数据提取的进一步需求,请选择此选项。这相当于关闭数据源。将会删除引用数据源的所有已打开工作簿。
停用数据提取:使用从中创建数据提取的原始数据源,而不是数据提取。
重新生成数据提取:重新生成数据提取。会自动应用您在最初创建数据提取时指定的所有筛选器和其他自定义项。
数据提取疑难解答
创建数据提取花费很长时间:根据数据集的大小,创建提取数据可能需要较长时间。不过,在提取了数据并将其保存到计算机后,性能可能会提高。
未创建数据提取:如果数据集包含大量的列(例如,数千个列),则在某些情况下 Tableau 可能无法创建数据提取。如果遇到问题,请考虑提取较少的列或重新构建基础数据。
“保存”对话框未显示或未依据 .twbx 创建数据提取:如果按照上面的过程从打包工作簿中提取数据,“保存”对话框将不会显示。在依据打包工作簿 (.twbx) 创建数据提取时,数据提取文件会自动存储在与打包工作簿关联的文件包中。若要访问依据打包工作簿创建的数据提取文件,您必须将工作簿解包。有关详细信息,请参见打包工作簿。
数据提取功能更新
日期范围(子范围)
从版本 2024.2 开始,Tableau 添加了一项名为“子范围刷新”的新功能,用于增量刷新。此功能允许用户指定刷新数据提取的最小日期范围。例如,用户可以选择刷新自刷新日期起过去 14 天的数据。通过利用此功能,用户可以加快数据提取刷新速度并节省与不必要的完全数据提取相关的成本。
增量刷新
从版本 2024.1 开始,Tableau 引入了一项功能,使用户能够使用非唯一键列对数据提取执行增量刷新。有一个新的 UI 支持这些高级设置。
此更新在此过程中引入了一个额外步骤。在增量刷新期间,Tableau 首先从数据提取中移除与先前记录的最高值匹配的行。随后,Tableau 查询值高于或等于前一个最高值的所有行。此方法可确保所有已删除的行以及所有新添加的行都得到考虑。
Web 中的数据提取
从版本 2020.4 开始,数据提取可在 Web 制作和内容服务器中使用。现在,您不再必须使用 Tableau Desktop 来提取数据源。有关详细信息,请参见在 Web 上创建数据提取。
逻辑和物理表数据提取
随着 2020.2 版中 Tableau 数据模型中的逻辑表和物理表的引入,数据提取存储选项已从单个表和多个表更改为逻辑表和物理表。这些选项更好地描述了如何存储数据提取。有关详细信息,请参见提取数据。
弃用 .tde 格式
注意:从 2023 年 3 月开始,使用 .tde 格式的数据提取在 Tableau Cloud、Tableau Public 和 Tableau Server(版本 2023.1.0)中已弃用。版本 2024.2 是可以打开 .tde 格式文件的最后一个版本。有关详细信息,请参见数据提取升级为 .hyper 格式。
从版本 10.5 开始,当您创建数据提取时,它将使用 .hyper 格式。.hyper 格式的数据提取利用了改进的数据引擎,此引擎针对更大的数据集支持更快的分析和查询性能。
同样,使用版本 10.5 及更高版本对 .tde 数据提取执行数据提取相关任务时,数据提取会升级到 .hyper 数据提取。在 .tde 数据提取升级为 .hyper 数据提取后,它无法恢复为 .tde 数据提取。有关详细信息,请参见数据提取升级为 .hyper 格式。
视图中值和标记的变化
为了提高数据提取效率和可扩展性,可以在版本 10.5 及更高版本中以不同方式计算数据提取中的值(与版本 10.4 及更低版本相比)。更改计算值的方式可能会影响视图中标记的填充方式。在某些极少数的情况下,更改可能会导致视图形状发生变化或变为空白。这些更改可能也适用于多连接数据源、使用文件数据实时连接的数据源、连接到 Google 表格数据的数据源、基于云的数据源、纯数据提取数据源以及 WDC 数据源。
若要了解使用版本 2022.4 后您可能会在视图中看到的某些差异,请查看以下各部分。
日期和日期时间值的格式
在版本 10.5 中及更高版本中,数据提取将遵循关于如何通过 DATE、DATETIME 和 DATEPRASE 函数解释日期字符串的更加一致和严格的规则。这会影响日期的解析方式,或者这些函数所允许的日期格式和模式。更具体地说, 规则可以概括如下:
- 计算日期,然后按列进行分析,而不是按行进行分析。
- 计算日期,然后根据创建工作簿所在的位置的区域设置进行分析,而不是根据打开工作簿所在的计算机的区域设置进行分析。
这些新规则使数据提取更加高效,并能生成与商业数据库一致的结果。
但是,由于存在这些规则,特别是在创建工作簿时的区域设置与打开工作簿时的区域设置或工作簿所发布到的服务器的区域设置不同时,您可能会发现 1.) 日期和日期时间值更改为不同的日期和日期时间值,或者 2.) 日期和日期时间值更改为 Null。当日期和日期时间值更改为不同的日期和日期时间值或者变为 Null 时,通常表示基础数据存在问题。
为什么使用版本 10.5 和更高版本后您可能会在数据提取数据源中看到日期和日期时间值发生变化,以下是一些常见的原因。
日期/日期时间值发生变化的常见原因 | Null 值的常见原因 |
---|---|
|
|
日期方案 1
假设您有一个以英语区域设置创建的工作簿,该工作簿使用 .tde 数据提取数据源。下表显示了该数据提取数据源中包含的一个字符串数据列。
10/31/2018 |
31/10/2018 |
12/10/2018 |
根据特定的英语区域设置,我们可以确定日期列的格式遵循 MDY(月日年)格式。以下各表显示了当使用 DATE 函数将字符串值转换为日期值时 Tableau 基于此区域设置所显示的内容。
October 31, 2018 |
October 31, 2018 |
December 10, 2018 |
如果以德语区域设置打开该数据提取,您将看到以下内容:
31 Oktober 2018 |
31 Oktober 2018 |
12 Oktober 2018 |
但是,在使用版本 10.5 及更高版本以德语区域设置打开数据提取后,将会严格实施德语区域设置的 DMY(日月年)格式,并导致出现 Null 值,原因是其中一个值未遵循 DMY 格式。
Null |
October 31, 2018 |
October 12, 2018 |
日期方案 2
假设您有另一个以英语区域设置创建的工作簿,该工作簿使用 .tde 数据提取数据源。下表显示了该数据提取数据源中包含的数字日期数据列。
1112018 |
1212018 |
1312018 |
1412018 |
根据特定的英语区域设置,我们可以确定日期列的格式遵循 MDY(月日年)格式。当使用 DATE 函数将数字值转换为日期值时,以下各表展示了 Tableau 基于此区域设置所显示的内容。
11/1/2018 |
12/1/2018 |
Null |
Null |
日期方案 3
假设您有一个使用 .tde 数据提取数据源的工作簿。下表显示了该数据提取数据源中包含的一个字符串数据列。
2018-10-31 |
2018-31-10 |
2018/12/10 |
2018/10/12 |
由于日期使用 ISO 格式,因此日期列始终采用 YYYY-MM-DD 格式。以下各表显示了当使用 DATE 函数将字符串值转换为日期值时 Tableau 所显示的内容。
October 10, 2018 |
Null |
December 10, 2018 |
October 12, 2018 |
注意:在版本 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。