Skip to main content

SQL-преобразование данных


image.png

В Fastboard данные для визуализаций преобразуются в несколько этапов с помощью последовательно выполненных SQL-скриптов.

Этап 1: Редактор скрипта загрузки

image.pngНа этом этапе данные загружаются из источника данных во внутреннее хранилище Fastboard. В скрипте загрузки используется синтаксис и возможности Clickhouse (подробнее: https://clickhouse.com/docs/ru/sql-reference ). Данные, полученные с помощью скрипта загрузки хранятся в проекте в виде несвязанных таблиц. 

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

По умолчанию импорт каждой таблицы состоит из заголовка (например, Table "Brand") и трех секций:

Create @@@ - создает в clickhouse таблицу с указанными столбцами и типами данных

Delete @@@ - удаляет существующую таблицу из clickhouse при повторном запуске скрипта загрузки для корректной перезаписи данных

Read @@@ - считывает данные из источника, приводит типы данных к указанным и записывает в созданную ранее таблицу. 

Отладочная информация

Если при в коде скрипта загрузки были допущены ошибки, после сохранения и запуска скрипта они отобразятся в консоли: 

image.png


Этап 2: Конструктор моделей данных

Модель данных заменяет собой секцию FROM у запросов, по которым в конструкторе дашбордов строятся визуализации. Она строится в визуальном конструкторе и представляет собой набор таблиц проекта, соединенных операторами JOIN в одну. Моделей может быть произвольное количество, в зависимости от потребностей пользователя.
image.png

Этап 3: Конструктор дашбордов

В конструкторе дашбордов пользователь оперирует данными, обработанными в скрипте загрузки и объединенными в  модель данных. На этом этапе доступны кастомные SQL-запросы в следующих блоках:

SQL-редактор виджета

Формирует набор данных для отдельно взятой визуализации. В редакторе доступны для редактирования три поля: Разрезы, Показатели, Группировки и фильтры.

image.png

Разрезы и показатели определяют секцию SELECT запроса и разделены для того, чтобы правильно построить диаграмму. Разрезы представляют собой измерения, а показатели -- меры(агрегируемые данные). 

Группировки и фильтры определяют секции WHERE, ORDER BY и GROUP BY запроса.

image.pngimage.png

Для агрегации показателей существуют встроенные функции (SUM, COUNT, AVG, MIN, MAX), а также "По выражению":

Показатель по выражению

image.png

image.png

Данная функция позволяет написать произвольное SQL-выражение для выбранного показателя. Это выражение будет добавлено в основной SQL-редактор виджета, в поле "Показатели", с указанием алиаса данного показателя.

image.png

Цвет по условию

Данная функция позволяет написать SQL-выражение для расчета и выбора цвета показателя из палитры. Например, 

case 
when Car.BRAND = 'Toyota' then '1'
when Car.BRAND = 'Mitsubishi' then '2'
else '3'
end

где цифры в одинарных кавычках это выбранные образцы цветаimage.png

SQL-редактор медиаблока

Медиаблок - виджет, позволяющий использовать текст с переменными, значение которых определяется SQL-выражением, а также картинки, также подставляющиеся с помощью SQL-запроса. 

SQL-редактор медиаблока не имеет полей "Разрезы" и "Показатели", вместо них одно поле "Переменные", аналогично определяющее секцию SELECT, и поле "Группировки и фильтры", аналогично стандартному редактору определяющее секции WHERE, ORDER BY и GROUP BY

Переменные в медиаблоке

Имена переменных назначаются на основной вкладке параметров медиаблока. Можно увеличить их количество кнопкой "Добавить переменную" или удалить выбранную переменную с помощью кнопки "Корзина". Переименовать переменную можно нажав на ее название.

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

Также в нем можно открыть редактор запросов для ввода выражения, которое определит значение переменной. Если для переменной не указано выражение, значением будет "undefined".

Картинки в медиаблоке

В режиме "Ссылка - По условию" работает аналогично функции "Цвет по условию". 

image.png

В режиме "База данных" ссылка на картинку должна содержаться в столбце модели данных, который необходимо указать в параметрах виджета.

Отладочная информация

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

image.png

Этап 4: Результирующий SQL-запрос

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

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

image.png