Документация Accelera

Настройка файлового адаптера

Обзор

Файловый адаптер 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

На этой странице