09 Данные
Для того, чтобы перейти в раздел “Данные”, кликните на его обложку на стартовой странице либо выберите этот раздел в панели навигации.
Раздел “Данные” недоступен пользователям с сайтовой ролью Viewer.
Подраздел “Источники данных”
В подразделе “Источники данных” можно подключать источники данных и создавать кубы на их основе.
Для каждой из баз данных (Excel, ClickHouse, MS SQL, PosgreSQL, Oracle, MySQL, и остальные) в интерфейсе создана отдельная закладка, учитывающая особенности наcтройки параметров подключения.
Для всех вкладок присутствует поиск по таблице и сортировка значений по алфавиту, принадлежности, дате создания и дате обновления. Сделать это можно как с помощью кнопки сортировки в заголовке каждого из столбцов , так и с помощью специального меню в правом верхнем углу.
Подключение базы данных как источника
Для создания нового источника данных на основе базы данных выберите нужный тип базы данных, кликнув по соответствующей вкладке, а потом нажмите на .
В качестве источника данных может использоваться любая БД, если для неё есть драйвер JDBC. Но полноценная работа с многомерными источниками данных (кубами) в настоящий момент нами обеспечивается только с теми типами БД, для которых в интерфейсе реализована отдельная закладка настроек.
После клика по кнопке создания источника справа появится окно ввода параметров подключения к источнику. Список параметров подключения будет отличаться в зависимости от выбранного типа источника данных.
ID источника данных не может быть изменено после создания.
Необходимо заполнить все поля, представленные в данном окне:
- ID - идентификатор источника данных
- Имя - название источника, отображаемое в Luxms BI.
- Сервер - адрес сервера, по которому находится источник данных.
Вместо указания адреса сервера можно переключиться в режим ввода JDBC URL, щеклнув по переключателю “URL” - Database - название базы данных.
- Логин - логин учётной записи в базе данных для подключения к источнику.
- Пароль - пароль учётной записи в базе данных для подключения к источнику.
При заведении JDBC URL можно использовать дополнительные параметры соедниния, специфичные для каждого типа СУБД, такие как использование SSL/TLS, таймаут соединения (connectTimeout) и многие другие. Пример JDBC URL-адреса соединения:
jdbc:clickhouse://some.clickhouse.server:443/default?max_insert_block_size=100000&max_threads=8&ssl=true&socket_timeout=1800000
После ввода данных, вы можете проверить корректность установленных параметров с помощью тестового подключения. Для этого нажмите на кнопку “Проверить соединение”.
Для сохранения данных для подключения нажмите на “Добавить”.
Для отмены действия нажмите на кнопку в правом верхнем углу окна.
В случае необходимости редактирования данных для подключения, нажмите на “Редактировать”. Окно редактирования источника аналогично окну создания источника данных.
Для удаления подключения к источнику нажмите на “Удалить” и подтвердите действие во всплывающем окне в правой части экрана
Для отмены действия нажмите на кнопку “Отмена” либо на в правом верхнем углу окна.
Импорт файла как источника данных
Создания нового источника данных возможно также на основе файлов в форматах XLS, XLSX, CSV, DBF, QVD, Avro, Parquet. Для этого кликните по соответствующей вкладке, а потом нажмите на . Откроется окно создания источника данных.
Для загрузки файла в систему, перенесите его мышью (drag’n’drop) на страницу импорта, либо нажмите на слово “Кликните” и укажите путь до файла.
Если вы загружаете файл CSV формата, то программа предложит вам указать тип разделителя (пробел, вертикальную черту, запятую или точку с запятой). Это необходимо для корректного отображения источника в Luxms BI.
Загрузить можно неограниченное количество файлов. В разделе создания куба они будут представлены как “схемы” источника.
В правой части раздела появится загруженная таблица, открытая на первом листе. Внизу представлена возможность переключения между листами загруженного файла. Листы в разделе создания куба будут представлены как “таблицы” источника.
При необходимости вы можете переименовать столбцы, кликнув дважды по их заголовкам и напечатав новые названия.
Советуем не выбирать для столбцов названия, совпадающие с функциями, используемыми в SQL. В противном случае возможно непредсказуемое поведение программы.
Для каждого из столбцов необходимо указать тип: STRING (строка), INT (целочисленное значение), DOUBLE (значение со знаками после запятой), DATETIME (период).
Для корректной работы даты (типа DATETIME) необходимо указать, в каком формате дата содержится в файле. Например, если у вас в файле дата записана в формате 11.05.2023, то формат должен быть указан следующим образом: дд.мм.гггг или dd.mm.yyyy. В этом случае программа сможет правильно привести дату к корректному для SQL формату.
Если в импортируемом файле первая строка является заголовком, необходимо её выделить и нажать на кнопку “Строку в заголовок”.
Для удаления столбца кликните на его заголовок (это выделит весь столбец), а потом кликните на кнопку “Удалить столбец”.
Удаление строки производится выделением строки и кликом по кнопке “Удалить строку”.
Luxms BI позволяет удалить сразу несколько строк или столбцов. Чтобы удалить несколько последовательных строк или столбцов, нужно зажать Shift и щелкнуть левой кнопкой мыши по первому и последнему пункту в выбранном диапазоне. Если необходимо выбрать несколько столбцов или строк из разных частей таблицы, нужно зажать Ctrl и кликнуть по ним левой кнопкой мыши.
В случае необходимости отмены предыдущих действий, нажмите на кнопку “Отмена”, либо отредактируйте код, сгенерированный при редактировании источника.
После проведения всех необходимых манипуляций укажите ID и имя источника. Кроме того, выберите его тип: будет ли источник относится к глобальным или локальным, то есть будет доступен из любого атласа или только из некоторых. В конце нажмите кнопку “Добавить”, тем самым сохранив источник данных.
Внимание! Для корректной работы ID источника необходимо указывать латинскими буквами. ID не должен начинаться с цифры. В случае, когда в названии встречаются пробелы или косые черты, Luxms BI автоматически заменяет их на нижние подчеркивания.
Обновление источника данных из файла Excel
Чтобы переименовать источник, кликните по соответствующей кнопке в окне Источников данных и в открывшемся окне введите новое название, после чего подтвердите действие кнопкой “Сохранить”.
Для обновления источника нажмите кнопку “Обновить” и выберите в появившемся окне вариант обновления данных: добавление или перезапись.
Если новые данные были записаны в тот Excel, из которого был создан источник, то для обновления необходимо “перезаписать” документ.
Если новые данные были записаны в новый Excel, то для обновления необходимо “добавить” документ.
Важно, чтобы документы, которые вы загружаете были идентичны по названию и структуре с теми, из которых создавался источник данных (иначе обновление не произойдет).
Чтобы убрать источник из списка кликните по кнопке “Удалить” и подтвердите свое решение в открывшемся окне.
Подраздел “Кубы”
Создание куба
Для того, чтобы создать куб, откройте раздел “Данные” и перейдите в подраздел “Кубы”
Поиск и сортировка по таблице с созданными кубами производится аналогично таблице с источниками данных.
Чтобы открыть окно создания куба нажмите на .
Выберите источник данных, из которого будет создан куб. Для этого нажмите на кнопку “Выбрать источник” в правом верхнем углу окна “Создание нового куба”.
В этом окне вы можете:
- Отобрать для поиска все источники или оставить только глобальные или локальные источники;
- Создать новый источник с помощью кнопки в правом верхнем углу окна;
- Найти источник данных;
- Выбрать тип базы данных;
- Отсортировать источники по алфавиту.
Вы можете воспользоваться поиском для фильтрации списка источников.
Поиск по схемам работает аналогично поиску по источникам данных.
После выбора источника данных в списке “Схемы в источнике данных” будут отображены все схемы, доступные для учётной записи, используемой при подключении.
В случае создания источника из файлов формата xlsx/csv каждый отдельный файл будет отображаться как схема.
При нажатии на схему откроется список таблиц внутри схемы.
Перетащите таблицу на поле “в клетку” для генерации SQL-запроса к источнику.
Если нужно создать куб из нескольких таблиц, настройте их связь. Для этого перетащите две или более таблицы на поле “в клетку”. Если в источнике таблицы уже связаны между собой, эта связь будет использована автоматически.
Для указания связей необходимо произвести следующие действия:
- Удерживать левую кнопку мыши у того поля, которое необходимо связать со второй таблицей.
- Продолжая удерживать левую кнопку мыши, переместить курсор к следующей таблице на поле “в клетку”.
- Отпустить левую кнопку мыши, когда поле, которое необходимо связать, будет выделено цветом. Образуется связь. Теперь, если щёлкнуть по стрелке, то она, и назания полей, которые она связывает, выделятся цветом.
Можно отредактировать куб, редактируя SQL-запрос напрямую. Для этого необходимо перейти из вкладки tables (1) во вкладку SQL (2).
В открывшейся вкладке вы увидите сгенерированный SQL-запрос. В него можно внести изменения. Результат правок отразится на формируемом кубе, если нажать кнопку “Выполнить” в нижней части экрана.
Клик по кнопке “Выполнить” переводит работу над кубом в SQL-режим. После этого таблицы на листе в клеточку пропадут и работу можно будет продолжить только в SQL-режиме.
Куб можно построить на базе любого SQL запроса, не обязательно связвать таблицы в визуальном представлении
Имеется возможность построить куб на основе вызова UDF (used-defined function), которые заранее созданы внутри СУБД, используемой в Источнике данных. См. описание в Приложении
Для того, чтобы увидеть таблицу в процессе редактирования, можно воспользоваться режимом предпросмотра. Он включается кликом по радио-баттону в правой верхней части окна.
Для удобства тип данных date выделяется зелёным цветом, а intenger - фиолетовым. Таблицу можно отсортировать по любому из показателей, для этого достаточно кликнуть на кнопку сортировки у нужного показателя в шапке таблицы.
Каждую отдельную строку можно рассмотреть подробнее. Это особенно удобно, если она слишком длинная и не помещается на экран целиком. Чтобы увидеть все данные, нужно кликнуть правой кнопкой мыши по пространству правее номера строки, а потом по появившейся там кнопке переворота.
Чтобы выйти обратно в окно предпросмотра, кликните по кнопке “Назад” над таблицей.
По умолчанию окно предпросмотра открывается в нижней половине экрана. Однако, его можно переместить в правую половину экрана с помощью кнопки или развернуть на весь экран, кликнув по кнопке .
Предпросмотр, открытый на весь экран, удобен, если нужно рассмотреть таблицу с большим количеством строк. Их число можно отрегулировать, указав нужное количество строк в окне над таблицей и нажав клавишу Enter.
После указания связей всех таблиц на поле “в клетку” кнопка “Вперёд” в правом верхнем углу станет активной.
На втором шаге создания куба вы можете проверить все параметры создаваемого куба. Например, прописать заголовки для полей так, как они будут отображаться в Luxms BI при использовании данного куба. Для этого в столбце “Имя” выделите необходимую ячейку и введите новое название.
Также необходимо проверить корректность указанного типа в столбце “Тип (в BI системе )”. В случае расстановки некорректного типа нажмите на указанный тип в столбце “Тип” и выберите в выпадающем списке корректный вариант.
Столбик “Агрегационная функция” позволяет выбрать Фактом или Размерностью является то или иное поле, а также выбрать функции, которые к нему могут применяться.
Понять, к фактам или к размерностям вероятнее всего относится показатель, можно благодаря столбцу “Размах”. Алгоритм определяет соотношение количества уникальных значений в этом показателе к числу строк в таблице. Чем меньше показатель, тем больше вероятность, что этот показатель - факт.
По умолчанию все поля являются размерностями. Для корректной работы в Luxms BI вам необходимо указать, какие из полей будут фактами. Фактами обычно являются поля, к которым будет применена агрегационная функция для представления данных. Выбрать функцию можно кликнув по чек-боксу рядом с ней в выпадающем списке.
В случае, если у поля указан тип из списка “Размерности” (String, Period, Number) и выбраны агрегационные функции, то данное поле в конструкторе дэшей будет отображаться как в списке фактов, так и размерностей.
Luxms BI позволяет не только использовать предустановленные, но и писать собственные функции. Для перехода в этот режим кликните по символу справа в строке.
Тип aggfn используется в случае, если для поля необходимо прописать дополнительный подзапрос.
В открывшемся окне можно ввести новую функцию и сохранить её, щёлкнув по кнопке “Добавить”.
Удалить поле можно с помощью кнопки . Она расположена рядом с кнопкой перехода к агрегационной функции.
На этом этапе создания куба в него можно добавить столбец, который был в источнике, но не попал в куб. Такое может произойти, если тип столбца не был определён (например, данные в нём были в формате json), или если столбец был удалён в процессе работы над кубом. Чтобы перейти в соответствующее окно, кликните по кнопке “Добавить столбец”.
В окне “Добавить столбец” выберите поле, которое хотите добавить.
Также можно изменить название, тип и агрегационную функцию поля.
Добавить столбец можно не только из источника, но и написав SQL-выражение. Для этого нужно перейти во вкладку “Формула”. Ввести новую формулу, название и id поля для него, установить тип и агрегационную функцию.
Созданный с помощью SQL запрос нельзя использовать в расчётах, поскольку он не попадает в SQL-запрос куба.
Чтобы сохранить новый столбец в кубе, нужно нажать кнопку “Добавить”.
После указания типов для всех полей нажмите кнопку “Сохранить”.
В открывшемся всплывающем окне:
- Введите Название и ID куба либо воспользуйтесь автоматически сгенерированным вариантом. Важно помнить, что после создания ID куба не может быть изменено.
- Выберите тип куба: глобальный или локальный. Если вы выбрали локальный куб, укажите, для какого атласа он будет использоваться.
- Нажмите кнопку “Сохранить”.
После сохранения куб будет представлен в таблице созданных кубов.
Редактирование куба
Для редактирования куба кликните на кнопку “Редактировать”.
На экране отобразится окно редактирования созданного куба.
В блоке “Название и ID столбца” вы можете отредактировать заголовки для полей, как они будут отображаться в Luxms BI при использовании данного куба. Для этого дважды нажмите на необходимое для редактирования поле и введите новое название:
В случае необходимости указания подзапроса для конкретного поля введите необходимый запрос в поле SQL:
В поле config можно отредактировать конфиг куба. Для этого необходимо прописать в окне defaultValue: <значение>
. Каждое подобное выражение действует для отдельного столбца и позволяет определить фильтр, в соответствии с которым будут отображаться данные:
Если столбец типа “Период”, то в поле конфиг появится третья кнопка “Календарь”. С ее помощью можно задать динамическое значение по умолчанию.
В блоке “Тип столбца” вы можете поменять тип для данного поля в Luxms BI:
В случае необходимости вы можете подключить к кубу справочник. Подробнее об этом в подразделе “Справочник”.
Также указать или скрыть возможные агрегационные функции для построения данных:
В случае необходимости удаления поля нажмите “Удалить столбец” и подтвердите действие во всплывающем окне:
Для добавления нового поля в куб, нажмите кнопку “+ Добавить столбец”.
В открывшемся окне введите ID и название столбца, сохраните, кликнув по кнопке “Добавить”.
Заполните блоки, описанные выше, в разделе “Создание куба”.
Для редактирования названия куба введите новое название в поле “Название”.
Редактирование SQL-запроса куба происходит в одноимённой вкладке “SQL”. Здесь можно, например, отфильтровать данные. Подробнее об этом рассказано в разделе Фильтрация данных в запросах.
Редактирование конфигурации куба производится во вкладке “Config”.
После редактирования куба нажмите кнопку “Сохранить изменения”.
Клонирование куба
В Luxms BI есть возможность клонировать кубы. Для этого достаточно перейти во вкладку “Кубы” и кликнуть по кнопке клонировать.
В открывшемся окне можно выбрать название (1) и ID (2) будущего клонированного куба. Определить его тип (3): глобальный или локальный. Если выбран пункт “Локальный”, то в выпадающем списке снизу (4) необходимо выбрать нужное расположение куба. Для завершения процесса клонирования достаточно кликнуть по активировавшейся кнопке “Клонировать” (5) в нижнем правом углу окна.
В результате клон куба появится ниже в списке. Название куба-клона будет начинаться со слова copy
. Его можно будет редактировать независимо от первоначального куба.
Справочники
Справочники дополнительные кубы, облегчающие работу с основными кубами. Например, длинные топонимы из основной таблицы можно заменить короткими id топонима из связанного с ней справочника.
Справочник создаётся как отдельный куб. Потом его можно привязать к основному кубу с помощью добавления в config размерности объекта members
.
Ниже представлен пример использования:
"members": {
"default": {
"sort": [
"name"
],
"with": "luxmsbi.clear_custom_d_manufacturer_t",
"columns": [
"id_m:id",
"name:title"
],
"distinct": false
}
},
где
- sort - сортировка по полям, перечисленным в массиве;
- with - указания куба-справочника;
- columns - указание соответствия id (id_m) показателя и наименования (name) в справочнике. Отметим, id и title - это фиксированные алиасы, которые используются для указания первичного ключа и значения, которое будет подставляться вместо него в итоговую таблицу;
- distinct - выборка только из уникальных значений (true/false).
Один куб может ссылаться на несколько справочников. Для этого достаточно добавить соответствующие объекты members
в нужные размерности. Важно, что типы данных в столбцах, по которым объединяются кубы, должны совпадать.
Для подключения справочника вы также можете использовать поле для ввода SQL и подключить справочник через SQL-запрос
Фильтрация данных в запросах
Фильтрацию данных в запросах можно настроить несколькими способами.
1) Один фильтр добавляется с помощью следующей записи: ${filters(фильтр_1)}
.
Вместо “фильтр_1” в поле можно поставить, например, название поля, по которому необходимо фильтровать.
2) Добавить несколько фильтров можно двумя способами. Первая возможная конструкция выглядит так: ${filters(фильтр_1)} and ${filters(фильтр_2)}
, а вторая - так: ${filters(фильтр_1,фильтр_2)}
. Оба выражения взаимозаменяемы и имеют одинаковый результат.
3) В некоторых случаях бывает удобнее указать те фильтры, которые необходимо исключить из фильтрации. Для этого в SQL-запросе нужно указать ${filters(except(фильтр_1))}
.
4) С помощью фильтров можно настроить даже доступ пользователей к запросу прямо внутри него. Для этого нужно воспользоваться следующей конструкцией ${access_filters()}
. Отметим, что всю инфомацию о правах доступа пользователя конструкция получает из служебных таблиц, поэтому никаких дополнительных параметров указывать не требуется.
В случае, если в конструкции {filters()} не указано параметров, права доступа подтягиваются автоматически.
Важно помнить, что для корректной работы фильтров необходимо в config куба указать поле{"is_template": 1}
. Оно включает применение фильтров в запросе.
Ещё одно важное поле в config куба {"skip_where": 1}
. Оно отключает вторичное применение фильтров поверх запроса (применяется в случае, если все необходимые фильтры уже были прописаны в SQL запросе). Это удобно, если в результате фильтрации из таблицы пропадают столбцы, по которым должна проходить фильтрация.