И так, на прошлом занятии мы подготовили витрину данных, созданную по правилам сборки универсальной модели для бизнес-аналитики. Теперь пришла пора данные визуализировать.
Для этого мы будем использовать Yandex DataLens. У этой системы есть бесплатный тариф, она сразу работает в облаке и рассчитана на прямое чтение данных из Clickhouse — а это именно то, что нам нужно.
Откройте сервис по ссылке — потребуется учетная запись в Яндекс.
Откройте раздел «Подключения» в левой панели, и нажмите на кнопку «Создать подключение».
Создание подключений
Выберите тип подключения Clickhouse.
Тип подключения
Укажите ручной вариант подключения и заполните реквизиты в соответствии с вашими данными. Обязательно проверьте подключение через кнопку слева внизу — должна загореться зеленая галочка.
Ручной вариант подключения
Теперь нужно создать датасет на основе нашего подключения.
Создание датасета
Задаем в качестве подключения нашу базу, находим в списке таблицу и перетаскиваем в рабочую область. На этом все — процесс сборки модели данных завершен! Все поля уже связаны внутри, остается только прописать формулы.
Подключение БД
Для работы с моделями совмещающие данные нескольких таблиц показателей, формируется поле канонической даты canonical_date (единая временная ось), а также справочное поле date_type, которое указывает, из какого исходного поля взяты значения для него.
Таким образом, используя поле canonical_date (и производные календарные поля от него), можно агрегировать на одной временной оси показатели, которые изначально находились в разных таблицах (как продажи и план продаж на картинке выше).
На этапе формирования core-уровня хранилища для одной таблицы возможно указать несколько канонических дат (частый пример из CRM-систем: дата создания и дата закрытия у сделки). Таким образом, можно данные одной сущности аллоцировать на один из нескольких типов данных при агрегации.
Пример: две канонические даты в таблице сделок формируют следующую структуру в модели:
Чтобы агрегации корректно работали на моделях такой структуры, в их условиях нужно прописывать, по какому типу даты они должны агрегировать. Т.е. для примера выше мы должны будем создать показатели:
Рекомендуется указывать в формулах агрегаций тип даты в явном виде, даже если он находится в единственном экземпляре для конкретной сущности. Потому что если в модели у сущности появится вторая каноническая дата, то простые агрегации вида SUM([Deal_sum]) будут отдавать задвоенные результаты, распределенные сразу на все типы дат.
Пренебрегать указанием типа дат имеет смысл только для тех сущностей, для которых вы уверены на 100% в том, что несколько канонических дат в них не будет.
При генерации модели на втором выходном порту формируется таблица с шаблонами выражений для BI-систем. Шаблон формируется по принципу:
Шаблоны показателей
Можно использовать их как готовые формулы или модернизировать на свое усмотрение. Добавим пару показателей в датасет:
Добавление показателей
Создайте 2 поля:
Создание полей
Сохраните ваш датасет:
Сохранение изменений
Теперь создадим график с этими показателями.
Создание графика
Создайте линейный чарт со следующими данными:
Линейный чарт
Теперь вы видите, как данные из разных таблиц сочетаются в одной модели в разрезе единой временной оси.
Скачайте и установите Loginom Community Edition, если он еще не установлен.