Разбиение данных по датам
Для того чтобы иметь возможность разбивать данные по датам, вам необходимо загрузить календарь в вашу модель данных и связать его с таблицей фактов.
Если календарь уже добавлен, то вы можете разбивать значения по датам, месяцам, неделям и т.д.
Представим, что вам нужно выполнить разбиение по датам. Для этого необходимо сделать следующее:
Перейдите в окно редактирования дашбордов и добавьте виджет, кликнув соответствующую иконку в панели Визуализации. В нашем примере мы выберем столбчатую диаграмму:
Теперь необходимо заполнить поля Х и Y, перетащив в них необходимые столбцы. Для оси X выберем столбец datakey из таблицы Календарь (он содержит даты), для оси Y – столбец Выручка таблицы factonlinesales:
Как видите, данные отсортировались по датам.
Сортировка календарных значений в виджете
Некоторые значения, добавленные из таблицы календаря, сортируются в виджете по алфавиту. Например, при разбиении данных по месяцам, первым месяцем будет Август, затем Апрель, а завершающим будет Январь. Чтобы изменить такое поведение, администратору платформы необходимо произвести дополнительные настройки.
Во-первых, необходимо добавить в таблицу календаря, используемую в источнике данных, столбец с буквенными индексами каждого месяца, расположенными в алфавитном порядке. То есть, месяцу Январь в столбце Название месяца должен соответствовать индекс А в столбце Индекс месяца, февралю – B, марту - C и т.д.:
Наличие индексов позволит отсортировать месяцы нужным образом.
Во-вторых, отсортировать колонку с названиями месяцев по колонке, содержащей индексы месяцев.
Для этого необходимо выполнить следующие шаги:
Откройте дашборд, на котором находится виджет с данными, разбитыми по месяцам:
Как видно на скриншоте, месяцы отсортированы по алфавиту. Теперь мы отсортируем их таким образом, чтобы первым месяцем был январь, а последним - декабрь.
Нажмите клавишу F12, чтобы открыть консоль разработчика, и перейдите на вкладку Network:
В секции Name выберите модель данных, перейдите на вкладку Response и скопируйте полученный JSON-код ответа в какой-нибудь редактор кода:
Извлеките из JSON-кода следующую информацию (она понадобится для отправки HTTP-запроса):
Идентификатор используемой TOM модели. Это значения поля id на самом верхнем уровне кода JSON. Например:
Идентификатор таблицы календаря. В массиве tables найдите таблицу загруженного календаря и скопируйте ее id. Например:
Идентификатор колонки, которую вы будете сортировать. В массиве columns таблицы загруженного календаря, найдите значение id колонки, которую вы будете сортировать (Месяц). Например:
Идентификатор колонки, по которой вы будете сортировать. В массиве columns таблицы загруженного календаря найдите значение id колонки, по которой вы будете сортировать (Индекс месяца). Например:
В консоли разработчика перейдите на вкладку Network > Headers, и в секции Request Headers скопируйте Bearer токен, указанный в Authorization. Он также будет использован в HTML-запросе:
Откройте какое-нибудь приложение, используемое для отправки HTTP-запросов, например, Postman.
Отправьте PATCH
запрос по адресу:
http://<platform-ip>/v3/formula-engine/api/v1/workspaces/4DE8029C-7E04-4F6B-9C46-D02B4F493192/datasets/<model-ID>/tables/<table-ID>/columns/<column-ID>
где:
<platform-ip>
– домен или IP-адрес сервера платформы;
<model-ID>
– идентификатор используемой TOM модели, скопированный ранее (см. пример выше);
<table-ID>
– идентификатор таблицы календаря, которая содержит колонку, данные которой вы хотите отсортировать (см. пример выше);
<column-ID>
– идентификатор колонки, данные которой вы хотите отсортировать (см. пример выше).
Пример запроса в Postman:
PATCH http://192.168.44.23/v3/formula-engine/api/v1/workspaces/4DE8029C-7E04-4F6B-9C46-D02B4F493192/datasets/5e3650be-8079-4810-975a-0349167d9ebf/tables/ddf5c2ae-c3f4-46f9-a1b8-1f5264afd6fa/columns/7776fe46-15c5-4458-9329-8ca0d55ead5a
Параметры запроса:
| Key | Value |
---|
Headers | Accept | */*
|
Authorization | Bearer Token, полученный из консоли разработчика (см. пункт 5). |
Content-Type | application/json
|
Body | | Введите следующую строку в качестве raw JSON data. Она указывает колонку, по которой необходимо проводить сортировку:
{
"sortByColumnId" : "323eef3e-elb6-404d-b5fc-6384d6a9182d"
}
где 323eef3e-elb6-404d-b5fc-6384d6a9182d – идентификатор колонки, который был скопирован в пункте 4 (Индекс месяца). |
В случае успешного выполнения запроса сервер возвращает ответ с кодом 200 OK.
7. После отправки запроса необходимо обновить страницу дашборда. Если все действия были выполнены правильно, виджет отсортирует поле Месяц по полю Индекс месяца:
Смотрите также
📄 Загрузка календаря