Direct Discovery 变量
Direct Discovery 系统变量
您可以为 Direct Discovery 可视化查询结果设置缓存限制。在达到此时间限制后,Qlik Sense 会在执行新的 Direct Discovery 查询时清除缓存。Qlik Sense 将查询选择项的源数据并将为指定的时间限制再次创建缓存。对于各选择项组合,将独立缓存其结果。即为每个选择项独立刷新缓存,对于一个选择项,仅对所选字段刷新缓存,对于另一个选择项,对其相关字段刷新缓存。如果第二个选择项包含在第一个选择项中刷新的字段,则在尚未达到缓存限制的情况下不会在缓存中再次更新这些字段。
Direct Discovery 缓存不适用于表格可视化。对于表格选择项,每次都会查询数据源。
限值设置必须使用秒为单位。默认缓存限制是 1800 秒(30 分)。
用于 DirectCacheSeconds 的值是在执行 DIRECT QUERY 语句时设置的值。在运行时不能更改此值。
示例:
您可使用连接池功能进行数据库异步、并行调用。设置连接池功能的加载脚本语法如下所示:
数字设置指定更新表格时 Direct Discovery 代码应使用的最大数据库连接数量。默认设置为 1。
Direct Discovery 可以通过使用一些数据库(尤其是 SQL Server)所要求的扩展字符串文字 (N’<扩展字符串>’) 的 SQL 标准格式来支持扩展 Unicode 数据的选择。带有脚本变量 DirectUnicodeStrings 的 Direct Discovery 允许使用这种语法。
将该变量设置为“真”将允许在字符串文字之前使用 ANSI 标宽字符标记“N”。并非所有数据库都支持此标准。默认设置为“假”。
如果在 Qlik Sense 对象中选择 DIMENSION 字段值,则会为源数据库生成查询。当查询要求分组时,Direct Discovery 会使用 DISTINCT 关键字仅选择唯一的值。但是,某些数据库要求使用 GROUP BY 关键字。将 DirectDistinctSupport 设置为 'false' 会在唯一值的查询中生成 GROUP BY,而非 DISTINCT。
如果将 DirectDistinctSupport 设置为“真”,则使用 DISTINCT。否则,默认行为是使用 DISTINCT。
在高基数多表格情形中,可能会在 SQL 查询中生成子查询,而不是生成很大的 IN 子句。这可以通过将 DirectEnableSubquery 设置为 'true' 来激活。默认值为 'false'。
Teradata 查询分级变量
Teradata 查询分级是一个函数,可让企业应用程序与基础 Teradata 数据库一起协作,以便提供更好的会计、确定优先顺序和工作量管理。使用查询分级,可以围绕查询限制元数据,例如用户凭据。
两个变量都可用,都是发送到数据库的评估字符串。
在创建数据库连接时,发送此字符串。
例如,如果 OSuser() 返回 WA\sbt,将针对 SET QUERY_BAND = 'Who=WA\sbt;' FOR SESSION; 评估此结果,此字符串会在创建连接时发送到数据库。
每一次查询都发送此字符串。
Direct Discovery 字符变量
您可以在 Direct Query 数据库语句中将使用的字符设置为字段分隔符,字段分隔符必须是非逗号字符。在 SET 语句中,必须对指定字符使用单引号。
可以指定要在生成的查询中用于引用字符串的字符。默认值是单引号。在 SET 语句中,必须对指定字符使用单引号。
可以指定在生成的查询中使用的非 ANSI 引用的标识符。此时,唯一可用的非ANSI 引用是 GoogleBQ。默认值为 ANSI。可以使用大写、小写和混合大小写格式 (ANSI, ansi, Ansi)。
例如,在以下 SELECT 语句中使用 ANSI 引用:
当 DirectIdentifierQuoteStyle 设置为 "GoogleBQ" 时,SELECT 语句将使用如下引用:
可以指定要在生成的查询中控制标识符引用的字符。此字符可以设置为一个字符(例如双引号)或两个字符(例如方括号对)。默认值是双引号。
在表格可视化中使用 Direct Discovery 字段时,可设置阈值来限制显示的行数。默认阈值为 1000 个记录。默认阈值设置可以更改,只需在加载脚本中设置 DirectTableBoxListThreshold 变量。例如:
阈值设置仅适用于包含 Direct Discovery 字段的表格可视化。仅包含内存中字段的表格可视化不受 DirectTableBoxListThreshold 设置限制。
在选择项的记录少于阈值限制之前,不会在表格可视化中显示任何字段。
Direct Discovery 数字解释变量
定义的小数位分隔符会替代使用 Direct Discovery 加载数据生成的 SQL 语句中的货币小数位符号。此字符必须与 DirectMoneyFormat 中使用的字符一致。
默认值为 '.'
示例:
定义的符号会替代使用 Direct Discovery 加载数据生成的 SQL 语句中的货币格式。不应包含千分位分隔符的货币符号。
默认值为 '#.0000'
示例:
定义的时间格式会替代使用 Direct Discovery 加载数据生成的 SQL 语句中的时间格式。
示例:
定义的日期格式会替代使用 Direct Discovery 加载数据生成的 SQL 语句中的日期格式。
示例:
Set DirectDateFormat='MM/DD/YYYY';
定义的格式会替代使用 Direct Discovery 加载数据生成的 SQL 语句中的日期和时间格式。
示例:
Set DirectTimestampFormat='M/D/YY hh:mm:ss[.fff]';