使用 Direct Discovery时的限制

支持的数据类型

Direct Discovery支持所有数据类型,不过可能存在以下情况:需要对QlikView 定义特定源数据格式。为此,可在加载脚本中使用“SET Direct...Format”语法。以下示例展示了如何定义用作 Direct Discovery数据源的源数据库的数据格式:

示例:  

SET DirectDateFormat='YYYY-MM-DD';

还有两个脚本变量可控制 Direct Discovery如何在生成的 SQL 语句中设置货币类型值的格式:

SET DirectMoneyFormat (default '#.0000')
SET DirectMoneyDecimalSep (default '.')

这两个变量的语法与 MoneyFormatMoneyDecimalSep 的语法相同,但在应用中有两个重要的不同之处:

  • 由于不是显示格式,因此不应包含货币符号或千分位分隔符。
  • 默认值不是按场景变化的,而是硬连接到值的。(特定于场景的格式包括货币符号。)

Direct Discovery支持选择扩展 Unicode 数据,只需使用一些数据库(例如 SQL Server)所要求的扩展字符串文字 (N’<扩展字符串>’) 的SQL 标准格式。带有脚本变量 DirectUnicodeStringsDirect Discovery 可启用此语法。将该变量设置为 "true",可在字符串文字之前使用 "N"

安全性

在使用 Direct Discovery时,应考虑以下有关安全性的最佳做法:

  • 使用带有Direct Discovery功能的相同应用程序的所有用户均使用相同的连接。不支持传递和按用户使用凭据的身份验证。
  • 仅在服务器模式下支持区域权限。
  • 可以使用 NATIVE关键字表达式在数据库中执行自定义 SQL 语句,因此加载脚本中设置的数据库连接应使用以下帐户:对此数据库有只读访问权限的帐户。
  • Direct Discovery没有日志记录功能,但可以使用 ODBC 跟踪功能。
  • 可以使用客户端的请求注入数据库。
  • 可以从服务器日志文件中获取详细的错误消息。

不支持 QlikView功能

由于 Direct Discovery具有交互性和 SQL 语法特定特性,因此不支持多种功能:

  • 高级计算(集合分析、复杂表达式)
  • 计算维度
  • 在使用 Direct Discovery字段的对象上对比分析(替换状态)
  • 使用搜索功能时,Direct DiscoveryMEASUREDETAIL 字段不受支持。
  • 访问 Direct Discovery表格的应用程序中的二进制加载
  • 循环和减少
  • Direct Discovery表格的合成钥
  • 脚本中的表格命名方式不适用于 Direct Discovery表格
  • 在加载脚本中的 DIRECT QUERY关键字后使用通配符 * 字符 (DIRECT QUERY *)
  • 不支持带有 LONG数据类型列的 Oracle 数据库表格。
  • 科学记数法中超出 [-9007199254740990, 9007199254740991]范围的大整数会导致舍入错误和未定义行为。