2. Конфигурация CSV-uploader (application.yml)
Файл application.yml – основной конфигурационный файл модуля CSV-uploader, в котором задана логика и порядок
работы загрузчика, а также другие настройки необходимые для корректной работы адаптера.
2.1. Пример файла application.yml
http-server:
# Порт для старта веб сервера
port: ${HTTP_PORT:8080}
# Включить веб-сервер
enabled: ${HTTP_ENABLED:true}
file-size:
# Ограничение на размер оправляемого файла (мегабайты)
restriction: ${SEND_FILE_SIZE_RESTRICTION:1024}
logging.level:
root: info
ru.itone: debug
environment:
# Папка для ошибочных файлов
error-folder: ${ENVIRONMENT_ERROR_FOLDER:error}
prostore-rest-client:
persistence-datamart: ${PERSISTENCE_DATAMART:persistence} # датамарт, в котором будут располагаться таблицы с данными сервиса
datasource: ${PERSISTENCE_DATASOURCE:} # по умолчанию пусто, тогда берется единственный датасорс из настроек Простора
table-flk-journal: ${PERSISTENCE_FLK_JOURNAL_TABLE:csv_uploader_flk_journal} # таблица журнала ФЛК
table-upload-journal: ${PERSISTENCE_UPLOAD_JOURNAL_TABLE:csv_uploader_upload_journal} # таблица журнала загрузок
table-settings: ${PERSISTENCE_SETTINGS_TABLE:csv_uploader_settings} # таблица хранения настроек сервиса
storage-duration: 14d # продолжительность хранения данных в журналах
cleanup-interval: 10m # периодичность очистки данных из таблиц журналов
host: ${PS_HOST:localhost}
port: ${PS_PORT:9195}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:8}
validation:
enabled: ${VALIDATION_ENABLE:true}
rest-uploader-url: ${REST_UPLOADER_URL:http://localhost:8081}
upload:
# требуется токен для аутентификации на rest-uploader
jwt-auth: ${JWT_AUTH:false}
jwt-token: ${JWT_TOKEN:null}
# Настройки парсера csv файлов
csv-parser:
# Символ разделителя значений
separator: ${CSV_PARSER_SEPARATOR:;}
# Символ кавычки
quote-char: ${CSV_PARSER_QUOTE_CHAR:"}
# Символ экранирования значений
escape-char: ${CSV_PARSER_ESCAPE_CHAR:'}
# Настройка интерпретации значений как null. Допустимые значения:
# - EMPTY_SEPARATORS - пустое значение между двумя разделителями, например ;;
# - EMPTY_QUOTES - пустые кавычки, например ;"";
# - BOTH - оба варианта
# - NEITHER - никогда. Пустая строка всегда определяется как пустая строка
field-as-null: ${CSV_PARSER_FIELD_AS_NULL:EMPTY_SEPARATORS}
metrics:
port: ${METRICS_PORT:9837}
backup:
mode: ${BACKUP_MODE:rest} # kafka | rest
rest:
uri: ${BACKUP_URI:/backup}
backupTopic: ${BACKUP_TOPIC:adapter.backup}
statusTopic: ${STATUS_TOPIC:adapter.status}
kafka:
consumer:
property:
bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost}
group.id: ${CSV_UPLOADER_BACKUP_GROUP_ID:csv_uploader_adapter_command}
auto.offset.reset: latest
producer:
property:
bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost}
3. Параметры конфигурации
Настройка конфигурации CSV-uploader осуществляется путем редактирования параметров настроек в файле application.yml.
В файле конфигурации CSV-uploader могут быть настроены следующие секции:
http-server- настройки порта подключения;file-size- ограничение на размер отправляемого файла (мегабайты);logging.level- настройка сохранения лог-файла;environment- определяет папку для ошибочных файлов;prostore-rest-client- блок параметров конфигурирования взаимодействия с ProStore;validation- адрес подключения модуля REST-Uploader;upload- требование токена для аутентификации на REST-Uploader;csv-parser- настройка парсинга CSV;metrics- настройка получения метрик;backup- настройка бэкапирования модуля;
3.1. Секция http-server
Секция http-server предназначена для настройки порта и протокола передачи данных (одно из значений http или https).
Например:
http:
port: ${HTTP_PORT:8080}
enabled: ${HTTP_ENABLED:true}
Параметры конфигурации
port- порт для старта веб-сервера, напримерHTTP_PORT:8080;enabled- статус включения/отключения веб-сервера, напримерHTTP_ENABLED:true.
3.2. Секция file-size
Секция file-size отвечает за ограничение на размер отправляемого файла (указывется в мегабайтах).
file-size:
restriction: ${SEND_FILE_SIZE_RESTRICTION:1024}
Параметры конфигурации
restriction- ограничение на размер отправляемого файла, напримерSEND_FILE_SIZE_RESTRICTION:1024.
3.3. Секция logging.level
В секции logging.level настраиваются записи логирования.
Например:
logging.level:
root: info
ru.itone: debug
3.4. Секция environment
В секции environment указывается папка для ошибочных файлов.
Например:
environment:
error-folder: ${ENVIRONMENT_ERROR_FOLDER:error}
Параметры конфигурации
error-folder- папка для ошибочных файлов, напримерENVIRONMENT_ERROR_FOLDER:error.
3.5. Секция prostore-rest-client
В секции prostore-rest-client реализован блок параметров конфигурирования взаимодействия с ProStore.
Например:
prostore-rest-client:
persistence-datamart: ${PERSISTENCE_DATAMART:persistence}
datasource: ${PERSISTENCE_DATASOURCE:}
table-flk-journal: ${PERSISTENCE_FLK_JOURNAL_TABLE:csv_uploader_flk_journal}
table-upload-journal: ${PERSISTENCE_UPLOAD_JOURNAL_TABLE:csv_uploader_upload_journal}
table-settings: ${PERSISTENCE_SETTINGS_TABLE:csv_uploader_settings}
storage-duration: 14d
cleanup-interval: 10m
host: ${PS_HOST:localhost}
port: ${PS_PORT:9195}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:8}
Параметры настроек
persistence-datamart- датамарт, в котором будут располагаться таблицы с данными сервиса, напримерPERSISTENCE_DATAMART:persistence;datasource- по умолчанию пусто, берется единственный датасорс из настроек Prostore;table-flk-journal- таблица журнала ФЛК, напримерPERSISTENCE_FLK_JOURNAL_TABLE:csv_uploader_flk_journal;table-upload-journal- таблица журнала загрузок, напримерPERSISTENCE_UPLOAD_JOURNAL_TABLE:csv_uploader_upload_journal;table-settings- таблица хранения настроек сервиса, напримерPERSISTENCE_SETTINGS_TABLE:csv_uploader_settings;storage-duration- продолжительность хранения данных в журналах, например14d, указывается в днях;cleanup-interval- периодичность очистки данных из таблиц журналов, например10m, указывается в минутах;host- адрес Prostore, напримерPS_HOST:localhost;port- порт Prostore, напримерPS_PORT:9195;max-pool-size- максимальное число подключений к Prostore, напримерPS_MAX_POOL_SIZE:8.
3.6. Секция validation
В секции validation реализован механизм настройки валидации ФЛК.
Например:
validation:
enabled: ${VALIDATION_ENABLE:true}
rest-uploader-url: ${REST_UPLOADER_URL:http://localhost:8081}
Параметры конфигурации
enabled- подключение к сервису REST-Uploader для выполнения валидации, напримерVALIDATION_ENABLE:true;rest-uploader-url- URL к сервису REST-Uploader для выполнения валидации, например{REST_UPLOADER_URL:http://localhost:8081}.
3.7. Секция upload
В секции upload реализована настройка требования токена для аутентификации на REST-Uploader (если true, то при переключении на вкладку
Загрузка появляется модальное окно для задания токена в текстовом виде и кнопка Сохранить).
Например:
upload:
jwt-auth: ${JWT_AUTH:false}
jwt-token: ${JWT_TOKEN:null}
Параметры конфигурации
jwt-auth- требование токена для аутентификации на REST-Uploader у пользователя при отправке данных на загрузку из пользовательского интерфейса, например{JWT_AUTH:false};jwt-token- токен аутентификации REST-Uploader, используется для загрузки по расписанию в версии 2.0
3.8. Секция csv-parser
Внимание
При загрузке файлов с форматно-логическим контролем, важно, чтобы настройки секции csv-parser были одинаковыми в модулях CSV-Uploader(если используется его UI),REST-Uploader и DATA-Uploader.
Секция csv-parser - настройка парсинга CSV.
Например:
# Настройки парсера csv файлов
csv-parser:
# Символ разделителя значений
separator: ${CSV_PARSER_SEPARATOR:;}
# Символ кавычки
quote-char: ${CSV_PARSER_QUOTE_CHAR:"}
# Символ экранирования значений
escape-char: ${CSV_PARSER_ESCAPE_CHAR:'}
# Настройка интерпретации значений как null. Допустимые значения:
# - EMPTY_SEPARATORS - пустое значение между двумя разделителями, например ;;
# - EMPTY_QUOTES - пустые кавычки, например ;"";
# - BOTH - оба варианта
# - NEITHER - никогда. Пустая строка всегда определяется как пустая строка
field-as-null: ${CSV_PARSER_FIELD_AS_NULL:EMPTY_SEPARATORS}
Параметры конфигурации
separator- Символ разделителя значений, напримерCSV_PARSER_SEPARATOR:;;quote-char- символ кавычки, напримерCSV_PARSER_QUOTE_CHAR:";escape-char- Символ экранирования значений, напримерCSV_PARSER_ESCAPE_CHAR:';Настройка интерпретации значений как null. Допустимые значения:
EMPTY_SEPARATORS - пустое значение между двумя разделителями, например ;;
EMPTY_QUOTES - пустые кавычки, например ;»»;
BOTH - оба варианта;
NEITHER - никогда. Пустая строка всегда определяется как пустая строка
field-as-null- способ определения null поля, напримерCSV_PARSER_FIELD_AS_NULL:EMPTY_SEPARATORS.
Дополнительное описание параметров
Параметр
CSV_PARSER_ESCAPE_CHARработает следующим образом: если символ экранирования и символ кавычки равны", то будет использован RFC4180Parser, который считывает все символы между двумя двойными кавычками, при этом двойная кавычка в тексте поля должна быть экранирована двойной кавычкой (Например"поле, ""содержащее двойную кавычку"""будет считано какполе, "содержащее двойную кавычку"). В противном случае будет использован CSVParser, использующий символ экранирования для обозначения «непечатаемых символов».Параметр
CSV_PARSER_FIELD_AS_NULLможет принимать следующие значения:EMPTY_SEPARATORS- два разделителя полей (см. csv-parser/separator) подряд считаются null. Например: строка [aaa,,ccc] содержит значения [«aaa», null, «bbb»], а строка [aaa,»»,ccc] содержит значения [«aaa», «», «bbb»].EMPTY_QUOTES- два «ограничителя строки» (см. csv-parser/escape-char) подряд считаются null. Например: строка [aaa,»»,ccc] содержит значения [«aaa», null, «bbb»], а строка [aaa,,ccc] содержит значения [«aaa», «», «bbb»].BOTH- оба варианта (см.EMPTY_SEPARATORSиEMPTY_QUOTES) считаются null. Например: обе строки [aaa,»»,ccc] и [aaa,,bbb] содержат одинаковое значение [«aaa», null, «bbb»].NEITHER- ни один из вариантов (см.EMPTY_SEPARATORSиEMPTY_QUOTES) не считается null. Например: обе строки [aaa,»»,ccc] и [aaa,,bbb] содержат одинаковое значение [«aaa», «», «bbb»].
3.9. Секция metrics
Секция metrics предназначена для настройки параметров метрик.
Например:
metrics:
port: ${METRICS_PORT:9837}
Параметры конфигурации
port- Порт для метрик, напримерMETRICS_PORT:9837.
3.10. Секция backup
Секция backup предназначена для настроек бекапирования модуля.
Например:
backup:
mode: ${BACKUP_MODE:rest} # kafka | rest
rest:
uri: ${BACKUP_URI:/backup}
backupTopic: ${BACKUP_TOPIC:adapter.backup}
statusTopic: ${STATUS_TOPIC:adapter.status}
kafka:
consumer:
property:
bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost}
group.id: ${CSV_UPLOADER_BACKUP_GROUP_ID:csv_uploader_adapter_command}
auto.offset.reset: latest
producer:
property:
bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost}
Параметры настроек
mode- режим бекапирования, напримерBACKUP_MODE:rest;uri- путь к файлу бекапирования в случае выбора REST-сервисов для режима бэкапирования;backupTopic- топик для отправки сохраненных данных, например:{BACKUP_TOPIC:adapter.backup};statusTopic- топик для отправки статусов бэкапирования, например:{STATUS_TOPIC:adapter.status}.