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

Витрины из нескольких таблиц фактов

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

Выбор типа слияния

Тип слияния привязан к активированным таблицам фактов — таблицам фактов, отображаемым на холсте конструктора витрины.

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

UNION

«UNION» объединяет строки разных таблиц фактов вертикально: «Показатели из разных таблиц фактов будут отображаться в отдельных строках витрины».

  • Результат содержит объединение колонок всех таблиц фактов. Колонки, определённые в таблице фактов — источнике строки, заполняются значениями; колонки, которых в этой таблице фактов нет, заполняются значением NULL
  • Автоматически добавляется служебное поле «fact», содержащее название таблицы фактов, из которой взята каждая строка
  • «UNION» предлагается по умолчанию и совместим со всеми типами витрин

JOIN

«JOIN» объединяет таблицы фактов горизонтально по их общим измерениям: «Показатели из разных таблиц фактов будут объединены в одних и тех же строках витрины по общим измерениям».

  • Результат содержит по одной строке на каждую уникальную комбинацию значений измерений, а показатели всех таблиц фактов размещаются в отдельных колонках
  • Значения показателей вычисляются для каждой комбинации измерений. Если значение для комбинации вычислить невозможно, возвращается NULL
  • Поле «fact» не добавляется

Требования режима «JOIN»:

  • Тип витрины «С группировкой». Режим несовместим с типами «Без группировки» и «С группировкой и сверткой»
  • В составе витрины не должно быть фактов
  • Измерения должны быть связаны со всеми активированными таблицами фактов
  • Разрешены общие показатели — показатели, рассчитываемые по данным всех объединяемых таблиц фактов

Какие элементы допустимы

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

Элемент Без группировки / UNION С группировкой / UNION С группировкой / JOIN С группировкой и сверткой / UNION
Факт
Измерение, связанное со всеми таблицами фактов
Измерение, не связанное со всеми таблицами фактов
Измерение из таблицы фактов
Показатель
Общий показатель

Примечания:

  • Общие показатели можно добавлять в витрину любого типа, пока активировано менее двух таблиц фактов. Ограничение из таблицы выше начинает действовать только после выбора «UNION» для двух и более таблиц фактов
  • Измерения справочника, не связанного со всеми активированными таблицами фактов, нельзя добавить ни в одной конфигурации: их чекбоксы в панели выбора недоступны, а кнопка добавления на холсте не отображается. Сам справочник при этом можно разместить на холсте без его измерений
  • Недопустимый элемент не блокирует сохранение. Такие элементы отмечаются предупреждающим значком с подсказкой «Этот элемент нельзя использовать в витрине текущего типа», витрина отмечается в списке как недопустимая («В витрине используются недопустимые элементы»), а проверка витрины и создание представления становятся недоступны до исправления состава

Как отображаются элементы из разных таблиц фактов

  • Элемент, общий для нескольких таблиц фактов, отображается в узле витрины один раз и связывается со всеми своими таблицами-источниками
  • Различающиеся элементы таблиц фактов включаются в витрину каждый отдельно
  • Измерения справочников синхронизируются между активированными таблицами фактов (см. страницу «Выбор элементов витрины»)

Требования и ограничения

  • Все элементы витрины должны относиться к одному подключению к базе данных. Элементы из нескольких подключений приводят к ошибке при генерации запроса
  • Фильтры применяются ко всем объединяемым таблицам фактов
  • Проверка витрины и управление представлением в базе данных работают точно так же, как для витрины с одной таблицей фактов