Импорт из баз данных на примере SQLite

Импорт из баз данных на примере SQLite

А вы знаете, что мы загрузили не всю информацию по продажам? Оказывается, в csv-файле были архивные сведения. А все актуальное теперь ведется в новой классной базе данных!

Это типичная ситуация — консолидация данных чаще всего предполагает загрузку информации из разнородных источников: файлы, базы данных, учетные системы, веб-сервисы. И Loginom предоставляет инструменты для объединения этих данных в один массив. Давайте разбираться, как платформа позволяет работать с базой данных.

Подготовка к занятию

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

zipДанные для практики. День 4.zip

Важно! Если вы не сделали практику в теме «Импорт данных из Excel и CSV», то предварительно требуется открыть решение задания предыдущего дня, скачав его ниже.

zipРешение практического задания. День 3.lgp

Импорт из базы данных

Возможно, вы уже заметили наличие в разделе Импорт узла База данных. Перетащите его в сценарий.

Импорт из базы данных отличается от работы с файлами. На узле имеется обязательный входной порт непонятной формы. Это порт настроек подключения, но откуда возьмутся эти настройки? Мы создадим свой узел подключения к БД.

Помните, говорилось что каждый модуль содержит в себе 3 раздела: Сценарий, Подключения и Компоненты? Вот в раздел Подключения и надо попасть.

Проще всего это сделать через панель навигации, щелкнув по стрелочке у названия модуля.

Раздел подключений содержит список доступных драйверов для коннекта к базам и другим источникам. Нас интересует база данныхSQLite. Ее нужно перетащить в рабочую область.

В открывшемся окне настроек надо указать путь до файла базы в папке Data и нажать Тестировать. Должно появиться сообщение об успешном подключении. Все прочие настройки можно оставить как есть.

В случае коннекта к реальным базам скорее всего придется указывать реквизиты подключения и пароли. Если, конечно, рабочая база компании не SQLite, которая хранится на локальном компьютере без пароля ;)

Интересный факт. В Loginom есть встроенная СУБД SQLite. Это значит, что вы можете средствами Loginom создавать SQLite-базы, а также использовать любые поддерживаемые этой базой SQL-запросы.

Обычно возможности выполнения запросов к базам из внешних источников определяются особенностями драйвера (коннектора), через который идет подключение. Скажем, подключение через ODBC к MSSQL может оказаться функциональнее чем «родной» коннектор аналитической системы. Например, «родной» коннектор может разрешать запросы только типа SELECT, в то время как ODBC — INSERT, TRUNCATE и множество других функций.

И в этом плане коннект между Loginom и SQLite — самый что ни на есть «родной». Он не требует установки дополнительного клиента или драйвера. Это значит, что в сценариях при необходимости можно использовать все операторы SQL в рамках возможностей SQLite без установки сторонней СУБД. Для повышения быстродействия SQLite-база может быть развернута в оперативной памяти.

После настройки подключения нужно вернуться в сценарий через панель навигации.

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

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

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

Интересный факт. Загрузку данных и другие операции с базой можно выполнять не через выбор таблицы и списка полей, а посредством SQL-запроса. В этот запрос можно подставлять значения, которые берутся из списка переменных, приходящих на вход узлу импорта из БД.

Активируем импорт из БД и получаем на выходе таблицу с данными.

Теперь предстоит соединить их с данными из файла.

Объединение таблиц

Набор полей в данных из БД, их типы и содержание совпадают с таблицей из csv-файла (нам очень повезло ;)). Объединение однородных таблиц делается с помощью узла Объединение из группы узлов Трансформация. Было бы логично сначала сформировать объединенную таблицу продаж, а потом соединить ее со справочником.

Для этого надо добавить узел Объединение в сценарий, подключить в первый порт таблицу продаж из csv-файла, а во второй порт — таблицу продаж из БД.

Обратите внимание, хотя выход из cvs-импорта продаж подключился к узлу Объединение, его связь с узлом Слияние не пропала. Один выход может быть соединен с несколькими входами, но один вход соединяется только с одним выходом. Так можно использовать один набор данных в нескольких ветках сценария.

На узле Объединение под вторым портом есть знак +. Это значит, что данный обработчик позволяет добавлять опциональные порты для множественного входа данных. Таким образом, в одном узле можно объединить больше 2-х таблиц.

Зайдите в настройки узла Объединение. Здесь можно сопоставить для таблицы из первого входа наименования полей из остальных входов. Можно отметить галочку в шапке списка, чтобы Loginom нашел совпадения автоматически. Либо можно задавать сопоставление вручную.

Так или иначе, результат должен получиться вот таким:

В первый порт подавалась таблица из csv-файла с размеченными метками полей на русском языке, поэтому именно так поля и будут называться в итоговой объединенной таблице.

Затем нужно подключить выходной порт Объединения к первому порту первого узла Слияние, заменив таким образом поток данных из файла на объединенный поток данных из файла и БД.

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

Активируйте весь сценарий. Откройте созданный в предыдущем занятии визуализатор. Вы должны увидеть, что добавились месяцы из 2022 года.

Чтобы пользователи получили как можно больше практических кейсов работы, в Loginom существуют демопримеры. Если вы — продвинутый аналитик, смело листайте материалы, там много необычных лайфхаков и тонкостей работы с платформой. Если начинающий — welcome во вложенный блок каждого демопримера для уточнения деталей. Это позволяет пользователям рациональнее воспринимать информацию, исходя из уровня знаний каждого.

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

Также, дополнительно советуем ознакомиться со статьей «SQLite позволяет стать ближе к данным».