Перейти к основному содержимому Перейти к дополнительному содержимому

Представление о циклических ссылках и их исправление

Если циклические ссылки («циклы») присутствуют в структуре данных, таблицы будут связаны таким образом, чтобы существовало более одного пути связей между двумя полями.

Подобного типа структуры данных следует избегать, поскольку его использование может привести к неоднозначности интерпретации данных.

Три таблицы с циклической ссылкой, так как существует несколько возможных путей связей между двумя полями.
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.
СОПУТСТВУЮЩИЕ УЧЕБНЫЕ МАТЕРИАЛЫ:

Подробнее

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!