跳到主要內容 跳至補充內容

瞭解和解決循環參照

如果資料結構中存在循環參照 (「迴圈」),這表示表格的關聯方式會讓兩個欄位之間有不只一個的關聯路徑。

應盡可能避免此類型的資料結構,因為可能會導致資料解譯上的語意模糊。

含有循環參照的三個表格,因為兩個欄位之間有多個關聯路徑。
Three tables with a circular reference.

Qlik Sense 解決循環參照問題的方法是以鬆耦合表格來斷開迴圈。當 Qlik Sense 執行載入指令碼時,若發現循環資料結構,就會顯示警告對話方塊,並將一或多個表格設為鬆耦合。Qlik Sense 一般會嘗試鬆開迴圈中最長的表格,因為這通常是交易表格,一般為應該鬆開的表格。在資料模型檢視器中,鬆耦合表格會以連到其他表格的紅色點狀連結來表示。

範例:  

資料從包含下列項目的三個表格載入:

  • 幾支足球國家代表隊的隊名
  • 幾個城市中的足球俱樂部
  • 幾個歐洲國家的城市
Excel 中來源資料表格的檢視。

Tables in Excel.

這個資料結構並不太完善,因為欄位名稱 Team 用於兩個不同的用途:國家代表隊和地方俱樂部。表格中的資料會造成不合理的邏輯情況。

將表格載入到 Qlik Sense 時,Qlik Sense 會決定哪些資料連線最不重要,並且將此表格鬆綁。

開啟資料模型檢視器以查看 Qlik Sense 如何解譯資料連線的關聯:

循環參照的檢視以紅色虛線註明。
Circular references between tables.

城市和其所屬國家的表格現在鬆耦合於不同國家代表隊的表格,並鬆耦合於不同城市之地方俱樂部的表格。

解決循環參照

循環參照發生時,您需要對於相同名稱的欄位指派一個唯一的名稱,以編輯資料載入指令碼。

  1. 開啟資料載入編輯器。
  2. 對於其中一個重複的欄位名稱,編輯 LOAD 陳述式。

    在此範例中,記錄地方俱樂部和所在城市之表格的 LOAD 陳述式會包含 Team 的新名稱,例如 LocalClub。更新的 LOAD 陳述式如下:

    LOAD City, Team as LocalClub

  1. 按一下工具列中的 Play,重新載入應用程式中的資料。

邏輯現在適用於所有的表格。在此範例中,選取 Germany 時,國家代表隊、德國的城市和各個城市中的地方俱樂部將相互產生關聯:

Sheet with four tables.

您開啟資料模型檢視器時,會看見鬆耦合連線已經取代成一般連線:

Three tables with regular connections in the Data model viewer.

瞭解更多資訊

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!