跳到主要内容
循环引用

在该页面上

循环引用

如果数据结构中存在循环引用(“循环”),则两个表格在关联时存在不止一条关联路径。

执行以下操作:

  1. Scripting Tutorial 应用程序中,打开数据加载编辑器
  2. 单击 P 以新增脚本段。
  3. 命名部分为 Region
  4. 在右菜单的 DataFiles 下,单击选择数据

  5. 上传然后选择 Region.txt。数据预览窗口打开。
  6. 选择所有字段并确保选中了字段名称下面的嵌入的字段名称以包含您加载数据时表格字段的名称。
  7. 单击插入脚本
  8. 单击加载数据
  9. 这次,您的数据加载似乎出现错误。已创建循环引用。数据加载进度窗口将显示错误信息,指出在加载时发现循环引用。但是,此加载已完成,并且此应用程序已保存。

  10. 打开数据模型查看器
  11. 您可以在四周拖动表格来重新安排表格,以便轻松查看表格之间的连接。

    显示循环引用的数据模型查看器
    Data model viewer showing circular reference.

    红色虚线表明已创建了循环引用。应尽可能避免此类数据结构,因为这可能会导致数据解释模糊不清。

解决循环引用

为了能够了解造成循环引用的原因,让我们进一步在数据模型查看器查看表格。

如果查看以上截屏中的表格 Table1 和表格 Table2,您将看到它们都具有字段 Date。您也可以看到 Table1Region 都具有字段 SalesKey。最后,请注意 RegionTable2 都具有字段 Week。这意味着,已经创建了一个循环,即循环引用。由于这可能导致以后的数据分析中出现问题,因此让我们来将其删除。

解决这一问题的最简单方法是重命名或删除其中一个字段。在我们的情况中,我们已加载了一些我们的应用程序所不需要的数据,并且我们可以将其删除。

执行以下操作:

  1. 打开数据加载编辑器
  2. 单击段 Region 并删除 LOAD 语句中的以下两行:
  3. "Week",

    SalesKey

  4. 请务必同时删除 "Region Code" 后面的逗号。
  5. 您的脚本现在应当如下:

    LOAD Region, "Region Code" FROM [lib://DataFiles/Region.txt] (txt, codepage is 28591, embedded labels, delimiter is '\t', msq);

  6. 单击加载数据
  7. 打开数据模型查看器
  8. 现在已经删除了对 Region 的不必要引用。

    现在已经删除了显示循环引用的数据模型查看器
    Data model viewer showing that circular reference has been removed.