Представление о циклических ссылках и их исправление
Если циклические ссылки («циклы») присутствуют в структуре данных, таблицы будут связаны таким образом, чтобы существовало более одного пути связей между двумя полями.
Подобного типа структуры данных следует избегать, поскольку его использование может привести к неоднозначности интерпретации данных.
В программе Qlik Sense можно решить проблему циклических ссылок путем нарушения цикла с помощью слабосвязанной таблицы. Когда в программе Qlik Sense в ходе выполнения скрипта загрузки будут обнаружены циклические структуры данных, на экране отобразится предупреждение, и одна или несколько таблиц будут установлены в качестве слабосвязанных. Обычно в программе Qlik Sense предпринимается попытка сделать слабосвязанной наиболее длинную таблицу в цикле, поскольку она часто является таблицей транзакций, которая обычно и должна быть слабосвязанной. В просмотре модели данных слабосвязанные таблицы указаны красными пунктирными линиями, ведущими к другим таблицам.
Пример:
Данные загружаются из трех таблиц, включающих следующую информацию:
- Названия некоторых национальных футбольных команд
- Футбольные клубы в некоторых городах
- Города некоторых европейских стран
Эта структура данных неудовлетворительна, поскольку имя поля Team используется и для национальных команд, и для местных клубов. Данные в таблицах формируют невозможную логическую ситуацию.
При загрузке таблиц в Qlik Sense программа Qlik Sense определяет, какие подключения к данным наименее важны, а затем соответствующая таблица преобразуется в слабосвязанную.
Откройте параметр Просмотр модели данных для просмотра способа интерпретации значимости подключений к данным в программе Qlik Sense:
Таблица, включающая названия городов и стран, к которым они относятся, теперь является слабосвязанной по отношению к таблице, включающей названия национальных команд различных стран, и к таблице, включающей названия местных клубов в различных городах.
Исправление циклических ссылок
При возникновении циклических ссылок необходимо отредактировать скрипт загрузки данных, назначив уникальное имя одному из полей с одинаковыми именами.
Выполните следующие действия.
- Откройте редактор загрузки данных.
-
Отредактируйте оператор LOAD для одного из двух идентичных имен полей.
В этом примере оператору LOAD для таблицы, содержащей названия местных команд и соответствующих городов, будет присвоено новое имя вместо Team, например LocalClub. Обновленный оператор LOAD считывает следующее:
LOAD City, Team as LocalClub
- Щелкните элемент на панели инструментов, чтобы перезагрузить данные в приложении.
Теперь логика справедлива для всех таблиц. Если в этом примере выбрать значение Germany, с ним будут ассоциированы национальная команда, города и местные клубы в каждом городе Германии:
В окне Просмотр модели данных можно увидеть, что слабые связи заменены обычными связями: