跳到主要内容 跳到补充内容

合成钥

在两个或更多数据表共有两个或更多字段时,Qlik Sense 会创建合成钥。这些关键字段是一种匿名字段,表示所有发生的复合关键字段的组合。

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

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

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

Three tables associated with a synthetic key.

处理合成钥

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

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

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

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

了解详情

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!