Конфигурация ноды

Содержание раздела
  1. Переопределение параметров конфигурации
  2. Конфигурация сервиса исполнения запросов
    1. Настройки журналирования
    2. Настройки управления Prostore
    3. Настройки сервиса исполнения запросов
    4. Настройки датасорсов типа ADB
    5. Настройки датасорсов типа ADG
    6. Настройки датасорсов типа ADQM
    7. Настройки датасорсов типа ADP

Конфигурация ноды представляет собой текстовый YAML-файл, параметры которого организованы в древовидную структуру.

Ниже приведен пример конфигурационного файла Prostore. Для каждого параметра указаны:

  • назначение,
  • имя,
  • имя переменной окружения,
  • значение параметра.

Для наглядности конфигурация сервиса исполнения запросов разделена на отдельные секции.

Переопределение параметров конфигурации

По умолчанию нода использует конфигурационный файл, входящий в состав JAR-файла dtm-query-execution-core-<version>.jar. Значения параметров конфигурации можно переопределить любым из способов:

  • поместить свой YAML-файл с нужными значениями параметров в директорию <рабочая_директория_ноды>/config;
  • задать переменные окружения.

Если параметр определен в нескольких источниках, то наиболее приоритетным считается значение переменной окружения, следующим источником по приоритету — конфигурация в директории config, затем — конфигурация в составе JAR-файла.

Переопределить значение параметра с помощью переменной окружения можно, если эта переменная определена в конфигурационном файле. Если вы поместили свой конфигурационный файл в директорию config, он должен определять нужные переменные. При использовании конфигурационного файла из JAR-файла ничего определять не нужно, так как все переменные в нем уже определены.

Конфигурация сервиса исполнения запросов

Настройки журналирования

# настройки журналирования
logging:
# уровень важности сообщений, записываемых в лог-файл
  level:
    ru.datamart.prostore: ${DTM_LOGGING_LEVEL:DEBUG}

Настройки управления Prostore

# настройки сервера Prostore
server:
# номер порта сервиса метрик
  port: ${DTM_METRICS_PORT:8080}
# настройки swagger-ui
springdoc:
  swagger-ui:
# путь до openapi.yml
    url: /openapi.yml
# путь до swagger-ui
    path: /swagger-ui
# настройки управления Prostore
management:
# настройки конечных точек Prostore
  endpoints:
# признак генерации метрик со стороны Prostore
    enabled-by-default: ${DTM_METRICS_ENABLED:true}
# настройки видимости метрик через веб-соединения
    web:
      exposure:
# состав метрик, видимых через веб-соединения
        include: ${DTM_METRICS_SCOPE:info, health}
# настройки spring actuator
  endpoint:
# настройки метрик, отражающих состояние нод Prostore
    health:
# признак детализации метрик по компонентам
      show-components: always
# признак сбора метрик
      probes:
        enabled: true
# настройки группы метрик        
      group:
# настройки метрики готовности ноды        
        readiness:
# признак подробного ответа по метрике
          showDetails: always
# составные элементы метрики
          include:
            - readinessState
            - dtmState
# настройки метрики запуска (перезапуска) ноды       
        startup:
# признак подробного ответа по метрике
          showDetails: always
# составные элементы метрики
          include:
            - dtmState

Настройки сервиса исполнения запросов

# настройки сервиса исполнения запросов
core:
# настройки плагинов
  plugins:
# список используемых типов датасорсов
    active: ${CORE_PLUGINS_ACTIVE:ADG, ADB, ADP, ADQM}
# порядок выбора типа датасорса для исполнения запросов на чтение и выгрузку данных
    category:
# порядок выбора типа датасорса в зависимости от категории запроса
      mapping:
# порядок для общих реляционных запросов
        RELATIONAL: ${DTM_CORE_PLUGINS_RELATIONAL:ADB, ADP, ADQM, ADG}
# порядок для аналитических запросов
        ANALYTICAL: ${DTM_CORE_PLUGINS_ANALYTICAL:ADQM, ADB, ADP, ADG}
# порядок для запросов ключ-значение
        DICTIONARY: ${DTM_CORE_PLUGINS_DICTIONARY:ADG, ADB, ADP, ADQM}
# порядок для других категорий запросов
        UNDEFINED: ${DTM_CORE_PLUGINS_UNDEFINED:ADB, ADP, ADQM, ADG}
 # порядок для запросов без FROM
        WITHOUT_FROM: ${DTM_CORE_PLUGINS_WITHOUT_FROM:ADP, ADB, ADQM, ADG}
# настройки сетевых подключений через HTTP-протокол
  http:
# номер порта сервиса исполнения запросов
    port: ${DTM_CORE_HTTP_PORT:9090}
# режим оптимизации работы сокета TCP_NODELAY
    tcpNoDelay: ${DTM_CORE_HTTP_TCP_NO_DELAY:true}
# режим TCP FAST_OPEN
    tcpFastOpen: ${DTM_CORE_HTTP_TCP_FAST_OPEN:true}
# режим оптимизации работы сокета TCP_QUICKACK
    tcpQuickAck: ${DTM_CORE_HTTP_TCP_QUICK_ACK:true}
# размер windowSize в HTTP/2
    http2WindowSize: ${DTM_CORE_HTTP2_WINDOW_SIZE:1048576}
# настройки HTTP-клиентов
  webclient:
# режим оптимизации работы сокета TCP_NODELAY
    tcpNoDelay: ${DTM_CORE_WEBCLIENT_TCP_NO_DELAY:true}
# режим TCP FAST_OPEN
    tcpFastOpen: ${DTM_CORE_WEBCLIENT_TCP_FAST_OPEN:true}
# режим оптимизации работы сокета TCP_QUICKACK
    tcpQuickAck: ${DTM_CORE_WEBCLIENT_TCP_QUICK_ACK:true}
# настройка переключения на HTTP/2 
    priorKnowledgeHttp2: ${DTM_CORE_WEBCLIENT_PRIOR_KNOWLEDGE:true}
# время ожидания подключения в миллисекундах
    connectionTimeoutMs: ${DTM_CORE_WEBCLIENT_CONNECTION_TIMEOUT_MS:30000}
# размер пула коннектов для HTTP/1.1
    poolSize: ${DTM_CORE_WEBCLIENT_POOL_SIZE:20}
# размер пула коннектов для HTTP/2
    http2PoolSize: ${DTM_CORE_WEBCLIENT_HTTP2_POOL_SIZE:20}
# keepalive для HTTP/2 в секундах (0 — значение не ограничено)
    http2KeepAliveSec: ${DTM_CORE_WEBCLIENT_HTTP2_KEEP_ALIVE_SEC:0}
# настройки HTTP-клиентов приватного API
  privateapiwebclient:
# режим оптимизации работы сокета TCP_NODELAY
    tcpNoDelay: ${DTM_CORE_WEBCLIENT_LEADER_TCP_NO_DELAY:true}
# режим TCP FAST_OPEN
    tcpFastOpen: ${DTM_CORE_WEBCLIENT_LEADER_TCP_FAST_OPEN:true}
# режим оптимизации работы сокета TCP_QUICKACK
    tcpQuickAck: ${DTM_CORE_WEBCLIENT_LEADER_TCP_QUICK_ACK:true}
# настройка переключения для HTTP/2
    priorKnowledgeHttp2: ${DTM_CORE_WEBCLIENT_LEADER_PRIOR_KNOWLEDGE:true}
# время ожидания подключения в миллисекундах
    connectionTimeoutMs: ${DTM_CORE_WEBCLIENT_LEADER_CONNECTION_TIMEOUT_MS:2000}
# размер пула коннектов для HTTP/1.1
    poolSize: ${DTM_CORE_WEBCLIENT_LEADER_POOL_SIZE:20}
# размер пула коннектов для HTTP/2
    http2PoolSize: ${DTM_CORE_WEBCLIENT_LEADER_HTTP2_POOL_SIZE:20}
# keepalive для HTTP/2 в секундах (0 — значение не ограничено)
    http2KeepAliveSec: ${DTM_CORE_WEBCLIENT_LEADER_HTTP2_KEEP_ALIVE_SEC:0}
# настройки окружения
  env:
# имя окружения для формирования полных имен логических БД
    name: ${DTM_NAME:test}
# настройки метрик prometheus
  prometheus:
# признак сбора метрик prometheus
    enabled: ${PROMETHEUS_ENABLED:true}
# настройки синхронизации материализованных представлений
  matviewsync:
# периодичность запуска синхронизации в миллисекундах; если значение равно 0, синхронизация отключена
    periodMs: ${MATERIALIZED_VIEWS_SYNC_PERIOD_MS:5000}
# максимальное количество попыток синхронизации представления, после перезапуска ноды счетчик обнуляется
    retryCount: ${MATERIALIZED_VIEWS_RETRY_COUNT:10}
# максимальное количество представлений, синхронизируемых одновременно
    maxConcurrent: ${MATERIALIZED_VIEWS_CONCURRENT:2}
# настройки обработки retention-правил
  datacooling:
# периодичность запуска обработки retention-правил в миллисекундах; если значение равно 0, обработка отключена
    periodMs: ${DATA_COOLING_RUN_PERIOD_MS:600000}
# максимальное количество таблиц, обрабатываемых одновременно
    maxConcurrent: ${DATA_COOLING_CONCURRENT:2}
# настройки механизма управления кластером Raft
  raft:
# идентификатор этой ноды
    myId: ${RAFT_ID:1}
# номера и сетевые адреса нод кластера, включая эту ноду; адрес указывается в формате host:http_port; 
# строки заполняютcя по количеству нод, остальные остаются незаполненными
    servers:
      pnode.1: ${RAFT_SERVER_1:127.0.0.1:9090}
      pnode.2: ${RAFT_SERVER_2:}
      pnode.3: ${RAFT_SERVER_3:}
      pnode.4: ${RAFT_SERVER_4:}
      pnode.5: ${RAFT_SERVER_5:}
      pnode.6: ${RAFT_SERVER_6:}
      pnode.7: ${RAFT_SERVER_7:}
      pnode.8: ${RAFT_SERVER_8:}
      pnode.9: ${RAFT_SERVER_9:}
# границы интервала (в миллисекундах), из которого выбирается случайное значение для времени ожидания сигнала от лидера
    minTimeout: ${RAFT_MIN_TIMEOUT_MS:5000}
    maxTimeout: ${RAFT_MAX_TIMEOUT_MS:7000}
# периодичность обращения (в миллисекундах) лидера к ведомым нодам для отправки записей журнала изменений
    heartbeatPeriod: ${RAFT_HEARTBEAT_PERIOD_MS:100}
# периодичность доотправки (в миллисекундах) дополнительных записей журнала изменений ведомым нодам (при необходимости таких записей)
    appendEntriesResendDelay: ${RAFT_APPEND_ENTRIES_RESEND_DELAY_MS:0}
# периодичность повторной отправки (в миллисекундах) записей журнала изменений ведомым нодам    
    appendEntriesRetryDelay: ${RAFT_APPEND_ENTRIES_RETRY_DELAY_MS:10}
# периодичность (в миллисекундах) сохранения снимка состояния ноды
    snapshotPeriod: ${RAFT_SNAPSHOT_PERIOD_MS:600000}
# количество попыток выполнения операции в случае optimistic-блокировки (0 — количество не ограничено)    
    optimisticRetryCount: ${RAFT_OPTIMISTIC_RETRY_COUNT:20}
# количество попыток выполнения операции записи в случае optimistic-блокировки (0 — количество не ограничено)
    writeOptimisticRetryCount: ${RAFT_WRITE_OPTIMISTIC_RETRY_COUNT:1000}
# настройки сервисной базы данных, хранящей метаинформацию
    servicedb:
# имя БД, в которой размещается сервисная БД; возможно размещение системных и бизнес-данных в одной БД с разделением по разным схемам
      db: ${RAFT_SERVICEDB_DATABASE:}
# имя схемы СУБД, выделенной для размещения сервисной БД
      schema: ${RAFT_SERVICEDB_SCHEMA:sys1}
# имя пользователя/логин для авторизации в СУБД
      user: ${RAFT_SERVICEDB_USER:}
# пароль для авторизации в СУБД
      password: ${RAFT_SERVICEDB_PASS:}
# сетевой адрес хоста с сервисной БД
      host: ${RAFT_SERVICEDB_HOST:}
# сетевой порт на хосте сервисной БД
      port: ${RAFT_SERVICEDB_PORT:}
# лимит подключений к БД в одном потоке; лимит по всем потокам равен произведению poolSize и executorsCount
      poolSize: ${RAFT_SERVICEDB_MAX_POOL_SIZE:3}
# количество одновременных потоков, исполняющих запросы к БД
      executorsCount: ${RAFT_SERVICEDB_EXECUTORS_COUNT:3}
# максимальное время ожидания выполнения запроса в очереди подключений (0 — не ограничено)
      poolRequestTimeout: ${RAFT_SERVICEDB_POOL_REQUEST_TIMEOUT:0}
# максимальный размер кэша параметризованного запроса
      preparedStatementsCacheMaxSize: ${RAFT_SERVICEDB_PREPARED_CACHE_MAX_SIZE:256}
# максимальный размер параметризованного запроса, который может быть закэширован
      preparedStatementsCacheSqlLimit: ${RAFT_SERVICEDB_PREPARED_CACHE_SQL_LIMIT:2048}
# признак кэширования параметризованных запросов
      preparedStatementsCache: ${RAFT_SERVICEDB_PREPARED_CACHE:true}
# время бездействия подключения к СУБД до тайм-аута и закрытия подключения
      idleTimeoutMs: ${RAFT_SERVICEDB_IDLE_TIMEOUT_MS:60000}
# время поддержания подключения к СУБД до его закрытия (0 — время не ограничено)
      maxLifetimeTimeoutMs: ${RAFT_SERVICEDB_MAX_LIFETIME_TIMEOUT_MS:0}
# количество записей журнала изменений, вычитываемых пачкой при применении
      fetchSize: ${RAFT_SERVICEDB_FETCH_SIZE:100}
# настройки jet-коннектора
  jet:
# список сетевых адресов jet-коннекторов для загрузки данных в формате: http://host_1:port_1,host_2:port_2,...
    connectionString: ${KAFKA_JET_WRITERS:}
# имя консьюмер-группы для загрузки данных с помощью jet-коннектора
    consumerGroup: ${KAFKA_JET_CONSUMER_GROUP:jet-load}
# время вычитывания (в миллисекундах) данных из Kafka
    pollDurationMs: ${KAFKA_JET_POLL_DURATION_MS:1000}
# предельный размер буфера чтения из Kafka
    pollBufferSize: ${KAFKA_JET_POLL_BUFFER_SIZE:1000}
# предельный размер буфера вставки в БД
    dbBufferSize: ${KAFKA_JET_DB_BUFFER_SIZE:10000}
# время ожидания (в миллисекундах) get-метода коннектора до тайм-аута
    getTimeoutMs: ${KAFKA_JET_GET_TIMEOUT_MS:5000}
# время ожидания (в миллисекундах) до тайм-аута при проверке доступности коннектора
    checkTimeoutMs: ${KAFKA_JET_CHECK_TIMEOUT_MS:2000}
# количество попыток установки соединения при обращении к коннектору (0 — количество не ограничено, 1 — без повторных попыток)
    retryCount: ${KAFKA_JET_RETRY_COUNT:1}
# настройки источника данных
  datasource:
# настройки для EDML-операторов
    edml:
# количество записей, по умолчанию выгружаемых в одном сообщении топика Каfka
      defaultChunkSize: ${EDML_DEFAULT_CHUNK_SIZE:1000}
# период проверки статуса плагина в миллисекундах
      pluginStatusCheckPeriodMs: ${EDML_STATUS_CHECK_PERIOD_MS:1000}
# время ожидания (в миллисекундах) до тайм-аута при работе с первым смещением в топике Kafka
      firstOffsetTimeoutMs: ${EDML_FIRST_OFFSET_TIMEOUT_MS:15000}
# время ожидания (в миллисекундах) до тайм-аута при ожидании смены смещения в топике Kafka
      changeOffsetTimeoutMs: ${EDML_CHANGE_OFFSET_TIMEOUT_MS:10000}
# настройки потоковой обработки (стриминга)
  streaming:
# настройки потоковой загрузки данных
    upload:
# размер батча (количество строк) вставки подготовленных записей в датасорсы
      dbBatchSize: ${STREAMING_UPLOAD_DB_BATCH_SIZE:1000}
# предельный размер (количество строк) буфера подготовленных записей для вставки в датасорсы
      dbBufferSize: ${STREAMING_UPLOAD_DB_BUFFER_SIZE:10000}
# предельный размер буфера входящих сырых данных в Мб
      inputBufferSizeMb: ${STREAMING_UPLOAD_INPUT_BUFFER_SIZE_MB:10}

# настройки интерпретации csv-файлов
  csvParser:
# символ разделителя значений
    separator: ${CSV_PARSER_SEPARATOR:;}
# символ кавычки
    quoteChar: ${CSV_PARSER_QUOTE_CHAR:"}
# символ экранирования значений
    escapeChar: ${CSV_PARSER_ESCAPE_CHAR:'}
# настройка интерпретации значений как null. Допустимые значения:
#   - EMPTY_SEPARATORS — пустое значение между двумя разделителями, например ;;
#   - EMPTY_QUOTES — пустое значение между двумя кавычками, например ;"";
#   - BOTH — оба варианта (пустое значение между разделителями или кавычками)
#   - NEITHER — никогда. Пустая строка всегда определяется как пустая строка
    fieldAsNull: ${CSV_PARSER_FIELD_AS_NULL:EMPTY_SEPARATORS}
# настройки взаимодействия сервиса исполнения запросов с брокером сообщений Kafka
  kafka:
# максимальное количество повторных попыток получения офсетов из брокера Kafka
    getOffsetsRetryCount: ${ZOOKEEPER_KAFKA_GET_OFFSETS_RETRY_COUNT:3}
# время ожидания между попытками получения офсетов в миллисекундах
    getOffsetsRetryTimeoutMs: ${ZOOKEEPER_KAFKA_GET_OFFSETS_RETRY_TIMEOUT_MS:1000}
    producer:
      property:
# сериализатор строковых ключей
        key.serializer: org.apache.kafka.common.serialization.StringSerializer
# сериализатор строковых значений
        value.serializer: org.apache.kafka.common.serialization.StringSerializer
    consumer:
      property:
# десериализатор ключей как байтов
        key.deserializer: org.apache.kafka.common.serialization.ByteArrayDeserializer
# десериализатор значений как байтов
        value.deserializer: org.apache.kafka.common.serialization.ByteArrayDeserializer
# настройки кластера ZooKeeper для взаимодействия с брокером сообщений Kafka
    cluster:
      zookeeper:
# сетевой адрес хоста ZooKeeper для брокера сообщений Kafka
        connection-string: ${ZOOKEEPER_KAFKA_ADDRESS:}
# время ожидания (в миллисекундах) до тайм-аута при соединении брокера Kafka с хостом ZooKeeper
        connection-timeout-ms: ${ZOOKEEPER_KAFKA_CONNECTION_TIMEOUT_MS:30000}
# время бездействия (в миллисекундах) брокера Kafka в сессии хоста ZooKeeper до тайм-аута
        session-timeout-ms: ${ZOOKEEPER_KAFKA_SESSION_TIMEOUT_MS:86400000}
# корневой путь к хосту ZooKeeper для брокера сообщений Kafka
        chroot: ${ZOOKEEPER_KAFKA_CHROOT:}
# максимальное количество повторных попыток соединения с брокером Kafka
        connectionRetryCount: ${ZOOKEEPER_KAFKA_CONNECTION_RETRY_COUNT:1}
# настройки администратора Kafka
    admin:
# время ожидания (в миллисекундах) входного потока данных брокером Kafka до тайм-аута
      inputStreamTimeoutMs: ${KAFKA_INPUT_STREAM_TIMEOUT_MS:2000}
# параметры регистрации системных событий в сигнальном топике Kafka
    status.event.publish:
# имя топика Kafka, в котором регистрируются события
      topic: ${KAFKA_STATUS_EVENT_TOPIC:status.event.topic}
# разрешение на регистрацию событий в топике
      enabled: ${KAFKA_STATUS_EVENT_ENABLED:false}
# дополнительное разрешение на регистрацию событий по операциям записи
      writeOperationsEnabled: ${KAFKA_STATUS_EVENT_WRITE_OPERATIONS_ENABLED:false}
# дополнительное разрешение на регистрацию событий по созданию и удалению внешних таблиц
      externalDDLEnabled: ${KAFKA_STATUS_EVENT_EXTERNAL_DDL_ENABLED:false}
# настройки при использовании фреймворка vertx
  vertx:
# время в (секундах), после которого заблокированный поток пишет stacktrace
    blocking-stacktrace-time: ${DTM_VERTX_BLOCKING_STACKTRACE_TIME:1}
    pool:
# максимальный размер пула потоков, выполняющих долгие операции
      worker-pool: ${DTM_CORE_WORKER_POOL_SIZE:20}
# максимальный размер пула потоков, обрабатывающих события vertx
      event-loop-pool: ${DTM_CORE_EVENT_LOOP_POOL_SIZE:20}
# максимальный размер пула задач в сервисе исполнения запросов
      task-pool: ${DTM_CORE_TASK_POOL_SIZE:20}
# время (в миллисекундах) завершения задачи, выполняемой в сервисе исполнения запросов
      task-timeout: ${DTM_CORE_TASK_TIMEOUT:86400000}
# настройки кэширования запросов
  cache:
# начальная емкость кэша
    initialCapacity: ${CACHE_INITIAL_CAPACITY:100000}
# максимальный размер кэша
    maximumSize: ${CACHE_MAXIMUM_SIZE:100000}
# время (в минутах) устаревания кэша после последнего обращения к нему
    expireAfterAccessMinutes: ${CACHE_EXPIRE_AFTER_ACCESS_MINUTES:99960}
# настройки отката дельт
  delta:
# периодичность (в миллисекундах) проверки операций записи, требующих остановки
    rollback-status-calls-ms: ${DELTA_ROLLBACK_STATUS_CALLS_MS:2000}
# количество попыток отката дельты (0 — количество не ограничено, 1 — без повторных попыток)
    rollbackRetryCount: ${DELTA_ROLLBACK_RETRY_COUNT:3}
# время ожидания между попытками отката дельты в миллисекундах
    rollbackRetryTimeoutMs: ${DELTA_ROLLBACK_RETRY_TIMEOUT_MS:1000}
# максимальное время (в миллисекундах) ожидания завершения операций при откате дельты (0 — время не ограничено)
    rollbackOperationsTimeoutMs: ${DELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS:29000}
# настройки отката операций записи
  writeoperation:
# количество попыток отката операции записи (0 — количество не ограничено, 1 — без повторных попыток)
    rollbackRetryCount: ${WRITE_OPERATION_ROLLBACK_RETRY_COUNT:3}
# время ожидания между попытками отката операции записи в миллисекундах
    rollbackRetryTimeoutMs: ${WRITE_OPERATION_ROLLBACK_RETRY_TIMEOUT_MS:1000}
# настройки сбора статистики по сущностям
  statistics:
# признак сбора статистики
    enabled: ${CORE_STATISTICS_ENABLED:true}
# количество потоков, обрабатывающих сбор статистики
    threadsCount: ${CORE_STATISTICS_THREADS_COUNT:2}
# признак подсчета строк сущностей в статистике
    dataCountEnabled: ${CORE_STATISTICS_DATA_COUNT_ENABLED:true}
# периодичность расчета количества строк в логической сущности (в миллисекундах); если значение равно 0, расчет отключен
    dataCountCheckPeriodMs: ${CORE_STATISTICS_DATA_COUNT_CHECK_PERIOD_MS:10000}

# настройки отправки системных сообщений о событиях endpointS
  poststatusevent:
# настройки подписчиков-получателей сообщений
    subscriberGroup:
# список сетевых адресов и путь к HTTP-интерфейсу для отправки сообщений подписчику в формате: http://host_1:port_1,host_2:port_2,.../endpoint
      - endpointUrl: ${POST_STATUS_EVENT_SUBSCRIBER_GROUP_ENDPOINT_URL:}
# время ожидания (в миллисекундах) ответа подписчика до тайм-аута
        endpointTimeoutMs: ${POST_STATUS_EVENT_SUBSCRIBER_GROUP_ENDPOINT_TIMEOUT_MS:5000}
# время ожидания (в миллисекундах) между попытками повторной отправки неотправленных сообщений
        endpointRetryTimeoutMs: ${POST_STATUS_EVENT_SUBSCRIBER_GROUP_ENDPOINT_RETRY_TIMEOUT_MS:5000}
# время накопления сообщений (в миллисекундах) до их отправки подписчику; если значение равно 0, сообщения отправляются немедленно, без их накопления
        bufferingPeriodMs: ${POST_STATUS_EVENT_SUBSCRIBER_GROUP_BUFFERING_PERIOD_MS:0}
# размер буфера сообщений, не отправленных из-за сбоя отправки
        bufferSize: ${POST_STATUS_EVENT_SUBSCRIBER_GROUP_BUFFER_SIZE:1000}
# дополнительное разрешение на отправку сообщений о событиях по операциям записи
        writeOperationsEnabled: ${POST_STATUS_EVENT_SUBSCRIBER_GROUP_WRITE_OPERATIONS_ENABLED:false}
# дополнительное разрешение на отправку сообщений о событиях по созданию и удалению внешних таблиц
        externalDDLEnabled: ${POST_STATUS_EVENT_SUBSCRIBER_GROUP_EXTERNAL_DDL_ENABLED:false}

Настройки датасорсов типа ADB

# настройки ADB
adb:
# настройки датасорсов типа ADB
  datasource:
# отметка элемента в массиве датасорсов и имя датасорса; каждый элемент массива содержит настройки одного датасорса типа ADB
    - name: ADB
# окружение (указывает базу данных в датасорсе)
      env: ${ADB_ENV_NAME:${DTM_NAME:test}}
# имя пользователя/логин для авторизации в датасорсе
      user: ${ADB_USERNAME:dtm}
# пароль для авторизации в датасорсе
      password: ${ADB_PASS:}
# сетевой адрес хоста датасорса
      host: ${ADB_HOST:localhost}
# сетевой порт на хосте датасорса
      port: ${ADB_PORT:5432}
# лимит подключений к датасорсу в одном потоке; лимит по всем потокам равен произведению poolSize и executorsCount
      poolSize: ${ADB_MAX_POOL_SIZE:3}
# количество одновременных потоков, исполняющих запросы к датасорсу
      executorsCount: ${ADB_EXECUTORS_COUNT:3}
# максимальный размер кэша запроса prepared statement
      preparedStatementsCacheMaxSize: ${ADB_PREPARED_CACHE_MAX_SIZE:256}
# максимальный размер запроса prepared statement, который может быть закэширован
      preparedStatementsCacheSqlLimit: ${ADB_PREPARED_CACHE_SQL_LIMIT:2048}
# признак кэширования запросов prepared statement
      preparedStatementsCache: ${ADB_PREPARED_CACHE:true}
# максимальное количество попыток восстановить соединение (0 — количество не ограничено)
      maxReconnections: ${ADB_MAX_RECONNECTIONS:0}
# максимальное количество запросов, проходящих через соединение перед его переподключением (0 — количество не ограничено)
      queriesByConnectLimit: ${ADB_QUERIES_BY_CONNECT_LIMIT:1000}
# интервал (в миллисекундах) между попытками восстановить соединение (0 — без интервала)
      reconnectionInterval: ${ADB_RECONNECTION_INTERVAL:5000}
# настройки механизма выгрузки данных (Kafka-Greenplum reader) из датасорса
      mppr:
# размер буфера при выгрузке данных из датасорса
        bufferSize: ${ADB_MPPR_BUFFER_SIZE:1000}
# настройки механизма загрузки данных (Kafka-Greenplum writer) в датасорс
      mppw:
# признак использования улучшенного PXF-коннектора; при значении false данные загружаются с помощью FDW-коннектора
        usePxfConnector: ${ADB_MPPW_USE_ADVANCED_CONNECTOR:true}
# имя консьюмер-группы датасорса для взаимодействия с брокером сообщений Kafka
        consumerGroup: ${ADB_LOAD_GROUP:adb-emulator-load-adb}
# максимальный размер пула подключений к датасорсу для операций загрузки данных
        poolSize: ${ADB_MPPW_POOL_SIZE:2}
# время ожидания (в миллисекундах) до остановки загрузки
        stopTimeoutMs: ${ADB_MPPW_STOP_TIMEOUT_MS:86400000}
# максимальное количество сообщений для операций загрузки данных в датасорс
        defaultMessageLimit: ${ADB_MPPW_DEFAULT_MESSAGE_LIMIT:1000}
# время ожидания (в миллисекундах) для FDW-коннектора датасорса
        fdwTimeoutMs: ${ADB_MPPW_FDW_TIMEOUT_MS:1200}

Настройки датасорсов типа ADG

# настройки ADG
adg:
# настройки датасорсов типа ADG
  datasource:
# отметка элемента в массиве датасорсов и имя датасорса; каждый элемент массива содержит настройки одного датасорса типа ADG
    - name: ADG
# окружение датасорса
      env: ${ADG_ENV_NAME:${DTM_NAME:test}}
# сетевой адрес хоста датасорса
      host: ${TARANTOOL_DB_HOST:localhost}
# сетевой порт на хосте датасорса
      port: ${TARANTOOL_DB_PORT:3306}
# имя пользователя/логин для авторизации в датасорсе
      user: ${TARANTOOL_DB_USER:admin}
# пароль для авторизации в датасорсе
      password: ${TARANTOOL_DB_PASS:}
# время ожидания (в миллисекундах) выполнения операции датасорса
      operationTimeout: ${TARANTOOL_DB_OPER_TIMEOUT:60000}
# максимальное количество повторных попыток выполнения операции
      retryCount: ${TARANTOOL_DB_RETRY_COUNT:0}
# движок датасорса
      engine: ${TARANTOOL_DEFAULT_ENGINE:MEMTX}
# количество вертиклов, обрабатывающих запросы к датасорсу
      vertxWorkers: ${TARANTOOL_VERTX_WORKERS:10}
# конечная точка для запросов
      queryRestEndpoint: ${TARANTOOL_QUERY_REST_ENDPOINT:http://localhost:8080/api/v1/query}
# настройки синхронизации материализованных представлений в датасорсе
      sync:
# время ожидания (в миллисекундах) подключения к датасорсу до тайм-аута
        timeout_connect: ${TARANTOOL_DB_SYNC_CONNECTION_TIMEOUT:5000}
# время ожидания (в миллисекундах) чтения из датасорса до тайм-аута
        timeout_read: ${TARANTOOL_DB_SYNC_READ_TIMEOUT:5000}
# время ожидания (в миллисекундах) запроса в датасорсе до тайм-аута
        timeout_request: ${TARANTOOL_DB_SYNC_REQUEST_TIMEOUT:5000}
# размер буфера запросов в датасорсе
        bufferSize: ${TARANTOOL_DB_SYNC_BUFFER_SIZE:5000}
# настройки картриджа Tatantool
      cartridge:
# сетевой путь и порт к картриджу Tarantool
        url: ${TARANTOOL_CATRIDGE_URL:http://localhost:8086}
# настройки механизма загрузки данных (MPPW)
      mppw:
# имя консьюмер-группы датасорса для взаимодействия с брокером сообщений Kafka
        consumerGroup: ${ADG_CONSUMER_GROUP:tarantool-group-csv}
# максимальное количество сообщений в топике Kafka на раздел датасорса
        maxNumberOfMessagesPerPartition: ${ADG_MAX_MSG_PER_PARTITION:200}
# настройки отката операции
      rollback:
# размер пакета операций при откате
        eraseOperationBatchSize: ${ADG_ROLLBACK_OPERATION_BATCH_SIZE:300}

Настройки датасорсов типа ADQM

# настройки ADQM
adqm:
# настройки датасорсов типа ADQM
  datasource:
# отметка элемента в массиве датасорсов и имя датасорса; каждый элемент массива содержит настройки одного датасорса типа ADQM
    - name: ADQM
# окружение датасорса
      env: ${ADQM_ENV_NAME:${DTM_NAME:test}} 
# имя базы данных
      database: ${ADQM_DB_NAME:default}
# имя пользователя/логин для авторизации в датасорсе
      user: ${ADQM_USERNAME:}
# пароль для авторизации в датасорсе
      password: ${ADQM_PASS:}
# сетевой адрес хоста датасорса и номер порта на хосте
      hosts: ${ADQM_HOSTS:localhost:8123}
# время ожидания (в миллисекундах) отклика соединения с датасорсом до тайм-аута
      socketTimeout: ${ADQM_SOCKET_TIMEOUT:30000}
# время ожидания (в миллисекундах) завершения обмена данными с датасорсом до тайм-аута
      dataTransferTimeout: ${ADQM_DATA_TRANSFER_TIMEOUT:10000}
# размер буфера запросов в датасорсе
      bufferSize: ${ADQM_BUFFER_SIZE:10000}
# настройки DDL-операторов
      ddl:
# имя кластера датасорсов
        cluster: ${ADQM_CLUSTER:default_cluster}
# алгоритм шардирования данных; 
# возможные значения: CITY_HASH_64 (значение по умолчанию с версии 5.3 включительно), INT_ADD (значение по умолчанию до версии 5.2 включительно)
        shardingKeyExpr: ${ADQM_SHARDING_EXPR:CITY_HASH_64}
# настройки механизма выгрузки данных (Kafka-Clickhouse reader) из датасорса
      mppr:
# сетевой адрес и путь для запросов на выгрузку данных
        loadingUrl: ${ADQM_MPPR_CONNECTOR_URL:http://localhost:8087/query}
# сетевой адрес и путь для получения информации о версии коннектора
        versionUrl: ${ADQM_MPPR_CONNECTOR_VERSION_URL:http://localhost:8087/versions}
# настройки механизма загрузки данных (Kafka-Clickhouse writer) в датасорс
      mppw:
# сетевой адрес и путь к REST-интерфейсу для загрузки новых данных в датасорс
        restStartLoadUrl: ${ADQM_REST_START_LOAD_URL:http://localhost:8091/newdata/start}
# сетевой адрес и путь к REST-интерфейсу для остановки загрузки данных в датасорс
        restStopLoadUrl: ${ADQM_REST_STOP_LOAD_URL:http://localhost:8091/newdata/stop}
# сетевой адрес и путь для получения информации о версии коннектора
        versionUrl: ${ADQM_MPPW_CONNECTOR_VERSION_URL:http://localhost:8091/versions}
# имя консьюмер-группы для загрузки данных в датасорс по REST API
        restLoadConsumerGroup: ${ADQM_REST_LOAD_GROUP:adb-emulator-load-adqm}

Настройки датасорсов типа ADP

# настройки ADP
adp:
# настройки датасорсов типа ADP
  datasource:
# отметка элемента в массиве датасорсов и имя датасорса; каждый элемент массива содержит настройки одного датасорса типа ADP
    - name: ADP
# окружение (указывает базу данных в датасорсе)
      env: ${ADP_ENV_NAME:${DTM_NAME:test}}
# имя пользователя/логин для авторизации в датасорсе
      user: ${ADP_USERNAME:dtm}
# пароль для авторизации в датасорсе
      password: ${ADP_PASS:}
# сетевой адрес хоста датасорса
      host: ${ADP_HOST:localhost}
# сетевой порт на хосте датасорса
      port: ${ADP_PORT:5432}
# лимит подключений к датасорсу в одном потоке; лимит по всем потокам равен произведению poolSize и executorsCount
      poolSize: ${ADP_MAX_POOL_SIZE:3}
# количество одновременных потоков, исполняющих запросы к датасорсу
      executorsCount: ${ADP_EXECUTORS_COUNT:3}
# максимальное время ожидания выполнения запроса в очереди подключений (0 — не ограничено)
      poolRequestTimeout: ${ADP_POOL_REQUEST_TIMEOUT:0}
# максимальный размер кэша запроса prepared statement
      preparedStatementsCacheMaxSize: ${ADP_PREPARED_CACHE_MAX_SIZE:256}
# максимальный размер запроса prepared statement, который может быть закэширован
      preparedStatementsCacheSqlLimit: ${ADP_PREPARED_CACHE_SQL_LIMIT:2048}
# признак кэширования запросов prepared statement
      preparedStatementsCache: ${ADP_PREPARED_CACHE:true}
# время бездействия подключения к датасорсу до тайм-аута и закрытия подключения
      idleTimeoutMs: ${ADP_IDLE_TIMEOUT_MS:60000}
# время поддержания подключения к датасорсу до его закрытия (0 — время не ограничено)
      maxLifetimeTimeoutMs: ${ADP_MAX_LIFETIME_TIMEOUT_MS:0}
# настройки механизма загрузки данных (Kafka-Postgres writer) в датасорс
      mppw:
# список сетевых адресов и путь к REST-интерфейсу для загрузки данных в формате: http://host_1:port_1,host_2:port_2,.../newdata/start
        restStartLoadUrl: ${ADP_REST_START_LOAD_URL:http://localhost:8096/newdata/start}
# список сетевых адресов и путь к REST-интерфейсу для остановки загрузки данных в формате: http://host_1:port_1,host_2:port_2,.../newdata/stop
        restStopLoadUrl: ${ADP_REST_STOP_LOAD_URL:http://localhost:8096/newdata/stop}
# список сетевых адресов и путь для получения информации о версии коннектора в формате: http://host_1:port_1,host_2:port_2,.../versions
        restVersionUrl: ${ADP_MPPW_CONNECTOR_VERSION_URL:http://localhost:8096/versions}
# путь метода get-коннектора
        restGetEndpoint: ${ADP_MPPW_GET_ENDPOINT:/newdata/get}
# уникальное имя консьюмер-группы для загрузки данных в датасорс; для разных датасорсов одного типа должны быть указаны разные имена
        kafkaConsumerGroup: ${ADP_KAFKA_CONSUMER_GROUP:adp-load}
# время ожидания (в миллисекундах) get-метода коннектора до тайм-аута
        restGetTimeoutMs: ${ADP_REST_GET_TIMEOUT_MS:5000}
# время ожидания (в миллисекундах) до тайм-аута при проверке доступности коннектора
        checkTimeoutMs: ${ADP_MPPW_CONNECTOR_CHECK_TIMEOUT_MS:2000}
# количество попыток установки соединения при обращении к коннектору (0 — количество не ограничено, 1 — без повторных попыток)
        retryCount: ${ADP_MPPW_CONNECTOR_RETRY_COUNT:1}
# настройки механизма выгрузки данных (Kafka-Postgres reader) из датасорса
      mppr:
# список сетевых адресов и путь для запросов на выгрузку данных в формате: http://host_1:port_1,host_2:port_2,.../query
        restLoadUrl: ${ADP_MPPR_QUERY_URL:http://localhost:8094/query}
# список сетевых адресов и путь для получения информации о версии коннектора в формате: http://host_1:port_1,host_2:port_2,.../versions
        restVersionUrl: ${ADP_MPPR_CONNECTOR_VERSION_URL:http://localhost:8094/versions}
# время ожидания (в миллисекундах) до тайм-аута при проверке доступности коннектора
        checkTimeoutMs: ${ADP_MPPR_CONNECTOR_CHECK_TIMEOUT_MS:2000}
 # количество попыток установки соединения при обращении к коннектору (0 — количество не ограничено, 1 — без повторных попыток)
        retryCount: ${ADP_MPPR_CONNECTOR_RETRY_COUNT:1}