Перейти к содержанию

Связи

Связь — это соединение таблицы фактов со справочником. Она определяет, как справочник присоединяется к таблице фактов при генерации SQL для показателей и витрин. Связи текущей версии проекта перечислены на вкладке «Связи» экрана РПИ.

Две стороны связи

Сторона Где хранится Описание
Ключ в таблице фактов (внешний ключ) В самой связи Физическая колонка таблицы фактов, хранящая ссылку на справочник. У каждой связи свой внешний ключ
Ключ в справочнике (первичный ключ) В справочнике Физическая колонка, однозначно определяющая строку справочника. Это свойство самого справочника, общее для всех связей, использующих этот справочник

Обе стороны задаются как физическое расположение в базе данных: подключение / таблица (или схема.таблица) / колонка.

Тип связи всегда «Многие-к-одному»: множество строк таблицы фактов ссылается на одну строку справочника. Других типов нет, и тип изменить нельзя.

Как создаётся связь

Отдельной формы создания связи нет. Связь создаётся при добавлении справочника в таблицу фактов:

  • На вкладке «Конфигурация» таблицы фактов добавьте справочник на холст и сохраните. Для этой таблицы фактов и этого справочника создаётся одна связь, изначально без внешнего ключа
  • При заполнении таблицы фактов система предлагает справочники, соответствующие базовой таблице в БД; при сохранении результата создаются такие же связи

Удаление справочника из таблицы фактов удаляет связь и делает невалидными зависящие от неё витрины.

Настройка ключей

Ключи сопоставляются на слое «Подключения» в конфигурации таблицы фактов. Каждый добавленный справочник создаёт два ключевых узла:

  • Узел внешнего ключа внутри блока таблицы фактов. Его соединение с колонкой базы данных задаёт «Ключ в таблице фактов» для связи
  • Узел первичного ключа внутри блока справочника. Его соединение с колонкой базы данных задаёт «Ключ в справочнике» для справочника

Всплывающие подсказки на этих узлах поясняют их назначение:

  • Первичный ключ: «Автоматически созданный первичный ключ. Данный ключ должен быть связан с первичным ключом подключенной таблицы измерений для обеспечения корректной генерации SQL-скриптов в таблицах фактов и витринах данных»
  • Внешний ключ: «Автоматически созданный внешний ключ. Данный ключ должен быть связан с внешним ключом таблицы измерений в подключенной таблице фактов для обеспечения корректной генерации SQL-скриптов в таблицах фактов и витринах данных»

Если ключ не сопоставлен или указанная колонка недоступна, на ключевом узле отображается предупреждение:

Сообщение Значение
«Поле подключенного источника данных в РПИ не настроено» Ключу не сопоставлена ни одна колонка базы данных
«Поле подключенного источника данных в РПИ ссылается на поле базы данных, которое не может быть найдено в настроенных подключениях к базе данных» Сопоставленной колонки больше нет ни в одном настроенном подключении
«Подключенное поле источника данных в РПИ ссылается на поле базы данных из подключения к базе данных, которое в данный момент неактивно» Подключение с сопоставленной колонкой неактивно

Связь без внешнего ключа сохраняется, но генерация SQL для показателей и витрин, которым нужно это соединение, будет завершаться ошибкой до тех пор, пока ключ не задан.

Вкладка «Связи»

Вкладка отображает все связи текущей версии проекта. При переключении проекта или версии проекта список перезагружается.

Колонка Описание
Таблица фактов Сторона связи со стороны таблицы фактов
Справочник Сторона связи со стороны справочника
Ключ в таблице фактов Внешний ключ в виде подключение / таблица / колонка. Пусто, если ключ не сопоставлен
Ключ в справочнике Первичный ключ справочника в виде подключение / таблица / колонка
Тип связи Всегда «Многие-к-одному»
Действия Редактирование и удаление

Работа со списком:

  • Каждую колонку можно сортировать по возрастанию и по убыванию
  • Для каждой колонки доступен поиск; колонка «Тип связи» фильтруется выбором значения из списка
  • По умолчанию список упорядочен по названию таблицы фактов, затем по названию справочника
  • Если связей нет, на вкладке отображается сообщение «Связи не найдены»

Редактирование связи

Действие «Редактировать» открывает окно «Редактировать связь». Изменить можно только одно поле.

Поле Изменяется Описание
«Таблица фактов» Нет Отображается для справки
«Справочник» Нет Отображается для справки
«Ключ в таблице фактов» Да Колонка выбирается в три шага: подключение, затем таблица, затем колонка. Значение можно очистить
«Ключ в справочнике» Нет Относится к справочнику и изменяется на слое «Подключения»
«Тип связи» Нет Всегда «Многие-к-одному»

Кнопка «Сохранить» становится активной только после фактического изменения внешнего ключа. При успешном сохранении выводится уведомление «Связь обновлена».

Удаление связи

Действие «Удалить» запрашивает подтверждение: «Вы уверены, что хотите удалить эту связь? Это повлияет на таблицу фактов и сделает невалидными все витрины и показатели, которые зависят от этой связи». После подтверждения соединение таблицы фактов со справочником удаляется и выводится уведомление «Связь удалена». Сама таблица фактов, справочник и его измерения не изменяются.

Права доступа

  • Просматривать вкладку «Связи» могут все роли
  • Для редактирования и удаления требуется уровень доступа Разработчик или выше в проекте (Разработчик, Администратор компании, Суперадминистратор) и действующая лицензия. Для ролей Аналитик и Наблюдатель вкладка доступна только для чтения, кнопки действий не отображаются

Ограничения:

  • Создать или скопировать связь на этой вкладке нельзя; названия и описания у связей нет
  • Тип связи изменить нельзя
  • Таблицу фактов, справочник и ключ справочника нельзя изменить из окна «Редактировать связь»