现代分析时代真正开始于 QlikView 的发布以及它所构建的颠覆性关联引擎。Windows 版 Qlik Sense Enterprise,基于相同的技术构建,支持企业级的全方位分析用例。
Qlik Data Integration 通过自动化数据流 (CDC)、细化、编目和发布,使 DataOps 方法能够改善实时、分析就绪的数据的发现和可用性。
odags_
和
odagsn_
前缀用于优化查询。当绑定字段中没有选择时,
odag_
包含所有值,而
odags_
不包含值。在某些情况下,使用
odags_
和
odagscnt_
前缀更有效。这使您能够测试值集是否为空。例如,在
MyField
中未进行选择时,以下操作比在
odag_MyField
中测试所有值更有效:
WHERE ($(odagscnt_MyField)=0 OR MyColumn IN ($(odags_MyField)))
当并非按需字段的选择应用程序中有一个备选字段时,不能使用
odags_
。例如,如果用户在
CountryName
中进行选择,但绑定表达式在相关字段
CountryCode
上,则无法使用
odags_
。在这些情况下,可改为使用
odago_
。如果
odago_
绑定中没有值,则可能意味着要么应包含所有值,要么不应包含任何值。
在要绑定到 On-demand 应用程序的数据由数字(而非字符串)组成时,最好针对数值字段禁用加引号行为。例如,如果销售记录包括一个数值
DAY_OF_WEEK
列,您希望选择应用程序的用户选择
DAY_OF_WEEK
的任意组合,则可以增强用于加载选择应用程序的聚合查询,以便将
DAY_OF_WEEK
既包括在
SELECT
列表中又包括在
GROUP BY
列表中。如果在选择
DAY_OF_WEEK
值时在其两侧加引号,而且数据库不支持将字符串类型自动转换为数值,则可能会生成运行时查询错误。
要处理这种情况,可以使用绑定表达式后缀的数字版本。这将强制字段绑定使用选择应用程序中的数值,而不是字符串值。有以下数字版本可用:
odagn_
odagon_
odagsn_
通过使用数字版本,从存储选定值的双重值中的数字部分提取值,并且默认情况下这些值没有引号。
需要一定数量的选择项
在某些情况下,对于特定字段,可能必须要求 On-demand 应用程序查询中包含特定数量或特定范围的值。例如,如果 On-demand 应用程序的查询中包含
BETWEEN
子句(用来获取开始日期和结束日期之间的所有销售额),则
YEARQUARTER
字段的绑定表达式可以有一个后缀语法
[2]
,该语法将要求为
YEARQUARTER
正好选择两个值,如下所示:
$(odag_YEARQUARTER)[2]
选择应用程序上的 On-Demand 应用程序导航点将保持禁用状态,但前提是为
YEARQUARTER
选择的不是两个值。将显示一则消息来指示必须为
YEARQUARTER
正好选择两个值。
选择数量约束会在选择应用程序和 On-Demand 应用程序之间创建一个先决条件链接。这不同于未使用数量约束的绑定表达式。例如,当模板应用程序的脚本中包含绑定表达式而不包含数量约束(如下所示)时:
$(odag_MYFIELD)
既不要求选择应用程序包含名为
MYFIELD
的字段,又不要求为该字段选择任何值(如果该字段存在的话)。如果选择应用程序不包含名为
MYFIELD
的字段,或者用户只是忘了从中做出任何选择,则 On-Demand 应用程序导航点仍可以在为了满足记录限制值条件而进行其他选择时变成启用状态。
另一方面,如果绑定表达式为:
$(odag_MYFIELD)[1+]
现在会针对选择应用程序施加两个要求:
选择应用程序必须包含一个名为
MYFIELD
的字段。
用户必须至少为
MYFIELD
选择一个值。
在使用这种类型的绑定表达式时必须格外小心,因为它会限制哪些选择应用程序可以与模板应用程序一起使用。 您不应当在模板应用程序的绑定上使用该数量限制,除非您确定自己希望将该选择数量要求应用在和该模板应用程序关联的所有选择应用程序上。
为了执行数据绑定过程,On-Demand 应用程序服务使用对脚本中的注释不敏感的字符串替代方式。这意味着您不应在注释中使用绑定表达式,除非在应用程序生成后您希望这些注释包含绑定值列表。
可能会施加其他数量约束。下表概述了选择数量约束的不同组合。
选择项数量约束的不同组合
信息注释
在应用程序生成过程期间执行了检查,确定是否达到模板应用程序中的所有数量限制。如果不符合数量限制,生成该应用程序的请求将被拒绝,并显示错误信息。
将从选择应用程序选择的字段中的值列表插入到模板应用程序脚本中时,将使用单引号将值括起来并用逗号分隔。这些是引号和分隔符的默认字符。可在附加到每个字段的绑定语句的语法中更改这些值。例如:
$(odag_ORIGIN){"quote": "|", "delimiter": ";"}
然后,在构造来自选择应用程序的绑定值列表时,将使用这些新值。例如,如果所选值是一年的前三个月,则会将列表构造为:
|January|;|February|;|March|
引号字符和分隔符字符的默认值适用于大多数标准
SQL
数据库。但这些值可能不适用于某些
SQL
数据库,也不适用于许多动态数据源(例如,
NoSQL
和
REST
)。对于这些源,需要附加此绑定表达式以更改引号字符和分隔符字符。
下表概述了用于更改引号和分隔符字符的格式参数。
处理单独值
当需要单独处理字段值时,可以使用内联方法在变量
Values
中生成值,并使用
Replace
或其他函数执行任意处理。在下面的示例中,
Replace
结合占位符值使用。
MyTempBindingData:
LOAD * INLINE [VAL
$(odag_MyField){"quote": "", "delimiter": "\n"}
_TempTable:
LOAD Concat(chr(39) & Replace(text, from_str, to_str) & chr(39), ',') as CombinedData Resident MyTempBindingData;
LET Values = Peek('CombinedData',0,'_TempTable');
drop table _TempTable;
drop table MyTempBindingData;