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

Содержание раздела
  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}  
# настройки ноды в составе кластера
pnode:
# хост ноды
  host: ${PNODE_HOST:}
# порт внутреннего HTTP API
  httpPort: ${PNODE_HTTP_PORT:}
# признак работы кластера без лидера (в режиме leaderless): false — режим с лидером, true — режим без лидера
  leaderlessEnabled: ${PNODE_LEADERLESS_ENABLED:false}
# время ожидания соединения/запроса (в миллисекундах) до тайм-аута при обращении к лидеру 
  leaderCallTimeoutMs: ${PNODE_LEADER_CALL_TIMEOUT_MS:2000}  
# настройки swagger-ui
springdoc:
  api-docs:
    enabled: false
  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}

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

# настройки сервиса исполнения запросов
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}
# настройки сетевых подключений через 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}
# настройки 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}
# время ожидания подключения в миллисекундах
    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} 
# настройки окружения
  env:
# имя окружения для формирования полных имен логических БД
    name: ${DTM_NAME:test}
# настройки метрик prometheus
  prometheus:
# признак сбора метрик prometheus
    enabled: ${PROMETHEUS_ENABLED:true}
# настройки аутентификации
  auth:
# путь к API-методу авторизационного сервиса, возвращающему информацию о публичных ключах (JWKS или JSON Web Key Set) для проверки авторизационных токенов
    jwksUri: ${AUTH_JWKS_URI:}
# список ролей, назначаемых по умолчанию
    defaultRoles: ${CORE_DEFAULT_ROLES:env_owner}
# настройки восстановления состояния при запуске и перезапуске ноды Prostore
  restoration:
# признак восстановления состояния при запуске и перезапуске ноды Prostore
    autoRestoreState: ${AUTO_RESTORE_STATE: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}
# периодичность проверки запросов, запущенных на ноде кластера, для удаления данных согласно retention-правилам (в миллисекундах)
    checkQueriesPeriodMs: ${DATA_COOLING_CHECK_QUERIES_PERIOD_MS:30000}
# периодичность проверки доступности нод кластера для удаления данных согласно retention-правилам (в миллисекундах)
    checkTrimPeriodMs: ${DATA_COOLING_CHECK_TRIM_PERIOD_MS:30000}
# настройки очереди операций по изменению логической схемы данных
  ddlqueue:
# признак использования очереди операций; до версии 5.6.1 очередь не использовалась
    enabled: ${CORE_DDL_QUEUE_ENABLED:true}
# настройки tslog
  tslog:
# количество уровней вложенности элементов, отсчитываемое от корневого элемента tslog;
# значение можно изменять только до тех пор, пока в логических БД окружения нет операций записи и дельт
    maxDepth: ${TSLOG_MAX_DEPTH:2}
# максимальное количество записей в одном элементе tslog
    pageSize: ${TSLOG_PAGE_SIZE:1600}
# настройки 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:1000}
# количество попыток установки соединения при обращении к коннектору (0 — количество не ограничено, 1 — без повторных попыток)
    retryCount: ${KAFKA_JET_RETRY_COUNT:3}    
# настройки источника данных
  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}
# настройки ZooKeeper
    zookeeper:
# сетевой адрес хоста ZooKeeper для сервисной БД
      connection-string: ${ZOOKEEPER_DS_ADDRESS:localhost}
# время ожидания (в миллисекундах) сервисной БД до тайм-аута при соединении с хостом ZooKeeper
      connection-timeout-ms: ${ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000}
# время бездействия (в миллисекундах) сервисной БД в сессии хоста ZooKeeper до тайм-аута
      session-timeout-ms: ${ZOOKEEPER_DS_SESSION_TIMEOUT_MS:86400000}
# корневой путь к хосту ZooKeeper для сервисной БД
      chroot: ${ZOOKEEPER_DS_CHROOT:/adtm}
# количество попыток восстановления подключения к ZooKeeper во время выполнения операции (0 — количество не ограничено)
      connectionRetryCount: ${ZOOKEEPER_DS_CONNECTION_RETRY_COUNT:0}
# количество попыток выполнения операции в случае срабатывания блокировки optimistic (0 — количество не ограничено)
      optimisticRetryCount: ${ZOOKEEPER_DS_OPTIMISTIC_RETRY_COUNT:20}
# количество попыток выполнения операции записи в случае срабатывания блокировки optimistic (0 — количество не ограничено) 
      writeOptimisticRetryCount: ${ZOOKEEPER_DS_WRITE_OPTIMISTIC_RETRY_COUNT:1000}
# максимальное количество операций, которое можно выполнить до вызова COMMIT DELTA без ключевого слова IMMEDIATE;
# значение должно быть меньше ограничения ZooKeeper, равного 2147483647
      maxSequenceSize: ${ZOOKEEPER_DS_MAX_SEQUENCE_SIZE:2000000000}
# настройки взаимодействия сервиса исполнения запросов с брокером сообщений Kafka
  kafka:
    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:localhost}
# время ожидания (в миллисекундах) до тайм-аута при соединении брокера 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}
# максимальный размер пула потоков, обрабатывающих события ZooKeeper по дельтам
      delta-watcher-pool: ${DTM_DELTA_WATCHER_POOL_SIZE:10}
# настройки кэширования запросов
  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}
# настройки отката операций записи
  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}
# минимальный интервал (в миллисекундах) между запуском сессий подсчета строк в логической сущности
    dataCountPeriodMs: ${CORE_STATISTICS_DATA_COUNT_PERIOD_MS:0}

Настройки датасорсов типа 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}
# настройки механизма выгрузки данных (MPPR) из датасорса
      mppr:
# размер буфера при выгрузке данных из датасорса
        bufferSize: ${ADB_MPPR_BUFFER_SIZE:1000}
# настройки механизма загрузки данных (MPPW) в датасорс
      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}
# время простоя (в секундах) callback-функции
        callbackFunctionSecIdle: ${ADG_CB_FUNC_IDLE:100}
# настройки отката операции
      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}
# настройки механизма выгрузки данных (MPPR) из датасорса
      mppr:
# сетевой адрес и путь для запросов на выгрузку данных
        loadingUrl: ${ADQM_MPPR_CONNECTOR_URL:http://localhost:8087/query}
# сетевой адрес и путь для получения информации о версии коннектора
        versionUrl: ${ADQM_MPPR_CONNECTOR_VERSION_URL:http://localhost:8087/versions}
# настройки механизма загрузки данных (MPPW) в датасорс
      mppw:
# имя консьюмер-группы для загрузки данных в датасорс
# не используется
        consumerGroup: ${ADQM_CONSUMER_GROUP:adqm}
# сетевой адрес брокера сообщений Kafka
        kafkaBrokers: ${ADQM_BROKERS:localhost:9092}
# тип интерфейса для загрузки данных в датасорс
        loadType: ${ADQM_MPPW_LOAD_TYPE:REST}
# сетевой адрес и путь к 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}
# настройки механизма загрузки данных (MPPW) в датасорс
      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:1000}
# количество попыток установки соединения при обращении к коннектору (0 — количество не ограничено, 1 — без повторных попыток)
        retryCount: ${ADP_MPPW_CONNECTOR_RETRY_COUNT:3}
# настройки механизма выгрузки данных (MPPR) из датасорса
      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:1000}
 # количество попыток установки соединения при обращении к коннектору (0 — количество не ограничено, 1 — без повторных попыток)
        retryCount: ${ADP_MPPR_CONNECTOR_RETRY_COUNT:3}