Круговая ссылка возникает, когда мы можем перемещаться из одной таблицы в другую, используя два или более различных путей. Это означает, что вы можете соединить Table1 с Table2 напрямую, используя столбец, или вы также можете сначала объединить Table1 с Table3, а затем table3 с Table2. Это может привести к неверному результату в выводе, сформированном моделью данных, которая загружает все эти три таблицы. QlikView предотвращает загрузку таких данных в его память, как только он распознает циклическую ссылку.
Входные данные
Давайте рассмотрим следующие три файла данных CSV, которые используются в качестве входных данных для дальнейших иллюстраций.
SalesCountries: ProductID,ProductCategory,Country,SaleAmount 1,Outdoor Recreation,Italy,4579 2,Clothing,USA,4125 3,Costumes & Accessories,South Korea,6521 4,Athletics,Japan,4125 5,Personal Care,Brazil,5124 6,Arts & Entertainment,China,1245 7,Hardware,South America,456 8,Home & Garden,Peru,241 9,Food,India,1247 10,Home & Garden,Singapore,5462 11,Office Supplies,Hungary,577 ProductCountry: ProductID, Country 3,Brazil 3,China 2,Korea 1,USA 2,Singapore 7,Sri Lanka 1,Italy
Загрузить скрипт
Мы загружаем вышеуказанные входные данные с помощью редактора сценариев, который вызывается нажатием Control + E. Выберите опцию Table Files и найдите файл ввода.
Загрузка данных
После создания вышеуказанного скрипта мы загружаем данные в память QlikView с помощью команды Control + R. Это когда мы получаем сообщение об ошибке, в котором упоминается наличие циклического цикла в загружаемых таблицах.
Модель данных
Чтобы найти точную причину вышеупомянутого предупреждения, мы можем взглянуть на модель данных, используя команду меню для просмотра таблицы — Control + T. Появится следующий экран, который четко показывает круговую ссылку. Здесь соединение между RegionCountry и SalesRegion может быть достигнуто напрямую с помощью поля Region . Этого также можно достичь, сначала перейдя к таблице ProductCountry, используя поле Country, а затем сопоставив ProdcutID с Salesregion.
Разрешающая круговая ссылка
Приведенная выше циклическая ссылка может быть решена путем переименования некоторых столбцов в наборах данных, чтобы QlikView не формировал ассоциацию между таблицами автоматически, используя имена столбцов. Для этого мы переименуем столбец страны в RegionCountry в SalesCountry. В наборе данных ProdcuCountry мы переименовываем столбец Страна в ProductCountry.
Модель исправленных данных
Исправленную модель данных после переименования столбца выше можно увидеть с помощью команды Control + T. Теперь мы можем видеть, что отношения между таблицами не образуют петли.
Нажатие Control + R для перезагрузки данных больше не дает нам предупреждения, и мы можем использовать эти данные для создания отчетов.