可在 Tableau 数据源自定义 (TDC) 文件中设置以下功能自定义项,来定义 JDBC 连接支持的 Tableau 功能。

其中许多自定义项会影响 Tableau 发出的 SQL 查询的类型。对于未定义的设置,Tableau 将尝试通过发出各种形式的 SQL 查询来试验性地验证哪些形式受支持,从而确定每个功能的适当值。

CAP_CREATE_TEMP_TABLES 如果 Tableau 可以创建某些复杂或优化的查询所需的临时表,则设置为“yes”。另请参见:CAP_SELECT_INTO。
CAP_CONNECT_STORED_PROCEDURE 设置为“yes”以允许对连接到存储过程的支持。
CAP_FAST_METADATA 如果有小型到中型的架构,请设置为“yes”。此功能控制 Tableau 在您连接时是否应立即枚举所有对象。将值设置为“yes”启用此功能,以便在创建新连接时改善性能。禁用此功能以允许搜索特定的架构或表格,而不是检索所有对象。可以通过使用空白字符串来搜索所有对象。9.0 及更高版本中提供了此功能。
CAP_ISOLATION_LEVEL_READ_COMMITTED 如果数据源支持,则设置为“yes”以强制事务隔离级别为 Read Committed。应只将 4 个事务隔离级别中的一个设置为“yes”。另请参见:CAP_SET_ISOLATION_LEVEL_VIA_SQL。
CAP_ISOLATION_LEVEL_READ_UNCOMMITTED 如果数据源支持,则设置为“yes”以强制事务隔离级别为 Read Uncommitted。应只将 4 个事务隔离级别中的一个设置为“yes”。此功能可以通过减少锁争用来提高速度,但可能会导致查询结果中的数据不完整或不一致。另请参见:CAP_SET_ISOLATION_LEVEL_VIA_SQL。
CAP_ISOLATION_LEVEL_REPEATABLE_READS 如果数据源支持,则设置为“yes”以强制事务隔离级别为 Repeatable Reads。应只将 4 个事务隔离级别中的一个设置为“yes”。另请参见:CAP_SET_ISOLATION_LEVEL_VIA_SQL。
CAP_ISOLATION_LEVEL_SERIALIZABLE 如果数据源支持,则设置为“yes”以强制事务隔离级别为 Serializable。应只将 4 个事务隔离级别中的一个设置为“yes”。这是一个非常保守的设置,它可以提高稳定性,但会降低性能。另请参见:CAP_SET_ISOLATION_LEVEL_VIA_SQL。
CAP_JDBC_BIND_DETECT_ALIAS_CASE_FOLDING 设置为“yes”以允许 Tableau 检测在结果集中报告仅使用大写或小写字符的字段名称而非预期字段名称的 JDBC 数据源并从该数据库源恢复。
CAP_JDBC_EXPORT_DATA_BATCH 设置为“no”以禁止使用 ODBC 批量操作进行数据插入。
CAP_JDBC_METADATA_GET_INDEX_INFO 设置为“no”以禁止读取索引信息。
CAP_JDBC_METADATA_READ_FOREIGNKEYS 设置为“no”以禁止读取外键元数据。
CAP_JDBC_METADATA_READ_PRIMARYKEYS 设置为“no”以禁止读取主键元数据。
CAP_JDBC_METADATA_USE_RESULTSET_FOR_TABLE 设置为“yes”以从 select * 查询的结果集中获取列元数据。在 Tableau 2020.4 及更高版本中可用。
CAP_JDBC_QUERY_ASYNC 设置为“yes”以在另一个线程上运行查询。
CAP_JDBC_QUERY_CANCEL 如果驱动程序可以取消查询,则设置为“yes”。
CAP_JDBC_QUERY_DISABLE_AUTO_COMMIT 设置为“yes”以在运行查询时禁用默认的自动提交模式。在 Tableau 2020.4 及更高版本中可用。
CAP_JDBC_QUERY_FORCE_PREPARE 设置为“yes”以始终在执行前准备查询。在 Tableau 2020.4 及更高版本中可用。
CAP_JDBC_SUPPRESS_EMPTY_CATALOG_NAME 设置为“yes”以忽略缺失的目录。
CAP_JDBC_SUPPRESS_ENUMERATE_DATABASES 设置为“yes”以禁用数据库枚举。
CAP_JDBC_SUPPRESS_ENUMERATE_SCHEMAS 设置为“yes”以禁用架构枚举。
CAP_JDBC_METADATA_SUPPRESS_PREPARED_QUERY 如果 CAP_JDBC_METADATA_USE_RESULTSET_FOR_TABLE 已启用,则将此功能设置为“yes”以禁用准备用于读取表元数据的查询。我们将执行用 where-false 子句封装的查询。
CAP_JDBC_USE_ADAPTIVE_FETCH_SIZE 设置为“yes”以使用 ResultSet 元数据来确定最佳提取大小。可能需要启用 CAP_JDBC_QUERY_FORCE_PREPARE 才能正常工作。在 Tableau 2020.4 及更高版本中可用。
CAP_MULTIPLE_CONNECTIONS_FROM_SAME_IP 设置为“no”以阻止 Tableau 创建到数据库的多个活动连接。这是一个保守的设置,它可以提高稳定性,但会降低性能。
CAP_QUERY_BOOLEXPR_TO_INTEXPR 如果 Tableau 必须将任何布尔表达式强制转换为整数值才能包括在结果集中,则设置为“yes”。
CAP_QUERY_FROM_REQUIRES_ALIAS 如果 FROM 子句必须为给定表提供别名,则设置为“yes”。
CAP_QUERY_GROUP_ALLOW_DUPLICATES 如果 SQL 查询无法在 GROUP BY 子句中包含重复的表达式(这很罕见),则设置为“no”。
CAP_QUERY_GROUP_BY_ALIAS 如果 SQL 聚合查询可以通过 SELECT 列表中的相应别名引用组合列(例如 GROUP BY "none_ShipCountry_nk"。
CAP_QUERY_GROUP_BY_DEGREE 如果 SQL 聚合查询可以通过每个列的序号位置引用组合列(例如 GROUP BY 2, 5),则设置为“yes”。另请参见:CAP_QUERY_SORT_BY_DEGREE
CAP_QUERY_HAVING_REQUIRES_GROUP_BY 如果 Tableau 必须对具有 HAVING 子句但没有组合列的任何查询使用假分组字段,则设置为“yes”。
CAP_QUERY_HAVING_UNSUPPORTED 如果不支持 HAVING 的 SQL 语法,则设置为“yes”。Tableau 或许可以使用子查询解决此问题。另请参见:CAP_QUERY_SUBQUERIES。
CAP_QUERY_INCLUDE_GROUP_BY_COLUMNS_IN_SELECT 设置为“yes”以要求所有 GROUP BY 表达式还显示在 SELECT 表达式列表中。
CAP_QUERY_JOIN_ACROSS_SCHEMAS 如果 SQL 查询可以表示位于不同架构中的表之间的联接,则设置为“yes”。
CAP_QUERY_JOIN_ASSUME_CONSTRAINED 设置为“yes”以便即使在数据库表没有 FK-PK 关系的情况下也剔除内部联接。
CAP_QUERY_JOIN_PUSH_DOWN_CONDITION_EXPRESSIONS 设置为“yes”以便重写联接将 ON 子句条件简化为简单的标识符比较。
CAP_QUERY_JOIN_REQUIRES_SCOPE 如果 SQL 查询必须将每个联接子句用括号括起来以确保正确的计算顺序,则设置为“yes”。
CAP_QUERY_JOIN_REQUIRES_SUBQUERY 设置为“yes”以强制包括超过两个表的联接表达式由子查询构成。
CAP_QUERY_NULL_REQUIRES_CAST 如果数据源要求将所有 NULL 文本转换为显式数据类型,则设置为“yes”。
CAP_QUERY_SELECT_ALIASES_SORTED 如果 Tableau 必须对 SELECT 表达式施加确定顺序(按别名排序)以确保查询结果可以正确地与 Tableau 可视化项中的每个字段匹配,则设置为“yes”。只有随查询结果返回元数据时没有保留 SELECT 表达式的别名的数据源,才必须这么做。
CAP_QUERY_SORT_BY_DEGREE 如果 SQL 查询可以通过每个列的序号位置引用排序列(例如 ORDER BY 2, 5),则设置为“yes”。另请参见:CAP_QUERY_GROUP_BY_DEGREE。
CAP_QUERY_SUBQUERIES 如果数据源支持子查询,则设置为“yes”。
CAP_QUERY_SUBQUERIES_WITH_TOP 如果数据源支持子查询中的 TOP 或 LIMIT 行限制子句,则设置为“yes”。
CAP_QUERY_SUBQUERY_DATASOURCE_CONTEXT 设置为“yes”以使用子查询筛选的查询上下文来实施数据源筛选器。仅 Tableau 8.0 至 Tableau 9.3 中提供了此功能。
CAP_QUERY_SUBQUERY_QUERY_CONTEXT 设置为“yes”以强制 Tableau 使用上下文筛选器的子查询而非临时表或本地缓存的结果。
CAP_QUERY_TOP_N 如果数据源支持任何形式的行限制子句,则设置为“yes”。下面介绍了受支持的确切形式。
CAP_QUERY_TOPSTYLE_LIMIT 如果数据源使用 LIMIT 作为行限制子句,则设置为“yes”。
CAP_QUERY_TOPSTYLE_ROWNUM 如果数据源支持 ROWNUM 上的 Oracle 样式的筛选器作为行限制子句,则设置为“yes”。
CAP_QUERY_TOPSTYLE_TOP 如果数据源使用 TOP 作为行限制子句,则设置为“yes”。
CAP_QUERY_USE_QUERY_FUSION 设置为“no”以防止 Tableau 将多个单独的查询合并为一个合并的查询。为了优化性能,或者,如果数据库无法处理大型查询,请关闭此功能。此功能默认情况下已启用,并且在 Tableau 9.0 及更高版本中可用于除 Tableau 数据提取外的所有数据源。Tableau 9.0.6 中支持为 Tableau 数据提取使用此功能。
CAP_SELECT_INTO 如果 Tableau 可以从其他查询的结果集动态创建表,则设置为“yes”。另请参见:CAP_CREATE_TEMP_TABLES。
CAP_SELECT_TOP_INTO 如果 Tableau 在从查询结果集创建表时可以使用 TOP 或 LIMIT 行限制子句,则设置为“yes”。
CAP_SET_ISOLATION_LEVEL_VIA_SQL 设置为“yes”以强制 Tableau 使用 SQL 查询为数据源设置事务隔离级别。当 4 个 CAP_ISOLATION_LEVEL 功能中的任一个设置为“yes”时,CAP_SET_ISOLATION_LEVEL_VIA_SQL 必须设置为“yes”。
CAP_STORED_PROCEDURE_PREFER_TEMP_TABLE 设置为“yes”以使用临时表来支持存储过程结果集上的远程查询。
CAP_STORED_PROCEDURE_REPAIR_TEMP_TABLE_STRINGS 设置为“yes”以在元数据指明无宽度或非正宽度的情况下尝试计算实际字符串宽度。
CAP_STORED_PROCEDURE_TEMP_TABLE_FROM_BUFFER 设置为“yes”以通过整体缓冲的结果集填充临时表。
CAP_STORED_PROCEDURE_TEMP_TABLE_FROM_NEW_PROTOCOL 设置为“yes”以通过仅为此操作创建的单独协议填充临时表。
CAP_SUPPRESS_DISCOVERY_QUERIES 设置为“yes”以阻止 Tableau 检测各种子句的受支持的 SQL 语法。
CAP_SUPPRESS_DISPLAY_LIMITATIONS 设置为“yes”以抑制显示有关此数据源的限制的任何警告。

另请参见

其他数据库 (JDBC) – 描述如何使用其他数据库 (JDBC) 连接器连接到数据。

感谢您的反馈!