Множественный импорт файлов

Аналитики часто сталкиваются с задачей объединения данных из разных таблиц перед началом работы. При импорте данных в Loginom из базы данных это легко сделать с помощью одного SQL-запроса. Но что делать, если необходимые данные хранятся, например, в отдельных csv-файлах? Настройка узлов импорта под каждый файл может занять длительное время. В данном примере показано, как легко можно решить эту проблему.

Запустить демо

Установить локально

Требования

Для работы алгоритма необходимо, чтобы все импортируемые файлы находились в одной папке, а так же имели единый формат и структуру.

Описание алгоритма

1.Генерирование списка путей к импортируемым файлам

На первом шаге создается список путей к файлам, которые нужно импортировать.

а) Установка значений переменных

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

Имя Метка Описание
 folder Путь к папке Например, ./../Sales/2021 (относительный путь) или C:\Data\Sales\2021 (абсолютный)
 mask Расширение файлов Расширение, по которому идёт отбор файлов
б) Генерирование таблицы со списком путей к файлам

Для генерирования списка файлов используется библиотека Loginom FileApi Kit.

Компонент Список файлов формирует таблицу.

С помощью узла Слияние внутренним соединением формируется список файлов с расширением, указанным в переменной Расширение файла.

2. Импорт и объединение файлов

Процесс импорта и объединения по готовому списку файлов происходит в подмодели Множественный импорт.

а) Настройка входного поля

В настройках входного порта подмодели Множественный импорт преднастроено поле Путь к файлу, которое используется в дальнейшем для импорта файлов.

б) Импорт файла

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

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

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

Далее эта подмодель будет выполняться в Цикле, что и обеспечит возможность подключить все файлы из списка.

в) Групповая обработка в цикле

Чтобы многократно выполнить подмодель Импорт файла нужно поместить её в цикл.

На первом шаге настройки узла Цикл подмодель Импорт файла выбрана в качестве объекта повторения. На втором шаге установлены следующие параметры:

  • Вид цикла — Групповая обработка
  • Вид групповой обработки — Разбиение по уникальным значениям полей
  • Входной порт — Список файлов
  • выставлен флаг рядом с полем Путь к файлу, по которому выполняется групповая обработка
г) Получение результата

Если перейти на первый уровень сценария и выполнить подмодель Множественный импорт, то на выходе мы получим объединённый набор данных из наших файлов. Набор будет дополнен двумя колонками:

  • Идентификатор итерации (отображение идентификатора можно задать в настройках Цикла)
  • Имя файла

Создание производного компонента

Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно

Скачать демопример

Минимальные требования к системе:

  • Операционная система: Windows 10 и выше
  • CPU x64: 2 core 1
  • Оперативная память: 4 GB
  • Жесткий диск: 10 GB

1 Поддерживается работа на x64 процессорах Intel Core, AMD FX и более новых, содержащих инструкции SSE4.2 (POPCNT, LZCNT).