Формирование модели данных для визуализации

Формирование модели данных для визуализации

Общие сведения

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

  • "Звезда" – при такой схеме используется одна таблица фактов, содержащая числовые параметры (например, количество проданного товара, номер магазина, время операции, и т.д.) и одна или несколько таблиц измерений, содержащих описательную информацию о числовых значениях таблицы фактов (например, информацию о покупателях, магазинах, описание товаров и т.д.).

  • Созвездие“ – при такой схеме используются две или более таблицы фактов, у которых могут быть общие таблицы измерений. Напрямую таблицы фактов между собой не связаны. Схема рассматривается как набор “звезд”, отсюда и происходит ее название. Она удобна, если, например, необходимо сравнить план продаж с фактическими продажами.

  • Снежинка“ – при такой схеме таблицы измерений связаны не только с таблицей фактов, но и друг с другом, формируя иерархические цепочки. Визуально такая структура напоминает снежинку, отсюда и происходит её название. Она удобна, если требуется глубоко нормализовать данные для повышения их целостности и эффективности хранения. Например, измерение Товар может быть связано с измерением Категория, которое, в свою очередь, связано с измерением Подразделение, предоставляя дополнительные уровни детализации для анализа.

Во всех случаях связи между таблицами строятся на основе отношений «один ко многим» (1:*). При использовании модели “звезда“ или “созвездие“ таблицы измерений являются родительскими по отношению к таблице фактов, в то время как при использовании схемы “снежинка”, таблицы измерений могут быть родительскими не только по отношению к таблице фактов, но и по отношению к другим таблицам измерений, формируя иерархические цепочки. При использовании схемы “звездочка“ или “созвездие“ количество связываемых таблиц ограничивается вашими бизнес-задачами. Для схемы “снежинка“ есть ограничения (см. раздел “Особенности работы со схемой “снежинканиже).

Пример связи “один ко многим”

Есть две таблицы: "Заводы" и "Автомобили". Они имеют связь "один ко многим", то есть, каждый завод выпускает несколько моделей автомобилей, но каждый автомобиль имеет отношение только к одному заводу.

При создании модели данных вы также можете установить две и более связей между таблицей фактов и таблицей измерений (см. ниже).

На рисунках ниже приведены примеры схем "звезда", “созвездие“ и “снежинка“, созданные для учета продажи электроники.

Пример 1

В данном примере показаны две модели, построенные по схеме “звезда”:

  • несколько таблиц, связанных с таблицей фактов (Модель 1)

  • одна таблица, связанная с таблицей фактов (Модель 2).
    Таблицей фактов является "Продажи электроники":

    star (1).png

Пример 2

В данном примере показаны две таблицы фактов с общей таблицей измерений (схема “созвездие”).

Две таблицы фактов могут быть связаны с таблицей измерений по разным атрибутами этой таблицы. Например, таблица “Продажи электроники” может быть связана с таблицей “Магазины” по полю "Номер магазина", а таблица “План продаж” может быть связана по полю "Название магазина".

Таблица измерений должна содержать уникальные значения атрибута (например, идентификаторы товара), по которому создается связь с таблицей фактов. В противном случае, получается связь “многие ко многим”, которая в данный момент не поддерживается.

Пример 3

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

snowflake.png

Особенности работы со схемой “снежинка”

При работе со схемой “снежинка“ необходимо учитывать следующие особенности:

  • Поддерживаются модели данных, содержащие несколько таблиц фактов.

  • От одного измерения может быть построено несколько независимых цепочек связанных таблиц, что позволяет детализировать данные по различным аспектам.
    Пример: Таблица «Продукты» может быть связана с таблицей «Категории», а также с таблицей «Поставщики», образуя два независимых разветвления.

  • Текущая реализация схемы «Снежинка» не поддерживает следующие сценарии:

    • Связи «многие ко многим»: Модель ориентирована на иерархические связи «один ко многим».

    • Двунаправленные связи: Поддерживаются только однонаправленные связи от таблицы фактов вглубь измерений.

    • Ограничена максимальная длина цепочек связей между таблицами. Вы не можете построить «снежинку» с бесконечной вложенностью. Допустимо 5 таблиц в одной цепочке.

    • Запрет циклов. Нельзя создать циклическую ссылку, где таблицы ссылаются друг на друга по замкнутому кругу.

    • Не поддерживаются неоднозначные связи. Запрещены ситуации, когда между двумя таблицами существует более одного пути следования по связям. Система должна всегда однозначно "понимать", по какому маршруту идти от одной таблицы к другой. Если маршрутов два или больше – это неоднозначность, которая приводит к ошибке. При попытке построить такую связь система предупредит об этом.
      Пример валидной схемы:

      allowed-scheme.png

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

      not-allowed.png

      Добавление дополнительной связи между таблицами Регионы и Магазины приведет к появлению второго пути из таблицы Регионы к таблице Продажи электроники (неоднозначная связь). Достаточно удалить одну из связей (Регионы > Магазины или Регионы > Товары), чтобы сделать схему валидной.
      К невалидным схемам могут также привести следующие действия:

      • Добавление связи от Продажи электроники к любой из таблиц приведет к циклической зависимости.

      • Добавление как активной, так и неактивной связи между справочниками в обратном направлении создаст циклическую зависимость.l

Дополнительные примеры валидных схем

Пример 1

Схема, представленная ниже, является полностью валидной, логичной и работоспособной:

allowed-2.png

Ее ключевые особенности:

  • Центральная таблица фактов: Продажи электроники.

  • Окружающие таблицы измерений: Магазины, Товары, Бренды, Регионы, Бюджет.

  • Нормализация измерений: Некоторые таблицы измерений (Магазины, Товары) ссылаются на другие таблицы измерений (Регионы, Бренды), что и формирует структуру “снежинка”.

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

Для сопоставления данных из таблицы фактов (Продажи электроники) и таблицы планов (Бюджет), имеющих разную детализацию, используется следующий подход: данные из таблицы фактов группируются и суммируются до уровня гранулярности таблицы планов, после чего происходит их корректное соединение по общим атрибутам – региону и бренду:

Пример 2

На изображении ниже представлена схема, которая описывает связи между различными сущностями в контексте ролевого измерения (ролевое измерение – это таблица, отображаемая в нескольких контекстах):

allowed-3.png

Ее ключевые особенности:

  • Центральная таблица фактов: Продажи электроники.

  • Окружающие таблицы измерений: Календарь, Праздники, Фискальный календарь.

  • Ролевое измерение даты: Таблица дат используется в двух разных ролях:

    • Ключ_даты_заказа (активная связь)

    • Ключ_даты_отгрузки

  • Нормализация временных измерений: Данные о датах разделены на три специализированные таблицы:

    • Календарь (базовые календарные атрибуты).

    • Праздники (праздничные дни и события).

    • Фискальный календарь (бизнес-периоды компании).

  • Иерархия связей: Все таблицы дат связаны через общий Ключ_даты, что обеспечивает согласованность временных данных.

Эта структура обеспечивает гибкий временной анализ, поддерживает различные календарные системы и хорошо подходит для анализа продаж, где критически важны точные временные атрибуты и сравнение разных дат (в нашем примере – заказа и отгрузки).

-Playing Dimension

Построение связи

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

Для создания связи выполните следующие шаги:

  1. Перейдите на вкладку Наборы данных в окне рабочей области и откройте требуемый набор данных. Например:

    select-dataset.png

     

  2. В открывшемся окне установите связь между таблицами путем перетаскивания соответствующих столбцов. В примере ниже мы связываем таблицы с помощью поля datekey:

    link-tables.gif
  • Нельзя связать столбцы с разным типом данных. Если вы попытаетесь сделать это, приложение выведет на экран предупреждение.

  • При попытке установления связи, которая не укладывается в рамки модели “звезда” или “созвездие”, система сообщит о том, что модель “снежинка“ не поддерживается.

  • При построении модели убедитесь, что вы не создаете циклическую связь между несколькими таблицами, когда, например, таблица «А» связана с таблицей «B», таблица «В» связана с «С», а «С связана с «А». Циклические связи могут вызывать проблемы при обработке данных и построении отчетов.

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

Данные таблиц измерений никак не связаны между собой.

Помимо создания связи перетаскиванием столбцов, вы также можете воспользоваться кнопкой Новая связь в окне просмотра связей. Для этого выполните следующие действия:

  1. Откройте требуемый набор данных, как описано выше.

  2. В открывшемся окне нажмите кнопку Связи в верхней панели:

    link-button.png
  3. В открывшемся диалоге нажмите кнопку + Новая связь:

    new-link.png

     

  4. В окне Создание связи необходимо:

    • В выпадающих списках Из таблицы и В таблицу выбрать связываемые таблицы.

    • В каждой из таблиц указать столбцы, по которым будет установлена связь (выделить их щелчком мыши).

    • Настроить параметры Ссылочная целостность (из) и Ссылочная целостность (в):

      • Полное соответствие – в визуализациях будут отображаться только те строки, для которых существуют значения в обеих связанных таблицах. Строки с отсутствующими значениями не выводятся.

      • Частичное соответствие – в визуализациях будут отображаться все строки, включая те, в которых отсутствуют значения в одной из связанных таблиц (см. Примеры настроек ссылочной целостности).

    • Выбрать Количество элементов:

      • Один ко многим (1:*) — направление связи от таблицы с уникальными значениями к таблице с повторяющимися значениями.

      • Многие к одному (*:1) — обратное направление связи.

    • При необходимости установить флаг Активировать связь. Активная связь будет использоваться в вычислениях по умолчанию.

    • Нажать Сохранить.

      new-link-settings.png

После создания связей вы можете просмотреть их. Для просмотра существующей связи наведите курсор мыши на ее графическое изображение – приложение подсветит поля, по которым вы связали таблицы:

linked-columns.png

Ниже пример модели данных с таблицами измерений, привязанными к таблице фактов factonlinesales:

data-model.png

ВАЖНО!

В текущей версии платформы корректно работают только консистентные связи между таблицами фактов и измерений. Это означает, что при агрегации данных (например, при расчете сумм, средних значений или количеств) учитываются только те записи из таблицы фактов, для которых есть соответствующие записи в таблицах измерений. Например, если в таблице фактов есть ID товара, которого нет в справочнике товаров, то при подсчете суммы продаж по товарам продажи этого "безымянного" товара не будут учтены в агрегации.

При выборе элементов таблицы система подсвечивает их в панели Поля справа, что позволяет быстро найти используемые столбцы в таблице. Чтобы выбрать несколько элементов, удерживайте клавишу Ctrl, при этом вы можете одновременно выбирать элементы как одной, так и нескольких таблиц:

fix1.mp4
Подсветка элементов таблиц

Построение нескольких связей между таблицами

При создании модели данных вы также можете установить две и более связей между таблицей фактов и таблицей измерений. Это поможет вам анализировать данные в разных контекстах без необходимости создавать дополнительные таблицы. Например, если у вас есть таблица Продажи и таблица Календарь, вы можете связать их по дате заказа и по дате доставки, чтобы анализировать как сроки выполнения заказов, так и динамику продаж. При этом активной может быть только одна связь, которая будет использоваться для вычислений по умолчанию. Чтобы сделать активной другую связь, необходимо деактивировать активную связь и активировать нужную (см. ниже). Две активные связи между таблицами быть не может. Временно активировать одну из связей также можно с помощью мер с использованием функции USERELATIONSHIP.

Пример модели данных с несколькими связями: одна активная связь (сплошная линия) и три неактивные (пунктирные линии):

userelationship3.png

Активация и деактивация связей

Для деактивации связи щелкните по активной связи и выберите Деактивировать в контекстном меню.

Для активации связи необходимо щелкнуть по неактивной связи и выбрать в меню Активировать:

userelationship10.png

Просмотр списка связей

При наличии большого количества таблиц в модели бывает сложно отследить некоторые связи:

alot.png

Для облегчения этой задачи вы можете воспользоваться списком связей. Для этого необходимо сделать следующее:

  1. Нажмите кнопку Связи в верхней части окна построения модели:

    links.png
  2. В открывшемся диалоге вы увидите какие таблицы связаны между собой. Направление связи указывается в колонках Откуда (исходная таблица и колонка) и Куда (целевая таблица и колонка). Статус Активная означает, что связь используется в данный момент, Неактивная – временно отключена. Для быстрого поиска нужной таблицы воспользуйтесь строкой поиска:

    view-links.png

Обратите внимание, что в визуальном представлении стрелки показывают направление связи от таблицы измерения к таблице фактов, в то время как в окне просмотра связей таблица фактов находится в колонке Откуда, а таблицы измерений в колонке Куда. Это происходит по следующим причинам:

  • В визуальном представлении стрелка указывает направление фильтрации – от одного к многим, то есть от справочника к таблице фактов.

  • В окне просмотра связей в столбце Откуда указывается та таблица, где находится внешний ключ – то есть та, где много, а в столбце Куда таблица, где находится первичный ключ – то есть та, где один.

Другими словами в визуальном представлении учитывается фильтрация (один → много), а в окне просмотра связей структура данных (внешний ключ → первичный ключ).

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

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

Для этого выполните следующие шаги:

  1. Откройте требуемый набор данных и нажмите кнопку Связи в верхней части окна построения модели данных:

    link-button.png
  2. В открывшемся окне Просмотр связей найдите нужную связь.

  3. Нажмите кнопку с изображением карандаша в строке этой связи:

    edit-button.png

     

  4. Откроется окно Изменение связи, в котором доступны те же настройки, что и при создании новой связи (см. выше):

    • Выбор таблиц и столбцов для связи.

    • Настройка Ссылочной целостности для исходной и целевой таблицы.

    • Выбор Количества элементов.

    • Флаг Активировать связь.

      change-link.png
  5. После внесения изменений нажмите кнопку Сохранить.

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

Если вы ошибочно привязали таблицу и хотите удалить созданную связь, кликните на ее графическое изображение и нажмите Удалить связь:

delete.png

Также вы можете удалить связь, находясь в режиме просмотра связей. Для этого сделайте следующее:

  1. Наведите курсор мыши на связь, которую хотите удалить.

  2. Нажмите кнопку с изображением корзины.

  3. Подтвердите удаление, нажав Удалить в диалоге подтверждения:

    delete-link.png

Смотрите также

Загрузка данных
Настройка ссылочной целостности

На этой странице


Видео

Работа со схемой “созвездие“

Время чтения: 2 мин.


Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.