合成钥

当两个或多个内部表格拥有两个或多个共同字段时,这意味着存在复合的关键字段关系。QlikView 通过自动创建合成钥来处理此问题。这些关键字段是一种匿名字段,表示所有发生的复合关键字段的组合。

如果在加载数据时收到有关合成钥的警告,建议您在表格查看器中查看数据结构。您应自己想想数据模型是否正确。有时(但并非总是),由于脚本中的错误,会出现合成钥。

多个合成钥通常是数据模型不正确的症状,但也不是绝对。但是,如果您具有基于其他合成钥的合成钥,则肯定表明数据模型不正确。

警告: 当合成钥数量增加时(这取决于数据总数,表格结构和其他因素),QlikView 可能会,也可能不会处理,并且最终可能会耗用过量的时间和/或内存。在此情况下,您需要通过删除所有合成钥来重新编写您的脚本。

处理合成钥

如果需要避免合成钥,有多种方法可在加载脚本中解决此问题:

  • 确认仅使用逻辑上链接两个表格的字段作为关键字。

    • 诸如“Comment”、“Remark”和“Description”等字段可能存在于多个表格,但不相关,因此不应用作关键字。
    • “Date”、“Company”和“Name”等字段可能位于多个表格中并且具有相同值,但仍具有不同的角色(订单日期/发货日期、客户公司/供应商公司)。在此情况下,不应将它们用作关键字。
  • 确保未使用冗余字段,即,确保仅必要的字段进行连接。如果数据被用作密钥,确保不加载多个内部表格的相同日期的 year,month 或 day_of_month。

  • 如有必要,通常使用 AutoNumber 脚本函数中的字符串 concatenation 自行创建非复合关键字段。