合成钥
在两个或更多数据表共有两个或更多字段时,Qlik Sense 会创建合成钥。这些关键字段是一种匿名字段,表示所有发生的复合关键字段的组合。
如果在加载数据时收到有关合成钥的警告,您应当在数据模型查看器中查看数据结构。您应自己想想数据模型是否正确。有时(大多数时候),由于脚本中的错误,会出现合成钥。
多个合成钥通常是数据模型不正确的症状。但是,如果您具有基于其他合成钥的合成钥,则肯定表明数据模型不正确。
警告注释当合成钥数量增加时(这取决于数据总数,表格结构和其他因素),Qlik Sense 可能会,也可能不会处理,并且最终可能会耗用过量的时间和/或内存。在此情况下,您需要通过删除所有合成钥来重新编写您的脚本。
处理合成钥
如果需要避免合成钥,有多种方法可在数据加载脚本中解决此问题。
-
确认仅使用逻辑上链接两个表格的字段作为关键字。
- 诸如“Comment”、“Remark”和“Description”等字段可能存在于多个表格,但不相关,因此不应用作关键字。
- “Date”、“Company”和“Name”等字段可能位于多个表格中并且具有相同值,但仍具有不同的角色(订单日期/发货日期、客户公司/供应商公司)。在此情况下,不应将它们用作关键字。
-
确保未使用冗余字段,即,确保仅必要的字段进行连接。如果数据被用作密钥,确保不加载多个内部表格的相同日期的 year,month 或 day_of_month。
-
如有必要,通常使用 AutoNumber 脚本函数中的字符串 concatenation 自行创建非复合关键字段。
相关学习: