使用 Direct Discovery 时的限制

支持的数据类型

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

Example:  

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 跟踪功能。
  • 可以使用客户端的请求注入数据库。
  • 可以从服务器日志文件中获取详细的错误信息。

不支持 Qlik Sense 功能

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

  • 高级计算(集合分析、复杂表达式)
  • 计算维度
  • 对比分析使用 Direct Discovery 字段的对象(替换状态)
  • 智能搜索中不支持 Direct DiscoveryMEASUREDETAIL 字段。
  • 搜索 Direct Discovery  DETAIL 字段
  • 访问 Direct Discovery 表格的应用程序中的二进制加载。
  • Direct Discovery 表格的合成钥
  • 脚本中的表格命名方式不适用于 Direct Discovery 表格。
  • 在加载脚本中的 DIRECT QUERY 关键字后使用通配符 * 字符

    Example: (DIRECT QUERY *)

  • Oracle 数据库表格包括 LONG 数据类型列。
  • 科学记数法中超出 [-9007199254740990, 9007199254740991] 范围的大整数。这些大整数可能会导致舍入错误和未定义行为。
  • Snowflake 数据库模式
  • 数据管理器中的数据准备
  • Qlik Cloud 不受支持。
  • 导出至 Microsoft Excel
  • 不支持离线移动 ios 应用程序。
  • 不支持高级分析集成。
  • 不支持扩展和小组件。
  • 不支持Qlik GeoAnalytics。
  • 将颜色分配至主尺寸并且不支持度量。
  • 不支持包括在 Qlik Sense 2017 年 6 月版及更高版本中的新可视化:
    • 框图
    • 分布图
    • 条形图
  • 非 SQL 源以及非 SQL 语句(例如 SAP HANA 中的 PLACEHOLDER 函数)。
  • 以下连接器不受支持:
    • Qlik Salesforce 连接器
    • Qlik REST 连接器
    • Qlik DataMarket 连接器
    • Qlik Web 连接器
    • 结合 SAP NetWeaver 使用的 Qlik 连接器
  • 优化通过 Direct Discovery 查询生成的 SQL。
  • 高基数联接组合内存中表格可生成超出数据源 SQL 缓冲区限制的大型 IN 子句。