Общие сведения

ETL (Extract, Transform, Load) - это процесс загрузки данных, включающий три основных этапа: извлечение (Extract) данных из различных источников, их преобразование (Transform) и загрузку (Load) очищенных данных в целевое хранилище данных.

Функциональность ETL позволяет:

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

Создание ETL-датасета

Интерфейс ETL

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


Интерфейс ETL


Окно ETL-интерфейса содержит следующие области:

  • Верхняя панель
    Содержит переключатель режимов импорта данных: 

    • Локальное подключение 

    • Прямое подключение

  • Область источников данных 
    Отображает перечень всех доступных пользователю источников данных.

  • Область таблиц
    Отображает список таблиц выбранного источника.

  • Область трансформации
    Используется для настройки логики объединения таблиц (визуально или через SQL).

    • Область управления колонками
      Отображает перечень всех колонок выбранных таблиц и позволяет управлять ими.

    • Область предпросмотра данных
      Предоставляет возможность свернуть/развернуть предпросмотр итогового результата объединения.

  • Нижняя панель
    Содержит кнопки "Сохранить" и "Отменить".
  • Кнопка Информация
    При нажатии на кнопку в новой вкладке браузера открывается страница с информацией по работе с интерфейсом.


Информационная страница по ETL



Интерфейс и последовательность шагов для создания ETL-датасета аналогичны в обоих режимах загрузки данных (Локальное подключение/Прямое подключение).

Этап 1. Выбор режима 

Переключатель режимов импорта данных в правом верхнем углу позволяет переключаться в режимы: 

  • Локальное подключение (Import) – загрузка таблиц в локальное хранилище для последующей работы (используется по умолчанию). В режиме локального подключения разрешено добавление таблиц из нескольких источников одновременно в область трансформации.
  • Прямое подключение (Direct) – работа с таблицами непосредственно из источника, без предварительной загрузки в хранилище. В режиме прямого подключения разрешено добавление таблиц только из одного источника.

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


Переключатель режимов импорта данных в состоянии по умолчанию

Этап 2. Выбор источника

Источники данных отображаются в области источников данных в левом верхнему углу интерфейса. По умолчанию отображается первым и выбран источник "ХД Polymatica" (локальное хранилище данных). Другие источники данных в списке упорядочены по дате создания. 


Обратите внимание


В области источников данных доступен поиск по наименованию источника по нажатию на иконку лупы в правом верхнем углу области источников.  

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


Поиск по названию, выбор источника и отображение его таблиц

Этап 3. Выбор таблиц

Таблицы в списке упорядочиваются по дате создания (сверху новые). В области таблиц данных также доступен поиск по наименованию таблицы по нажатию на иконку лупы в правом верхнем углу области таблиц. 

Для выбора таблицы необходимо перетащить ее методом drag-n-drop в область трансформации. При этом таблица автоматически получает алиас (t1, t2 и т.д. соответственно данному формату).

Возможности выноса таблиц зависят от режима подключения:

  • В режиме прямого подключения после выноса таблицы источника все остальные источники блокируются. Доступна трансформация только таблиц выбранного источника.

 

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


Добавление таблицы из источника PostgreSQL к таблице из источника MSSQL в режиме локального подключения

Этап 4. Настройка колонок

Для каждой таблицы, вынесенной в область трансформации, отображается список ее колонок в области колонок. На этом этапе можно управлять колонками для результирующего датасета:

  • Изменять порядок добавления колонок в датасет. Для этого надо поменять местами таблицы в области трансформации методом drag-n-drop.
  • Исключать колонки из результирующего датасета. Рядом с каждой колонкой отображается чек-бокс - для исключения колонки из датасета его надо снять. Для удобства поиска колонок доступен поиск по наименованию таблицы по нажатию на иконку лупы в правом верхнем углу области колонок.
  • Переименовывать колонки. Двойное нажатие на название колонки позволяет переименовать ее. Для сохранения нового названия необходимо нажать , для возврата предыдущего - .


Таблицы поменяны местами, список колонок перестроился. Часть колонок исключена из будущего датасета. Колонки "Товар.Категория" и "Карта.Номер" переименованы в "Категория товара" и "Номер карты"

Этап 5. Настройка объединения 

Когда в область трансформации вынесено минимум две таблицы, становится доступным объединение таблиц двумя способами:

  • При помощи визуального инструмента (No-code) - по умолчанию;
  • При помощи SQL-запроса.

No-code


Настройка объединения при помощи визуального инструмента

Для объединения таблиц средствами No-code на вкладке "Настройка" заполните следующие обязательные поля:

  • Таблица 1/Таблица 2 - выберите в раскрывающемся списке таблицы, объединяемые между собой;
  • Тип объединения - LEFT JOIN (по умолчанию, предзаполнен), RIGHT JOIN, INNER JOIN, FULL JOIN.

  • Колонка - Таблица 1/Колонка - Таблица 2 - колонка объединения, присутствующая в обеих таблицах и содержащая одинаковые данные. Колонка может быть исключена из таблицы путем снятия чек-бокса, но она все равно будет доступна в поле для объединения (см. пример на рисунке с колонкой "Магазин").

Кнопка позволяет добавить новое условие объединения по еще одной колонке. Условия объединения между собой объединяются логическим оператором AND (поддержка других операторов отсутствует). Удалить условие можно кнопкой . Самое первое условие не может быть удалено.

Если в область трансформации вынесено более 2 таблиц, система создает несколько блоков объединения подряд. Каждый блок связан с двумя таблицами.

Возможно многократное использование одной и той же таблицы в разных блоках - в качестве Таблицы 1 или Таблицы 2.

Кнопка "Очистить" позволяет сбросить все настройки объединения.

SQL


Выборка и объединение тех же данных при помощи SQL


Для объединения таблиц средствами SQL перейдите на вкладку "SQL". При переключении режима подтвердите сброс настроек:

Подтверждение сброса настроек при смене режима

В поле "SQL-запрос" введите запрос за данными источника/источников.

  • В режиме локального подключения используется синтаксис PostgreSQL или ClickHouse.
  • В режиме прямого подключения используется синтаксис соответствующего источника данных.

В SQL-запросе разрешается использовать только те таблицы, которые были добавлены в область трансформации. Поддерживаются SQL-конструкции: JOIN, WHERE, GROUP BY, HAVING, CASE, ORDER BY и др. При создании SQL-запроса можно использовать автоматически присвоенные таблицам алиасы (t1, t2, t3 и т. д.)

Этап 6. Создание расчетных колонок (опционально)

Создание расчётной колонки для ETL-датасета:

  • недоступно, если не заполнено объединение (не выбраны ключевые колонки);
  • в режиме локального подключения можно создать как записанные, так и незаписанные расчётные колонки;
  • в режиме прямого подключения доступно создание только незаписанных расчётных колонок.

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


Добавление расчетной колонки в ETL-датасет. Добавленная колонка отображается вверху списка в области колонок


В верхней части списка колонок отображается отдельная группа «Расчетные», в которую вынесены:

  • все расчетные колонки выбранных пользователем таблиц;
  • расчетные колонки, созданные в рамках текущего ETL-интерфейса.

В данную группу будет добавлена новая колонка.


Расчетные колонки из датасетов:

  • нельзя редактировать;
  • нельзя удалить;

  • могут быть использованы в расчетах, в SQL;

  • могут быть включены в результирующий датасет через чекбокс.

Расчетные колонки, созданные в ETL-интерфейсе:

  • могут быть отредактированы (имя, формула, тип);
  • могут быть удалены пользователем;

  • доступны для повторного использования в других расчетах; 

  • могут быть использованы в SQL-запросах.

Незаписанные расчётные колонки, созданные в рамках исходных датасетов:

  • отображаются как неактивные (снятый чекбокс, визуально затемнены);

  • не могут быть использованы для объединения (в блоках Join);

  • неактивны для добавления в выражения расчётных колонок ETL-датасета (не перетаскиваются в область переменных).

Этап 7. Предпросмотр данных 

Для предпросмотра ETL-датасета необходимо нажать на кнопку "Выполнить запрос".  

Если настройки объединения корректны, произойдет слияние датасетов, и в области предпросмотра отобразятся первые 15 строк готового датасета с учетом настроек колонок (загружены при этом будут все).

Чтобы просмотреть результирующие данные, необходимо развернуть панель "Предпросмотр данных". 


Предпросмотр результирующих данных

При необходимости выполнение запроса можно принудительно прервать кнопкой "Остановить".


Кнопка для остановки выполнения запроса

Этап 8. Сохранение датасета

Для сохранения датасета необходимо, чтобы запрос за данными был успешно выполнен. После этого можно нажать на кнопку "Сохранить". Отобразится окно сохранения датасета: 



Окно сохранения датасета


В окне необходимо заполнить и настроить следующее:

  • Название - имя нового датасета (обязательно);
  • Описание - произвольное описание датасета для других пользователей (не обязательно);
  • Права доступа - для настройки см. Права доступа к сущности системы (не обязательно).

Для сохранения датасета необходимо нажать на кнопку "Создать".  Для возврата к настройкам датасета необходимо нажать "Назад". Для отмены создания датасета нажмите на кнопку или нажмите в любом месте вне области окна.

В текущей версии программы имеют место следующие ограничения:

  • При изменении структуры ETL-датасета на основе двух и более таблиц нельзя перейти к созданию расчетной колонки. Чтобы создать расчетную колонку, рекомендуется сменить выбранную колонку объединения на другую, а затем снова сменить ее на колонку, выбранную изначально. 
  • В окне изменения структуры ETL-датасета отображаются незаписанные расчетные колонки из исходных таблиц, при этом они работают некорректно. Не рекомендуется добавлять их в датасет. 
  • Возникает ошибка при смене типа колонки во время редактирования ETL-датасета. Рекомендуется менять тип колонки через изменение структуры датасета.
  • Невозможно создать записанную расчетную колонку в ETL-датасете через редактирование датасета. Рекомендуется выполнять это через изменение структуры датасета.
  • Возникают ошибки при выполнении SQL-запроса при создании расчетной колонки во время редактирования ETL-датасета через изменение его структуры. 


  • Нет меток