2. Конфигурация модуля DATA-Uploader (application.yml)
Файл application.yml – основной конфигурационный файл модуля, в котором задана его логика и порядок работы модуля:
обеспечение обработки очереди файлов, настройка подключения к ядру витрины (секция: prostore), а также другие
настройки необходимые для корректной работы модуля.
2.1. Пример файла application.yml
В конфигурационном файле следует задавать только те настройки, которые необходимы для решения текущих бизнес-задач.
http-server:
port: ${SERVER_PORT:8082}
persistence-mode: ${PERSISTENCE_MODE:prostore} # prostore, zookeeper&redis
prostore-rest-client:
persistence-datamart: ${PERSISTENCE_DATAMART:persistence}
datasource: ${PERSISTENCE_DATASOURCE:} # по умолчанию пусто, тогда берется единственный датасорс из настроек Простора
table-completed-inserts-datamarts: ${PERSISTENCE_COMPLETED_INSERTS_TABLE:data_uploader_completed_inserts_datamarts}
table-deltas-open: ${PERSISTENCE_OPEN_DELTAS_TABLE:data_uploader_deltas_open}
# Таблица активных экземляров сервиса data-uploader (используется при persistence-mode: prostore)
table-data-uploader-health-check: ${PERSISTENCE_HEALTH_CHECK_TABLE:data_uploader_health_check}
# Имя таблицы с задачами загрузки данных (используется при persistence-mode: prostore)
table-validation-complete: ${PERSISTENCE_VALIDATION_COMPLETE_TABLE:validation_complete}
# Имя таблицы хранения статусов запросов (используется при persistence-mode: prostore)
table-requests-status: ${PERSISTENCE_STATUS_TABLE:status}
# Имя таблицы хранения данных файлов (используется при persistence-mode: prostore)
table-files: ${PERSISTENCE_FILES_TABLE:files}
# Имя таблицы хранения активных экземпляров сервисов
table-data-uploader-active: ${PERSISTENCE_ACTIVE_TABLE:data_uploader_active}
health-check-refresh-period-sec: ${HEALTH_CHECK_REFRESH_PERIOD:120}
health-check-wait-period-sec: ${HEALTH_CHECK_WAIT_PERIOD:300}
host: ${PS_HOST:localhost}
port: ${PS_PORT:9090}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:8}
redis:
type: ${REDIS_TYPE:STANDALONE}
connection-string: ${REDIS_CONNECTION_STRING:redis://localhost:6379}
password: ${REDIS_PASSWORD:eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81}
max-pool-size: ${REDIS_MAX_POOL_SIZE:6}
max-pool-waiting: ${REDIS_MAX_POOL_WAITING:24}
max-waiting-handlers: ${REDIS_MAX_WAITING_HANDLERS:32}
net-client-options:
tcp-user-timeout-duration: 30
idle-timeout-duration: 30
upload:
concurrency: ${UPLOAD_CONCURRENCY:100} # Общее количество параллельных задач загрузки
send-concurrency: ${UPLOAD_SEND_CONCURRENCY:10} # Количество параллельных отправок данных в кафку для каждого файла
poll-interval: ${UPLOAD_POLL_INTERVAL:500ms} # Интервал опроса очереди сообщений на загрузку
llw-batch: ${UPLOAD_LLW_BATCH:1000} # Число записей в одной команде upsert/delete в случае llw загрузки.
stream-batch: ${UPLOAD_STREAM_BATCH:10000} # Число записей в одной команде upsert/delete в случае потоковой загрузки частями.
creating-delta-on-upload-request: ${DELTA_CREATING_MODE:enable} # enable|disable|period
period: ${CREATING_DELTA_ON_UPLOAD_REQUEST_PERIOD:300}s # Используется при creating-delta-on-upload-request=period
check-uniqueness: true # выполнять ли проверку уникальности первичных ключей
pool:
size: ${UPLOAD_POOL_SIZE:16}
retry:
attempts: 5
delay: 1m
preffered_mode: ${UPLOAD_MODE:stream} # stream|llw // Режим загрузки в prostore
data-storage:
compress: ${DATA_STORAGE_COMPRESS:zstd} # zstd/none редактируется синхронно для модулей rest-uploader/data-uploader!!!
type: ${DATA_STORAGE_TYPE:dir} # redis|dir|s3|prostore
# Директория хранения файлов для типа dir
dir: ${DATA_STORAGE_DIR:/upload/data}
s3:
endpoint: ${S3_ENDPOINT:http://127.0.0.1:9000/}
bucket: ${S3_BUCKET:data} # Имя бакета
region: ${S3_REGION:}
access-key: ${S3_USER:minioadmin} # Пользователь, под которым происходит взаимодействие с s3
secret-key: ${S3_PASSWORD:minioadmin} # Пароль пользователя для взаимодействия с s3
environment:
name: ${ENVIRONMENT_NAME:test}
zookeeper:
connection-string: ${ZOOKEEPER_DS_ADDRESS:localhost}
connection-timeout-ms: ${ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000}
session-timeout-ms: ${ZOOKEEPER_DS_SESSION_TIMEOUT_MS:8640000}
chroot: ${ZOOKEEPER_DS_CHROOT:/adapter}
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}
active:
timeout: ${ACTIVE_TIMEOUT:60}
time-to-live: ${ACTIVE_TTL:180}
delta:
timeout: ${DELTA_TIMEOUT:300}
row-max-count: ${DELTA_MAX_ROWS:500000}
chunk-row-max-count: ${DELTA_CHUNK_ROWS:10000}
chunk-data-max-size: ${DELTA_CHUNK_DATA_SIZE:1048576}
# параметр ожидания перед повторной попыткой открытия дельты в случае ошибки
open-delay: ${DELTA_OPEN_DELAY:60}s
# количество попыток открытия дельты в случае ошибки
open-attempts: ${DELTA_OPEN_ATTEMPTS:5}
# период проверки открытых дельт
open-check: ${DELTA_OPEN_CHECK:60}s
# количество попыток фиксации дельты в случае ошибки
commit-attempts: ${DELTA_COMMIT_ATTEMPTS:5}
# период ожидания перед повторной попыткой фиксации дельты
commit-error-delay: ${DELTA_COMMIT_DELAY:1}s
# количество попыток отката дельты в случае ошибки
rollback-attempts: ${DELTA_COMMIT_ATTEMPTS:3}
# период ожидания перед повторной попыткой отката дельты
rollback-error-delay: ${DELTA_COMMIT_DELAY:5}s
stream:
timeout: ${DELTA_TIMEOUT:300}
row-max-count: ${DELTA_MAX_ROWS:500000}
avro-codec: zstd
response:
time-to-live: ${RESPONSE_TTL:36000}
# Настройки модуля сбора информации о компонентах витрины
component-info:
enabled: true
# DataSource Prostore
datasource: ''
# Схема Prostore
datamart: component_info
# Имя таблицы для записи информации о компоненте
table-name: component_info
# Период попыток создания схемы, при неуспехе
create-table-period: 60s
# Период публикации health-check
publish-period: 60s
# Период после которого компонент считается не активным при отсутствии health-check
timeout-active: 300s
# Список элементов конфига маскируемых при отправке,
# если указан узловой элемент, то маскируются все вложенные в него элементы
secrets:
- redis.password
metrics:
port: ${METRICS_PORT:9837}
3. Параметры конфигурации
Настройка конфигурации DATA-Uploader осуществляется путем редактирования параметров настроек в файле application.yml,
где настраиваются секции:
http-server- указывается порт сервера;persistence-mode- настройки хранения данных;prostore-rest-client- блок параметров конфигурирования взаимодействия с Prostore;redis- настройка подключения к Redis;upload- указываются настройки параллельной загрузки данных;data-storage- директория хранения файлов для типаdir;environment- определяет значение среды разработки;zookeeper- определяет настройки подключения к Zookeeper;csv-parser- настройка парсера CSV-файлов;active- настройки интервалов между попытками перехода в активное состояние и времени жизни ключа флага активности;delta- настройка обработок загрузок и отправок заданий на загрузку дельт;stream- настройка потоковой загрузки, в случае если поток разбивается на части;response- настройка времени хранения ответов по заданию в Redis;component-info- настройки модуля сбора информации о компонентах витрины;metrics- настройка получения метрик.
3.1. Секция http-server
В секции http-server указывается порт веб-сервера.
Например:
server:
port: ${SERVER_PORT:8081}
Параметры настроек
port- порт веб-сервера, например:SERVER_PORT:8081.
3.2. Секция persistence-mode
В секции persistence-mode указывается настройка хранения данных: или в Prostore? или в Zookeeper. В случае
выбора Prostore автоматически создаются необходимые таблицы.
Например:
persistence-mode: ${PERSISTENCE_MODE:prostore} # prostore | zookeeper
Параметры настроек
persistence-mode- настройка хранения данных, напримерPERSISTENCE_MODE:prostore.
3.3. Секция prostore-rest-client
В секции prostore-rest-client реализован блок параметров конфигурирования взаимодействия с Prostore.
Например:
prostore-rest-client:
persistence-datamart: ${PERSISTENCE_DATAMART:persistence}
datasource: ${PERSISTENCE_DATASOURCE:} # по умолчанию пусто, тогда берется единственный датасорс из настроек Простора
table-completed-inserts-datamarts: ${PERSISTENCE_COMPLETED_INSERTS_TABLE:data_uploader_completed_inserts_datamarts}
table-deltas-open: ${PERSISTENCE_OPEN_DELTAS_TABLE:data_uploader_deltas_open}
# Таблица активных экземляров сервиса data-uploader (используется при persistence-mode: prostore)
table-data-uploader-health-check: ${PERSISTENCE_HEALTH_CHECK_TABLE:data_uploader_health_check}
# Имя таблицы с задачами загрузки данных (используется при persistence-mode: prostore)
table-validation-complete: ${PERSISTENCE_VALIDATION_COMPLETE_TABLE:validation_complete}
# Имя таблицы хранения статусов запросов (используется при persistence-mode: prostore)
table-requests-status: ${PERSISTENCE_STATUS_TABLE:status}
# Имя таблицы хранения данных файлов (используется при persistence-mode: prostore)
table-files: ${PERSISTENCE_FILES_TABLE:files}
# Имя таблицы хранения активных экземпляров сервисов
table-data-uploader-active: ${PERSISTENCE_ACTIVE_TABLE:data_uploader_active}
health-check-refresh-period-sec: ${HEALTH_CHECK_REFRESH_PERIOD:120}
health-check-wait-period-sec: ${HEALTH_CHECK_WAIT_PERIOD:300}
host: ${PS_HOST:localhost}
port: ${PS_PORT:9090}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:8}
Параметры настроек
persistence-datamart- датамарт, где будут располагаться таблицы хранения данных, используется приpersistence-mode = prostore;datasource- источник данных, напримерPERSISTENCE_DATASOURCE:, по умолчанию пусто, в этом случае берется единственный датасорс из настроек Prostore;table-completed-inserts-datamarts- таблица с данными по завершенным запросам добавления данных, напримерPERSISTENCE_COMPLETED_INSERTS_TABLE:data_uploader_completed_inserts_datamarts;table-deltas-open- таблица с данными по открытым дельтам, напримерPERSISTENCE_OPEN_DELTAS_TABLE:data_uploader_deltas_open;table-data-uploader-health-check- таблица с health-check, напримерPERSISTENCE_HEALTH_CHECK_TABLE:data_uploader_health_check;table-validation-complete- таблица с задачами загрузки данных, напрммерPERSISTENCE_VALIDATION_COMPLETE_TABLE:validation_complete;table-requests-status- таблица хранения статусов запросов. напримерPERSISTENCE_STATUS_TABLE:status;table-files- таблица хранения данных файлов, напримерPERSISTENCE_FILES_TABLE:files;table-data-uploader-active- таблица хранения активных экземпляров сервисов, напримерPERSISTENCE_ACTIVE_TABLE:data_uploader_active;health-check-refresh-period-sec: ${HEALTH_CHECK_REFRESH_PERIOD:120}- период обновления health-check в секундах, напримерHEALTH_CHECK_REFRESH_PERIOD:120;health-check-wait-period-sec- период ожидания health-check в секундах, напримерHEALTH_CHECK_WAIT_PERIOD:300;host- адрес Prostore, напримерPS_HOST:t5-prostore-01.ru-central1.internal;port- порт Prostore, напримерPS_PORT:9195;max-pool-size- максимальное число подключений к Prostore, напримерPS_MAX_POOL_SIZE:8.
3.4. Секция redis
Секция redis определяет настройки подключения к Redis.
Например:
redis:
type: ${REDIS_TYPE:STANDALONE}
connection-string: ${REDIS_CONNECTION_STRING:redis://localhost:6379}
password: ${REDIS_PASSWORD:eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81}
max-pool-size: ${REDIS_MAX_POOL_SIZE:6}
max-pool-waiting: ${REDIS_MAX_POOL_WAITING:24}
max-waiting-handlers: ${REDIS_MAX_WAITING_HANDLERS:32}
net-client-options:
tcp-user-timeout-duration: 30
idle-timeout-duration: 30
Параметры настроек
type- тип подключения к Redis (STANDALONE/CLUSTER), напримерREDIS_TYPE:STANDALONE;connection-string- указывается список серверов для подключения (перечисление через запятую), напримерREDIS_CONNECTION_STRING:redis://localhost:6379;password- пароль для подключения, напримерREDIS_PASSWORD:eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81;max-pool-size- устанавливается максимальный размер пула, напримерREDIS_MAX_POOL_SIZE:6;max-pool-waiting- устанавливается максимальный размер пула ожидающих команд, напримерREDIS_MAX_POOL_WAITING:24;max-waiting-handlers- устанавливается максимальный размер ожидающих обработчиков, напримерREDIS_MAX_WAITING_HANDLERS:32;net-client-options- параметры Redis клиента:tcp-user-timeout-duration- таймаут на соединение;idle-timeout-duration- таймаут ожидания ответа от Redis.
3.5. Секция upload
Секция upload определяет настройки параллельной загрузки данных.
Например:
upload:
concurrency: ${UPLOAD_CONCURRENCY:100} # Общее количество параллельных задач загрузки
send-concurrency: ${UPLOAD_SEND_CONCURRENCY:10} # Количество параллельных отправок данных в кафку для каждого файла
poll-interval: ${UPLOAD_POLL_INTERVAL:500ms} # Интервал опроса очереди сообщений на загрузку
llw-batch: ${UPLOAD_LLW_BATCH:1000} # Число записей в одной команде upsert/delete в случае llw загрузки.
stream-batch: ${UPLOAD_STREAM_BATCH:10000} # Число записей в одной команде upsert/delete в случае потоковой загрузки частями.
creating-delta-on-upload-request: ${DELTA_CREATING_MODE:enable} # enable|disable|period
period: ${CREATING_DELTA_ON_UPLOAD_REQUEST_PERIOD:300}s # Используется при creating-delta-on-upload-request=period
check-uniqueness: true # выполнять ли проверку уникальности первичных ключей
pool:
size: ${UPLOAD_POOL_SIZE:16}
retry:
attempts: 5
delay: 1m
preffered_mode: ${UPLOAD_MODE:stream} # stream|llw // Режим загрузки в prostore
Параметры настроек
concurrency- общее количество параллельных задач загрузки, например100;send-concurrency- количество параллельных отправок данных в kafka для каждого файла, например10;poll-interval- интервал опроса очереди сообщений на загрузку, например500ms;llw-batch- число записей в одной команде UPSERT/DELETE в случае llw загрузки, напримерUPLOAD_LLW_BATCH:1000;creating-delta-on-upload-request- создание дельты при запросе загрузки, напримерDELTA_CREATING_MODE:enable;возможные значения:
enable/disable/period;period- период создания дельты при запросе загрузки (в секундах), напримерCREATING_DELTA_ON_UPLOAD_REQUEST_PERIOD:300, используется при creating-delta-on-upload-request=period;check-uniqueness- флаг выполнения проверки уникальности первичных ключей;pool/size- размер пула загрузки, напримерUPLOAD_POOL_SIZE:16;retry- повтор попытки загрузки;attempts- количество попыток;delay- период задержки (в минутах);preffered_mode- режим загрузки, напримерUPLOAD_MODE:stream.
3.6. Секция data-storage
В секции data-storage указывается директория хранения файлов для типа dir.
Например:
data-storage:
compress: ${DATA_STORAGE_COMPRESS:zstd} # zstd/none редактируется синхронно для модулей rest-uploader/data-uploader!!!
type: ${DATA_STORAGE_TYPE:dir} # redis|dir|s3|prostore
# Директория хранения файлов для типа dir
dir: ${DATA_STORAGE_DIR:/upload/data}
s3:
endpoint: ${S3_ENDPOINT:http://127.0.0.1:9000/}
bucket: ${S3_BUCKET:data} # Имя бакета
region: ${S3_REGION:}
access-key: ${S3_USER:minioadmin} # Пользователь, под которым происходит взаимодействие с s3
secret-key: ${S3_PASSWORD:minioadmin} # Пароль пользователя для взаимодействия с s3
Параметры настроек
compress- настройки сжатия директории хранения файлов, напримерDATA_STORAGE_COMPRESS:zstd;
Примечание
блок compress редактируется синхронно для модулей REST-Uploader/ DATA-Uploader
type- тип файлов, напримерDATA_STORAGE_TYPE:dir(возможные значения: redis / dir / s3);dir- директория хранения файлов для типа dir, напримерDATA_STORAGE_DIR:/upload/data;s3- настройки облачного хранилища S3;endpoint- адрес конечной точки, напримерS3_ENDPOINT:http://127.0.0.1:9000/;bucket- имя бакета, напримерS3_BUCKET:dataregion- регион хранилища;access-key- пользователь, под которым происходит взаимодействие с s3, напримерS3_USER:minioadmin;secret-key- пароль пользователя для взаимодействия с s3, напримерS3_PASSWORD:minioadmin.
3.7. Секция environment
В секции environment выбирается среда разработки (например, значение test, prod и т.д).
Например:
environment:
name: ${ENVIRONMENT_NAME:test}
Параметры конфигурации
name- название окружения, напримерENVIRONMENT_NAME:test.
3.8. Секция zookeeper
В секции zookeeper настраиваются параметры подключения к Zookeeper.
Например:
zookeeper:
connection-string: ${ZOOKEEPER_DS_ADDRESS:localhost}
connection-timeout-ms: ${ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000}
session-timeout-ms: ${ZOOKEEPER_DS_SESSION_TIMEOUT_MS:8640000}
chroot: ${ZOOKEEPER_DS_CHROOT:/adapter}
Параметры настроек
connection-string- Подключение к Zookeeper DS, напримерZZOOKEEPER_DS_ADDRESS:localhost;connection-timeout-ms- Zookeeper DS таймаут подключения, напримерZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000;session-timeout-ms- Zookeeper DS таймаут сессии, напримерZOOKEEPER_DS_SESSION_TIMEOUT_MS:40000;chroot- Zookeeper DS chroot path, напримерZOOKEEPER_DS_CHROOT:/adapter.
3.9. Секция csv-parser
Примечание
При загрузке файлов с форматно-логическим контролем, важно, чтобы настройки секции csv-parser должны быть синхронизированы с соответствующими настройками csvparser Prostore. Так же настройки секции csv-parser должны быть одинаковыми в модулях CSV-Uploader (если используется его UI), REST-Uploader и DATA-Uploader.
Секция csv-parser - настройка парсинга CSV.
Например:
csv-parser:
separator: ${CSV_PARSER_SEPARATOR:;}
quote-char: ${CSV_PARSER_QUOTE_CHAR:"}
escape-char: ${CSV_PARSER_ESCAPE_CHAR:'}
field-as-null: ${CSV_PARSER_FIELD_AS_NULL:EMPTY_SEPARATORS}
multiline-limit: 0
Параметры конфигурации
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.multiline-limit- параметры парсинга мультистроковых значений.
Примечание
Парсер может зависать, если в данных встречаются вложенные неэкранированные кавычки..
3.9.1. Дополнительное описание параметров
Параметр
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.10. Секция active
В секции active настраиваются интервалы между попытками перехода в активное состояние и времени жизни ключа флага
активности.
Например:
active:
timeout: ${ACTIVE_TIMEOUT:60}
time-to-live: ${ACTIVE_TTL:180}
Параметры настроек
timeout- интервал между попытками перехода в активное состояние;time-to-live- время жизни ключа флага активности.
3.11. Секция delta
Секция delta предназначена для указания настройки обработок загрузок и отправок заданий на загрузку дельт.
Например:
delta:
timeout: ${DELTA_TIMEOUT:300}
row-max-count: ${DELTA_MAX_ROWS:500000}
chunk-row-max-count: ${DELTA_CHUNK_ROWS:10000}
chunk-data-max-size: ${DELTA_CHUNK_DATA_SIZE:1048576}
# параметр ожидания перед повторной попыткой открытия дельты в случае ошибки
open-delay: ${DELTA_OPEN_DELAY:60}s
# количество попыток открытия дельты в случае ошибки
open-attempts: ${DELTA_OPEN_ATTEMPTS:5}
# период проверки открытых дельт
open-check: ${DELTA_OPEN_CHECK:60}s
# количество попыток фиксации дельты в случае ошибки
commit-attempts: ${DELTA_COMMIT_ATTEMPTS:5}
# период ожидания перед повторной попыткой фиксации дельты
commit-error-delay: ${DELTA_COMMIT_DELAY:1}s
# количество попыток отката дельты в случае ошибки
rollback-attempts: ${DELTA_COMMIT_ATTEMPTS:3}
# период ожидания перед повторной попыткой отката дельты
rollback-error-delay: ${DELTA_COMMIT_DELAY:5}s
Параметры настроек
timeout- максимальный интервал времени между первой считанной записью цикла загрузки и отправкой заданий на загрузку дельт, напримерDELTA_TIMEOUT:300;row-max-count- максимальное количество обработанных записей для старта отправки заданий на загрузку дельт, напримерDELTA_CHUNK_ROWS:10000;chunk-row-max-count- количество сообщений в одном чанке, напримерDELTA_CHUNK_ROWS:10000;chunk-data-max-size- максимальный размер чанка, напримерDELTA_CHUNK_DATA_SIZE:1048576;open-delay- параметр ожидания (в секундах) перед повторной попыткой открытия дельты в случае ошибки, напримерDELTA_OPEN_DELAY:60;open-attempts- количество попыток открытия дельты в случае ошибки, напримерDELTA_OPEN_ATTEMPTS:5;open-check- период проверки открытых дельт (в секундах), напримерDELTA_OPEN_CHECK:60;commit-attempts- количество попыток фиксации дельты в случае ошибки, напримерDELTA_COMMIT_ATTEMPTS:5;commit-error-delay- период ожидания перед повторной попыткой фиксации дельты (в секундах), напримерDELTA_COMMIT_DELAY:1;rollback-attempts- количество попыток отката дельты в случае ошибки, напримерDELTA_COMMIT_ATTEMPTS:3;rollback-error-delay- период ожидания перед повторной попыткой отката дельты (в секундах), напримерDELTA_COMMIT_DELAY:5.
3.12. Секция stream
Секция stream содержит настройки потоковой загрузки, в случае если поток разбивается на части.
Например:
stream:
timeout: ${DELTA_TIMEOUT:300}
row-max-count: ${DELTA_MAX_ROWS:500000}
avro-codec: zstd
Параметры настроек
timeout- максимальный интервал времени между первой считанной записью цикла загрузки и отправкой заданий на загрузку потока, напримерDELTA_TIMEOUT:300;row-max-count- максимальное количество обработанных записей для старта отправки заданий на загрузку потока, напримерDELTA_MAX_ROWS:500000;avro-codec- AVRO кодек, напримерzstd.
3.13. Секция response
Секция response определяет настройку времени хранения ответов по заданию в Redis.
Например:
response:
time-to-live: ${RESPONSE_TTL:36000}
Параметры настроек
time-to-live- период времени Redis, который будет хранить ответ по заданию (ключ status.<uuid>).
3.14. Секция component-info
В секции component-info хранятся настройки компонента сбора информации о компонентах витрины.
Например:
# Настройки модуля сбора информации о компонентах витрины
component-info:
enabled: true
# DataSource Prostore
datasource: ''
# Схема Prostore
datamart: component_info
# Имя таблицы для записи информации о компоненте
table-name: component_info
# Период попыток создания схемы, при неуспехе
create-table-period: 60s
# Период публикации health-check
publish-period: 60s
# Период после которого компонент считается не активным при отсутствии health-check
timeout-active: 300s
# Список элементов конфига маскируемых при отправке,
# если указан узловой элемент, то маскируются все вложенные в него элементы
secrets:
- redis.password
Параметры настроек
enabled- статус подключения компонента, указывается булево значение;datasource- датасорс Prostore;datamart- схема Prostore;table-name- имя таблицы для записи информации о компоненте;create-table-period- период попыток создания схемы, при неуспехе, указывается в секундах;publish-period- период публикации health-check, указывается в секундах;timeout-active- период после которого компонент считается неактивным при отсутствии health-check, указывается в секундах;secrets- список элементов конфига маскируемых при отправке, если указан узловой элемент, то маскируются все вложенные в него элементы.
3.15. Секция metrics
Секция metrics предназначена для настройки параметров метрик.
Например:
metrics:
port: ${METRICS_PORT:9837}
Параметры настроек
port- порт для метрик, напримерMETRICS_PORT:9837.