Настройка файлового адаптера
Обзор
Файловый адаптер Accelera – это модуль для обработки и парсинга CSV и Excel файлов, в котором каждая строка в файле принимается за событие.
Требования к файлу:
- CSV или Excel файл;
- Наличие колонки с идентификатором события;
- Файл должен быть доступен для чтения пользователем, от имени которого запускается процесс;
- Если выбран парсер XLSX, то объем файла не должен превышать 1 GB.
Пример файла CSV

Пример файла Excel

Алгоритм работы
При запуске файловый адаптер начинает сканировать заданную директорию каждые 5 секунд по указанной маске файлов.
При наличие файлов ассистент начинает обрабатывать каждую строку, превращая их в событие.
После окончания обработки он перемещает обработанный файл в [исходная директория файлов]/processed.
Факт обработки файлов регистрируется по названию до момента перезапуска. Например, если был обработан файл data.csv, то он отмечен обработанным и пока адаптер активен, то этот файл будет игнорироваться. При перезапуске адаптера данный файл перестанет считаться обработанным и будет взят в работу, если окажется в исходной директории файлов.
Конфигурация
Распакуйте образы приложения из файла flows_file_adapter_{your_version}.tar.gz следующей командой:
docker load < flows_file_adapter_{your_version}.tar.gzСоздайте файл docker-compose.yaml со следующим содержимым:
version: '3'
services:
file_adapter:
image: devcubesolutions/flows_file_adapter:latest
container_name: file_adapter
restart: unless-stopped
network_mode: "host"
volumes:
- type: bind
source: /opt/flows-file-adapter/files
target: /usr/src/files
environment:
- BROKER_CONNECTION=amqp://user:password@broker_host:5672
- PARSER_TYPE=XLSX
- SEPARATOR=;
- FILE_MASK=*.xlsx
- ID_FIELD=id
- EVENT_NAME=card_trx
- EVENT_FIELD=name
- FLOW_ID=
- FLOW_ID_FIELD=email
- EVENT_CONTEXT=id,first_name,last_name,email,gender,phoneОписание параметров
image
Имя образа, который был распакован на предыдущем шаге, можно узнать командой docker images
container_name
Имя контейнера при запуске рекомендуется оставить без изменения
restart
Политика рестарта процесса при остановке или ошибке, по умолчанию 'unless-stopped'
volumes
Создается том диска для контейнера, чтобы использовать локальные файлы в контейнере Docker. Поле target оставьте без изменений, в поле source впишите папку, откуда нужно получить файлы для обработки.
Environment
BROKER_CONNECTION - адрес подключения к RabbitMQ.
PARSER_TYPE - укажите XSLX для Excel-файлов или CSV для csv-файлов. Принимаются только эти 2 значения.
SEPARATOR - если выбран PARSER_TYPE=CSV укажите символ-разделитель для парамтров строки. Пример - ; , - .
FILE_MASK - маска файла, по которой происходит сканирование директории. Файлы, которые проходят по маске, будут обработаны. Например, для маски *.xslx будут обработаны файлы test.xlsx, clients.xlsx, но файл data.xlx обработан не будет.
ID_FIELD - название поля из файла, откуда будет получен id события. Название должно точно совпадать с названием в файле, включая регистр.
EVENT_NAME - название события, которое будет отправлено в Flow Engine. Применяется для всех событий из файла. Если нужно брать название события из файла, то оставьте пустым.
EVENT_FIELD - название поля из файла, откуда будет получено название события. Название должно точно совпадать с названием в файле, включая регистр. Если вы указали EVENT_NAME, оставьте это поле пустым.
Если EVENT_NAME или EVENT_FIELD не заданы, то файлы будут игнорироваться.
FLOW_ID - ID сценария, куда будут отправлены события. Если нужно отправить события во все сценарии, оставьте это поле пустым.
FLOW_ID_FIELD - название поля из файла, откуда будет получен id сценария. Название должно точно совпадать с названием в файле, включая регистр. Если вы указали FLOW_ID, оставьте это поле пустым. Если нужно отправить события во все сценарии, оставьте это поле пустым.
EVENT_CONTEXT - перечислите через запятую поля, которые нужно объединить в контекст события. Название должно точно совпадать с названием в файле, включая регистр.
Запуск
Для запуска файлового адаптера используйте следующую команду:
docker-compose -f {путь к вашему docker-compose файлу} upПолучить доступ к логам и проверить работоспособность адаптера можно командой:
docker logs -f file_adapterОстановка
Для остановки адаптера используйте команду:
docker-compose -f {путь к вашему docker-compose файлу} down