Витрины из нескольких таблиц фактов
Витрина может быть построена сразу на нескольких таблицах фактов. В этом случае тип слияния определяет, как объединяются их данные, и ограничивает состав элементов витрины.
Выбор типа слияния
Тип слияния привязан к активированным таблицам фактов — таблицам фактов, отображаемым на холсте конструктора витрины.
- Как только на холсте появляется вторая таблица фактов, открывается диалог «Выбрать тип слияния»: «Вы добавляете в витрину несколько таблиц фактов. Пожалуйста, выберите, как они должны быть объединены. Выбранный тип слияния можно будет поменять в настройках витрины»
- Диалог открывается независимо от того, какие элементы добавлены в витрину: значение имеет число активированных таблиц фактов, а не состав витрины
- Тип слияния задан и может быть изменён для любой витрины, у которой на холсте не менее двух таблиц фактов. Для витрины с одной таблицей фактов или без них настройка недоступна и пуста: «Выбор типа слияния станет доступен после добавления в витрину как минимум двух таблиц фактов»
- Тип слияния можно изменить и позже в диалоге редактирования — из списка или из конструктора
- Клонированная витрина наследует тип слияния источника; его можно изменить как во время клонирования, так и после
UNION
«UNION» объединяет строки разных таблиц фактов вертикально: «Показатели из разных таблиц фактов будут отображаться в отдельных строках витрины».
- Результат содержит объединение колонок всех таблиц фактов. Колонки, определённые в таблице фактов — источнике строки, заполняются значениями; колонки, которых в этой таблице фактов нет, заполняются значением
NULL - Автоматически добавляется служебное поле «fact», содержащее название таблицы фактов, из которой взята каждая строка
- «UNION» предлагается по умолчанию и совместим со всеми типами витрин
JOIN
«JOIN» объединяет таблицы фактов горизонтально по их общим измерениям: «Показатели из разных таблиц фактов будут объединены в одних и тех же строках витрины по общим измерениям».
- Результат содержит по одной строке на каждую уникальную комбинацию значений измерений, а показатели всех таблиц фактов размещаются в отдельных колонках
- Значения показателей вычисляются для каждой комбинации измерений. Если значение для комбинации вычислить невозможно, возвращается
NULL - Поле «fact» не добавляется
Требования режима «JOIN»:
- Тип витрины «С группировкой». Режим несовместим с типами «Без группировки» и «С группировкой и сверткой»
- В составе витрины не должно быть фактов
- Измерения должны быть связаны со всеми активированными таблицами фактов
- Разрешены общие показатели — показатели, рассчитываемые по данным всех объединяемых таблиц фактов
Какие элементы допустимы
Допустимость элементов зависит от сочетания типа витрины и типа слияния. Колонки «UNION» и «JOIN» применимы только при двух и более активированных таблицах фактов; пока их меньше, тип слияния не задан и его ограничения не действуют.
| Элемент | Без группировки / UNION | С группировкой / UNION | С группировкой / JOIN | С группировкой и сверткой / UNION |
|---|---|---|---|---|
| Факт | ✓ | ✗ | ✗ | ✗ |
| Измерение, связанное со всеми таблицами фактов | ✓ | ✓ | ✓ | ✓ |
| Измерение, не связанное со всеми таблицами фактов | ✓ | ✓ | ✗ | ✓ |
| Измерение из таблицы фактов | ✓ | ✓ | ✗ | ✓ |
| Показатель | ✓ | ✓ | ✓ | ✓ |
| Общий показатель | ✗ | ✗ | ✓ | ✓ |
Примечания:
- Общие показатели можно добавлять в витрину любого типа, пока активировано менее двух таблиц фактов. Ограничение из таблицы выше начинает действовать только после выбора «UNION» для двух и более таблиц фактов
- Измерения справочника, не связанного со всеми активированными таблицами фактов, нельзя добавить ни в одной конфигурации: их чекбоксы в панели выбора недоступны, а кнопка добавления на холсте не отображается. Сам справочник при этом можно разместить на холсте без его измерений
- Недопустимый элемент не блокирует сохранение. Такие элементы отмечаются предупреждающим значком с подсказкой «Этот элемент нельзя использовать в витрине текущего типа», витрина отмечается в списке как недопустимая («В витрине используются недопустимые элементы»), а проверка витрины и создание представления становятся недоступны до исправления состава
Как отображаются элементы из разных таблиц фактов
- Элемент, общий для нескольких таблиц фактов, отображается в узле витрины один раз и связывается со всеми своими таблицами-источниками
- Различающиеся элементы таблиц фактов включаются в витрину каждый отдельно
- Измерения справочников синхронизируются между активированными таблицами фактов (см. страницу «Выбор элементов витрины»)
Требования и ограничения
- Все элементы витрины должны относиться к одному подключению к базе данных. Элементы из нескольких подключений приводят к ошибке при генерации запроса
- Фильтры применяются ко всем объединяемым таблицам фактов
- Проверка витрины и управление представлением в базе данных работают точно так же, как для витрины с одной таблицей фактов