提高跨数据库联接的性能

重要信息:此功能会暂时将数据移动到 Tableau 之外。请确保您连接到的数据库来自受信任的源。

从 Tableau Desktop 和 Tableau Server 版本 2019.3 开始,通过允许 Tableau 使用连接到的数据库(而不是 Hyper)执行联接,您可以在联接来自单一文件连接和单一数据库连接的数据时提高性能。启用此选项时,Tableau 会选择最快的选项(Hyper 或连接的数据库)。如果 Tableau 使用连接的数据库,则会将来自文件连接的数据转移到数据库中的临时表,并在该处执行联接。

功能条件

此选项仅在满足以下条件时可用:

  • 数据源由一个或多个基于文件的连接和单个基于 SQL 的连接组成。
  • 文件是 Microsoft Excel、PDF 或文本(.csv、.txt、或 .tab)文件类型。
  • 连接的数据库是以下各项之一:
    • Microsoft SQL Server
    • Oracle
    • PostgreSQL
    • Vertica
    • Teradata
  • 联接类型为内部联接。
  • Web 制作过程中:“允许用户使用 Web 制作 ”选项已启用,

    站点管理员还可通过在 Tableau Server 中的“设置”>“常规”选项卡上设置“跨数据库联接”选项来配置用户可用的选项。有关这些设置的详细信息,请参见 Tableau Server 帮助中的设置站点的 Web 制作访问权限(链接在新窗口中打开)

覆盖功能条件

从版本 2020.3 开始,作为管理员,您可以覆盖文件大小、联接类型和单个文件连接限制,并强制 Tableau 使用实时数据库连接来执行联接。这使您能够试验和确定最佳性能配置。单个数据库连接要求仍然适用。

若要启用此选项,请通过命令行输入以下信息:

  • Tableau Desktop:输入命令 tableau.exe -DForceAlternativeFederationEngine=true
  • Tableau Server:输入 tsm 配置命令 tsm configuration set -k native_api.force_alternative_federation_engine -v true

    有关在 Tableau Server 中设置配置值的详细信息,请参见 Tableau Server 帮助中的 tsm configuration set 选项(链接在新窗口中打开)

为跨数据库联接启用性能选项

  1. Tableau Desktop 中:在开始页面上的“连接”下,连接到支持的文件类型或支持的数据库类型。此步骤会在 Tableau 数据源中创建第一个连接。

    在 Web 制作过程中:“主页” “浏览”页面中,单击“创建”>“工作簿”新建一个工作簿。然后连接到数据。此步骤会在 Tableau 数据源中创建第一个连接。

  2. 选择要连接到的文件或数据库,然后双击表或将表拖到画布上。

  3. 在左侧窗格中的“连接”下,单击“添加”按钮(在 Web 制作中为 )以将第二个连接添加到 Tableau 数据源。

    将显示“跨数据库联接”选项。

    注意:如果未看到此选项,请检查您是否仅使用支持的数据源,并且您只有两个数据源(一个文件和一种数据库类型)。否则,站点管理员可能已将“跨数据库联接”配置选项设置为“仅 Tableau”

  4. 若要更改 Tableau 执行联接的方式,请在“跨数据库联接”选项旁边单击“编辑”
  5. “跨数据库联接”对话框中,选择以下选项之一,然后单击“确定”

    • 使用 Tableau 或现有数据库。此选项允许 Tableau 选择最快的选项来执行联接 - Hyper 或您连接到的数据库。

    • 仅使用 Tableau。此选项是默认选项,并始终使用 Hyper 来执行联接。

      “跨数据库联接”选项从默认选项“使用 Tableau”(使用 Hyper)更改为新选项“使用数据库”,具体取决于您选择的内容。

      重要信息:如果选择“使用 Tableau 或现有数据库”,Tableau 将在执行联接时选择最快的选项。此行为由一组条件(包括联接类型)预先确定。例如,Tableau 将始终为非内部联接选择“Hyper”。

      如果 Tableau 使用 Hyper 来执行联接,则此过程将在后台进行,并且不会显示任何指示器来确定联接在何处执行。

  6. 通过从数据源中使用的可用表之一中选择字段、选择联接运算符并从添加的表中选择字段来添加一个或多个联接子句。检查联接子句以确保它反映您要连接表的方式。

关于使用多连接数据源

使用多连接数据源就像使用任何其他数据源一样,本部分中讨论了一些警告。

合并连接内的数据

若要合并数据,您必须使用同一连接中的文本表或 Excel 表。即,您不能合并不同数据库中的表。在 Tableau Desktop 中,您可以合并不同 Excel 工作簿中的表以及不同文件夹中的文件。有关详细信息,请参见使用通配符搜索来合并表 (Tableau Desktop)

如果需要合并来自不同数据库的数据,请使用 Tableau Prep(链接在新窗口中打开)

计算

排序规则是指确定字符串值应如何进行比较和排序的数据库规则。在大多数情况下,排序规则由数据库进行处理。然而,当使用跨数据库联接时,您可能会联接具有不同排序规则的列。

例如,假设您的跨数据库联接使用联接键,该联接键由 SQL Server 中区分大小写的列和 Oracle 中不区分大小写的列组成。在这种情况下,Tableau 会将某些排序规则映射到其他项,以尽量正确解释值。

跨数据库联接中使用以下规则:

  • 如果某一列使用 Unicode 国际化组件 (ICU) 排序规则标准,则 Tableau 会使用其他列的排序规则。

  • 如果所有列都使用 ICU 排序规则标准,则 Tableau 会使用左表的列的排序规则。

  • 如果列不使用 ICU 排序规则标准,则 Tableau 会使用二进制排序规则。二进制排序规则是指数据库的区域设置和列的数据类型,用于确定字符串值应如何进行比较和排序。

处理 Microsoft Excel 数据时,如果在执行联接时需要保持数据的大小写(例如,区分假名的日语数据),您可以从“数据”菜单中启用“保持字符大小写(Excel)”选项。

如果选择此选项,Tableau 将保持来自 Excel 数据源的值的大小写,并唯一标识具有不同大小写的值(而不是将这些值合并),从而产生不同的行数。

例如,有一个工作表包含值“House”,另一个工作表包含值“House”、“house”和“houSe”。默认情况下,当您联接这两个表时,Tableau 会忽略第二个工作表中的字符大小写差异,并将第二个工作表中的“House”、“house”和“houSe”与第一个工作表中的“House”联接。

如果启用了“保持字符大小写(Excel)”选项,当您联接表时,Tableau 可识别字符大小写差异。联接结果显示的结果较少,因为联接只会将第一个工作表中的“House”与第二个工作表中的值“House”匹配,并将“house”和“houSe”作为唯一的单独值读取。

注意:此选项适用于所有 Tableau 支持的语言,并且不依赖于操作系统的区域设置。此选项仅可用于 Microsoft Excel 数据源。

计算和多连接数据源

在多连接数据源中只能使用一部分计算。

在 Tableau Desktop 中:您可以使用特定计算,条件是:

  • 多连接数据源中的所有连接都支持

  • Tableau 数据提取支持。

在 Web 制作(Tableau Online 和 Tableau Server)中:如果多连接数据源中的所有连接都支持,您可以使用特定计算。

存储过程

存储过程不可用于多连接数据源。

从连接内对数据进行透视

若要对数据进行透视,您必须使用同一连接中的文本列或 Excel 列。即,您不能在透视中包括不同数据库中的列。

使数据提取文件成为第一个连接(仅限 Tableau Desktop)

连接到多连接数据源中的数据提取文件时,请确保与数据提取(.tde 或 .hyper)文件的连接是第一个连接。这样会保留可能属于数据提取的任何自定义项,包括默认属性更改、计算字段、组、别名等。

注意: 如果需要连接到多连接数据源中的多个数据提取文件,则只会保留第一个连接的数据提取中的自定义项。

包含基于文件的数据连接的多连接数据源的数据提取(仅限 Tableau Desktop)

如果要发布的多连接数据源的数据提取包含基于文件的数据(如 Excel 数据)连接,则选择“包括外部文件”选项会将基于文件的数据副本作为数据源的一部分放在服务器上。在这种情况下,可以下载基于文件的数据的副本,并且其他用户可以访问其内容。如果您有意从数据提取中排除的基于文件的数据中存在敏感信息,请勿在发布数据源时选择“包括外部文件”

有关发布数据源的详细信息,请参见发布数据源

关于查询和跨数据库联接

对于每个连接,Tableau 会向联接中的数据库发送独立查询。结果存储在一个临时表中,采用数据提取文件格式。

例如,假设您创建与两个表(dbo.listings 和 reviews$)的连接。这些表存储在两个不同的数据库(SQL Server 和 Excel)中。Tableau 会在每个连接中单独查询数据库。数据库执行查询,并应用诸如筛选器和计算等自定义项,Tableau 将每个连接的结果存储在一个临时表中。在此示例中,FQ_Temp_1 是与 SQL Server 的连接的临时表,FQ_Temp_2 是与 Excel 的连接的临时表。

SQL Server 表

Excel 表

当您执行跨数据库联接时,Tableau Desktop 会将这些临时表联接在一起。这些临时表是 Tableau 执行跨数据库联接所必需的。

联接了这些表之后,topn”筛选器,以将数据网格中显示的值数限制为前 1000 行。应用此筛选器是为了帮助保持数据网格的响应性以及“数据源”页面的整体性能。

联接的表

感谢您的反馈!