Учебники

QlikView — Циркуляр

Круговая ссылка возникает, когда мы можем перемещаться из одной таблицы в другую, используя два или более различных путей. Это означает, что вы можете соединить 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 и найдите файл ввода.

1_cr_load_script

Загрузка данных

После создания вышеуказанного скрипта мы загружаем данные в память QlikView с помощью команды Control + R. Это когда мы получаем сообщение об ошибке, в котором упоминается наличие циклического цикла в загружаемых таблицах.

2_warning

Модель данных

Чтобы найти точную причину вышеупомянутого предупреждения, мы можем взглянуть на модель данных, используя команду меню для просмотра таблицы — Control + T. Появится следующий экран, который четко показывает круговую ссылку. Здесь соединение между RegionCountry и SalesRegion может быть достигнуто напрямую с помощью поля Region . Этого также можно достичь, сначала перейдя к таблице ProductCountry, используя поле Country, а затем сопоставив ProdcutID с Salesregion.

3_cr_data_model

Разрешающая круговая ссылка

Приведенная выше циклическая ссылка может быть решена путем переименования некоторых столбцов в наборах данных, чтобы QlikView не формировал ассоциацию между таблицами автоматически, используя имена столбцов. Для этого мы переименуем столбец страны в RegionCountry в SalesCountry. В наборе данных ProdcuCountry мы переименовываем столбец Страна в ProductCountry.

4_cr_load_script_rectified

Модель исправленных данных

Исправленную модель данных после переименования столбца выше можно увидеть с помощью команды Control + T. Теперь мы можем видеть, что отношения между таблицами не образуют петли.

5_cr_data_model_rectified

Нажатие Control + R для перезагрузки данных больше не дает нам предупреждения, и мы можем использовать эти данные для создания отчетов.