Однако российский рынок аналитических систем демонстрирует активный рост — всё больше компаний рассматривают переход на отечественные BI-платформы. В ходе исследования была детально изучена платформа Alpha BI. Этот инструмент объединяет возможности создания OLAP-кубов, генерации интерактивной отчетности и множество других функций для работы с данными. В данной статье основное внимание уделено методике миграции информационных массивов в экосистему Alpha BI посредством ETL-процессов.
Прямое использование данных источника без ETL доступно для ограниченного набора DWH (PostgreSQL, Oracle, ClickHouse).В связи с этим, перенос данных посредством ETL-процессов является приоритетным способом формирования источника данных для последующих работ в системе Alpha BI. Рассмотрим пример создания ETL-процесса загрузки справочника регионов. В качестве основного подключения в примере используется подключение к MS SQL Server с наименованием «TO1».
Для начала необходимо создать подключение к источнику. Для этого:
Перейдите в раздел «Система»
Выберите пункт «Администрирование»
Выберите подпункт «Соединения»
Нажмите кнопку «Создать»
В появившемся окне необходимо заполнить данные подключения к вашей БД.
В поле «Наименование» необходимо указать то наименование, под которым будет отображаться соединение в AlphaBI. Остальные данные аналогичны обычным данным подключения к вашему DWH.
После создания подключения, перейдем к созданию ETL-процессов. Для этого:
Выберите пункт «ETL»
Нажмите «Создать» -> «Процесс ETL»
Необходимо задать процессу код (идентификатор процесса) и наименование, а затем нажать «Сохранить изменения».
Разработанный ETL-процесс представляет собой алгоритм действий в виде блок-схемы. Добавим первый элемент, который будет считывать данные из источника.
Для этого нажмите «Добавить» -> «Входные данные» -> «SQL запрос к базе данных».
После этого автоматически откроется панель свойств созданного элемента.
Наименование (1) можно оставить стандартным. (В случае, если вы планируете извлекать данные из нескольких источников/таблиц внутри одно ETL, то рекомендуется называть блоки так, чтобы название давало понимание того, что происходит в блоке).
В соединении (2) по умолчанию выбрано «Rdbms». Это соединение ко внутреннему Postgre Alpha-BI. Для всех элементов, кроме запросов к источникам, необходимо оставлять именно это соединение. В данном случае выберите ранее созданное вами соединение.
(Максимальное время выполнения запроса можно оставить по умолчанию, структуру данных мы автоматически определим из запроса).
Перейдем к полю «Запрос» (3). В него необходимо добавить код SELECT-запроса SQL. Код необходимо писать так, как если бы вы делали запрос в своем источнике. Проверить правильность ожидаемого результата можно с помощью кнопки «Предпросмотр» (4), после чего необходимо нажать «Автозаполнение полей». В результате структура данных обновится в соответствии с запросом.
Для корректной загрузки данных в целевую сущность (в Alpha-BI это бизнес-объекты), необходимо добавить элемент обработки данных. Добавим элемент «Калькулятор». (Обработка необходима, если есть потребность в дополнительном обслуживании и обработке данных. В примере данные обработаны на стороне DWH)
Теперь необходимо связать два элемента. Для этого необходимо зажать указатель мыши на точке снизу элемента извлечения и протянуть его к точке сверху элемента обработки.
Далее, в свойствах элемента «Калькулятор» нажмите «Заполнить поля» и сохраните ETL-процесс. После этого синхронизируйте схему.
Рекомендуем синхронизировать схему после каждого создания/обновления/удаления всех видов сущностей и объектов.
Перейдем к созданию бизнес-объекта под справочник. Для этого:
Выберите пункт «Типы бизнес-объектов»
Нажмите на «Каталог»
Нажмите кнопку «Создать» -> «Группа»
Этот пункт опционален, но рекомендуем создать хотя бы минимальную структуру хранения бизнес-объектов.
Нажмите на созданную директорию и создайте тип бизнес-объекта по аналогии с группой. Автоматически откроется окно свойств типа бизнес-объекта. Задайте код типа объекта и наименование. Код будет присвоен экземпляру типа объекта, поэтому можно задать код, описывающий смысл сущности (например, dim_Regions).
ВАЖНО: Код, в отличии от наименования, нельзя изменить после первого сохранения.
Флаг «Показывать в меню "Реестры"» можно не изменять, его можно переключить при необходимости уже после создания типа бизнес-объектов.
Бизнес-объект только что сохраненного типа создается автоматически. Зайдите в режим редактирования объекта.
Поля объекта можно создать вручную, исходя из необходимой структуры, однако в нашем случае есть удобный инструмент для автоматизации данного процесса.
Нажмите на директорию «Поля»(1), элемент «Волшебная палочка»(2) станет активным. Нажмите на него, а потом выберите «Из полей блока ETL-процесса»(3).
В появившемся окне нажмите на троеточие и выберите созданный ранее ETL-процесс. В результате у вас отобразятся поля, которые извлекаются из DWH с помощью ETL-процесса. (Возможно появление внутреннего поля entityId. Если в вашем справочнике уже есть уникальное поле для идентификации, то необходимости в нем нет). Нажмите применить и сохраните изменения в бизнес-объекте.
Далее необходимо выделить созданный тип бизнес-объекта и нажать «Опубликовать», после чего синхронизировать схему.
Вернемся к разработанному ранее ETL-процессу. Необходимо добавить в него еще один элемент: запись в бизнес-объект данных. Для этого нажмите «Добавить» -> «Запись» -> «Создание бизнес-объектов».
Создайте связь между объектами «Калькулятор» и «Создание бизнес-объектов» по аналогии со связью, созданной ранее.
Зайдите в свойства блока «Создание бизнес-объектов». Интерфейс во многом дублирует пункты из предыдущих разделов. Необходимо задать тип бизнес-объекта, нажав на троеточие и выбрав ранее созданный тип бизнес-объекта. Далее нажмите «Автозаполнение структуры данных».
Если данных в источнике слишком много, выберите пункт «Пакетная вставка», после чего определите количество строк в пакете.
Если данные необходимо всегда полностью обновлять, то нажмите «Очищать реестр перед загрузкой».
ВАЖНО: если данный пункт не выбран, данные будут добавляться в целевой бизнес-объект после каждого запуска ETL.
Сохраните изменения ETL-процесса. Теперь можно загрузить данные в ручном режиме. Для этого нажмите «Запустить».
ETL-процессы автоматически логгируются, что позволяет наблюдать за выгрузкой данных и отслеживанием возникших ошибок.