Множественный импорт файлов
Аналитики часто сталкиваются с задачей объединения данных из разных таблиц перед началом работы. При импорте данных в Loginom из базы данных это легко сделать с помощью одного SQL-запроса. Но что делать, если необходимые данные хранятся, например, в отдельных csv-файлах? Настройка узлов импорта под каждый файл может занять длительное время. В данном примере показано, как легко можно решить эту проблему.
Требования
Для работы алгоритма необходимо, чтобы все импортируемые файлы находились в одной папке, а так же имели единый формат и структуру.
Описание алгоритма
1.Генерирование списка путей к импортируемым файлам
На первом шаге создается список путей к файлам, которые нужно импортировать.
По умолчанию в сценарии импортируются файлы, поставляемые вместе с примером. Если необходимо импортировать другие файлы, то на входном порту переменных подмодели Список путей к файлам измените значения переменных Путь к папке и Расширение файлов.
Имя | Метка | Описание |
---|---|---|
Путь к папке | Например, ./../Sales/2021 (относительный путь) или C:\Data\Sales\2021 (абсолютный) |
|
Расширение файлов | Расширение, по которому идёт отбор файлов |
Для генерирования списка файлов используется библиотека 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).