Early Access: The content on this website is provided for informational purposes only in connection with pre-General Availability Qlik Products.
All content is subject to change and is provided without warranty.
跳到主要內容 跳至補充內容

瞭解和解決循環參照

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

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

含有循環參照的三個表格,因為兩個欄位之間有多個關聯路徑。

使用循環參照的三個表格。

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

範例:  

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

  • 幾支足球國家代表隊的隊名
  • 幾個城市中的足球俱樂部
  • 幾個歐洲國家的城市

Excel 中來源資料表格的檢視。

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. 按一下工具列中的 播放,重新載入應用程式中的資料。

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

Sheet with four tables.

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

Three tables with regular connections in the Data model viewer.

瞭解更多資訊

此頁面是否對您有幫助?

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