Link Search Menu Expand Document

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

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

В разделе представлен примеры актуальных файлов конфигурации системы: конфигурации сервиса исполнения запросов и конфигурации сервиса мониторинга статусов Kafka. Перед каждым параметром указан комментарий, поясняющий назначение этого параметра. Для наглядности конфигурация сервиса исполнения запросов параметры разделена на отдельные секции.

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

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

# раздел настроек журналирования
logging:
# задание уровня важности сообщений, журналируемых в лог-файле
  level:
io.arenadata.dtm.query.execution: TRACE

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

# раздел настроек управления DTM
management:
# номер порта сервиса метрик
  server:
    port: ${DTM_METRICS_PORT:8080}
# настройки конечных точек ADTM
  endpoints:
# настройка генерации метрик со стороны ADTM
    enabled-by-default: ${DTM_METRICS_ENABLED:true}
# настройка видимости метрик через веб-соединения
    web:
      exposure:
# состав метрик, видимых через веб-соединения
        include: ${DTM_METRICS_SCOPE:info, health, requests}

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

# раздел настроек сервиса исполнения запросов
core:
# настройки плагинов
  plugins:
# список работающих плагинов к соответствующим СУБД
    active: ${CORE_PLUGINS_ACTIVE:ADG, ADB, ADQM}
# настройки профилей приоритетности СУБД по категориям SQL-запросов
    category:
      mapping:
# профиль для общих реляционных запросов
        RELATIONAL: ${DTM_CORE_PLUGINS_RELATIONAL:ADB, ADQM, ADG}
# профиль для запросов аналитики
        ANALYTICAL: ${DTM_CORE_PLUGINS_ANALYTICAL:ADQM, ADB, ADG}
# профиль для запросов ключ-значение
        DICTIONARY: ${DTM_CORE_PLUGINS_DICTIONARY:ADG, ADB, ADQM}
# профиль для других категорий запросов
        UNDEFINED:  ${DTM_CORE_PLUGINS_UNDEFINED: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}
# настройки окружения
  env:
# имя окружения для формирования полных имен логических БД
    name: ${DTM_NAME:test}
# настройки временной зоны
  settings:
timeZone: ${CORE_TIME_ZONE:UTC}
# настройки генерации метрики сервиса исполнения запросов
  metrics:
    isEnabled: ${DTM_CORE_METRICS_ENABLED:true}
# настройки источника данных
  datasource:
# настройки для EDML-операторов
    edml:
# тип СУБД-источника (ADB, ADQM, ADG)
      sourceType: ${EDML_DATASOURCE:ADB}
# количество записей, по умолчанию выгружаемых в одном сообщении топика Ка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:10.92.3.47}
# интервал времени ожидания (в миллисекундах) соединения с хостом 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}
# настройки взаимодействия сервиса исполнения запросов с брокером сообщений Kafka
  kafka:
    producer:
      property:
# указание сериализатора строковых ключей
        key.serializer: org.apache.kafka.common.serialization.StringSerializer
# указание сериализатора строковых значений
        value.serializer: org.apache.kafka.common.serialization.StringSerializer
# настройка кластера Zookeeper для взаимодействия с брокером сообщений Kafka
    cluster:
      zookeeper:
# сетевой адрес хоста Zookeeper для брокера сообщений Kafka
        connection-string: ${ZOOKEEPER_KAFKA_ADDRESS:10.92.3.47}
# интервал времени ожидания (в миллисекундах) соединения с хостом Zookeeper для брокера сообщений Kafka до достижения тайм-аута
        connection-timeout-ms: ${ZOOKEEPER_KAFKA_CONNECTION_TIMEOUT_MS:30000}
# интервал времени бездействия (в миллисекундах) в сессии хоста Zookeeper для брокера сообщений Kafka до достижения тайм-аута
        session-timeout-ms: ${ZOOKEEPER_KAFKA_SESSION_TIMEOUT_MS:86400000}
# корневой путь к хосту Zookeeper для брокера сообщений Kafka
        chroot: ${ZOOKEEPER_KAFKA_CHROOT:}
# настройки администратора Kafka
    admin:
# интервал времени ожидания (в миллисекундах) входного потока данных для брокера сообщений Kafka до достижения тайм-аута
      inputStreamTimeoutMs: ${KAFKA_INPUT_STREAM_TIMEOUT_MS:2000}
# настройки статусов публикации событий брокером сообщений Kafka
    status.event.publish:
# разрешение на публикацию событий
      enabled: ${KAFKA_STATUS_EVENT_ENABLED:false}
# наименование топика Kafka, в который публикуются события
      topic: ${KAFKA_STATUS_EVENT_TOPIC:status.event}
# настройки подключения к сервису мониторинга статусов Kafka 
    statusMonitor:
# сетевой адрес и путь для получения информации о статусе сервиса
      statusUrl: ${STATUS_MONITOR_URL:http://127.0.0.1:9095/status}
# сетевой адрес и путь для получения информации о версии сервиса
      versionUrl: ${STATUS_MONITOR_VERSION_URL:http://127.0.0.1:9095/versions}
# настройки при использовании фреймворка vertx
  vertx:
    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}

Настройки СУБД ADB

# настройка СУБД ADB
adb:
# настройка источника данных СУБД ADB
  datasource:
# имя пользователя/логин для авторизации в СУБД ADB
    user: ${ADB_USERNAME:dtm}
# пароль для авторизации в СУБД ADB
    password: ${ADB_PASS:dtm}
# сетевой адрес хоста с СУБД ADB
    host: ${ADB_HOST:10.92.3.105}
# сетевой адрес порта на хосте с СУБД ADB
    port: ${ADB_PORT:5432}
# максимальный размер пула подключений к СУБД ADB
    poolSize: ${ADB_MAX_POOL_SIZE:5}
# количество потоков, исполняющих запросы к СУБД ADB
    executorsCount: ${ADB_EXECUTORS_COUNT:20}
# максимальный размер результата, возвращаемого по FETCH-запросу к СУБД ADB
    fetchSize: ${ADB_FETCH_SIZE:1000}
# настройки механизма загрузки данных в СУБД ADB
  mppw:
# наименование консьюмер-группы СУБД ADB для взаимодействия с брокером сообщений Kafka
    consumerGroup: ${ADB_LOAD_GROUP:adb-emulator-load-adb}
# максимальный размер пула подключений к СУБД ADB для операций загрузки
    poolSize: ${ADB_MPPW_POOL_SIZE:2}
# значение тайм-аута ожидания (в миллисекундах) для остановки загрузки
    stopTimeoutMs: ${ADB_MPPW_STOP_TIMEOUT_MS:86400000}
# предельное количество сообщений для операции загрузки в СУБД ADB
    defaultMessageLimit: ${ADB_MPPW_DEFAULT_MESSAGE_LIMIT:100}
# значение тайм-аута ожидания (в миллисекундах) для FDW-коннектора ADB
    fdwTimeoutMs: ${ADB_MPPW_FDW_TIMEOUT_MS:1000}
# признак использования исторических таблиц
  with-history-table: ${ADB_WITH_HISTORY_TABLE:false}

Настройки СУБД ADG

# настройка СУБД ADG
adg:
  tarantool:
    db:
# сетевой адрес хоста с СУБД ADG
      host: ${TARANTOOL_DB_HOST:10.92.3.120}
# сетевой адрес порта на хосте с СУБД ADG
      port: ${TARANTOOL_DB_PORT:3306}
# имя пользователя/логин для авторизации в СУБД ADG
      user: ${TARANTOOL_DB_USER:admin}
# пароль для авторизации в СУБД ADG
      password: ${TARANTOOL_DB_PASS:memstorage-cluster-cookie}
# максимальный интервал времени ожидания выполнения операции СУБД ADG до тайм-аута
      operationTimeout: ${TARANTOOL_DB_OPER_TIMEOUT:60000}
# максимальное количество повторных попыток выполнения операции
      retryCount: ${TARANTOOL_DB_RETRY_COUNT:0}
# движок СУБД ADG
      engine: ${TARANTOOL_DEFAULT_ENGINE:MEMTX}
# настройки картриджа Tatantool
    cartridge:
# сетевой путь и порт к картриджу Tarantool
      url: ${TARANTOOL_CATRIDGE_URL:http://10.92.3.120:8086}
# настройки механизма загрузки данных
  mppw:
# наименование консьюмер-группы СУБД ADG для взаимодействия с брокером сообщений Kafka
    consumerGroup: ${ADG_CONSUMER_GROUP:tarantool-group-csv}
    kafka:
# максимальное количество сообщений в топике Kafka на раздел СУБД ADG
      maxNumberOfMessagesPerPartition: ${ADG_MAX_MSG_PER_PARTITION:200}
# время простоя (в секундах) callback-функции
      callbackFunctionSecIdle: ${ADG_CB_FUNC_IDLE:100}
# настройки отката операции
  rollback:
# размер пакета операций при откате
    eraseOperationBatchSize: ${ADG_ROLLBACK_OPERATION_BATCH_SIZE:300}
# настройки отказоустойчивости ADG по паттерну circuitbreaker
  circuitbreaker:
# максимальное количество отказов ADG
    maxFailures: ${ADG_CIRCUIT_BREAKER_MAX_FAILURES:5}
# интервал времени фиксации отказа при пропадании отклика ADG
    timeout: ${ADG_CIRCUIT_BREAKER_TIMEOUT:30000}
# использование паттерна fallback при отказе
    fallbackOnFailure: ${ADG_CIRCUIT_BREAKER_FALLBACK_ON_FAILURE:false}
# интервал времени до сброса по паттерну timeout
    resetTimeout: ${ADG_CIRCUIT_BREAKER_RESET_TIMEOUT:10000}
# настройки для подключений веб-клиентов
  web-client:
# максимальный размер пула подключений веб-клиентов к СУБД ADG
    max-pool-size: ${ADG_WEB_CLIENT_MAX_POOL_SIZE:100}

Настройки СУБД ADQM

# настройки СУБД ADQM
adqm:
# настройка источника данных СУБД ADQM
  datasource:
# наименование СУБД ADQM
    database: ${ADQM_DB_NAME:upload}
# имя пользователя/логин для авторизации в СУБД ADQM
    user: ${ADQM_USERNAME:}
# пароль для авторизации в СУБД ADQM
    password: ${ADQM_PASS:}
# сетевой адрес хоста с СУБД ADQM и номер порта на хосте
    hosts: ${ADQM_HOSTS:10.92.3.30:8123}
# интервал времени ожидания отклика соединения с СУБД ADQM до тайм-аута
    socketTimeout: ${ADQM_SOCKET_TIMEOUT:30000}
# интервал времени ожидания завершения обмена данными с СУБД ADQM до тайм-аута
    dataTransferTimeout: ${ADQM_DATA_TRANSFER_TIMEOUT:10000}
# настройки DDL-операторов
  ddl:
# наименование кластера СУБД ADQM
    cluster: ${ADQM_CLUSTER:test_arenadata}
# настройки механизма выгрузки данных из ADQM
  mppr:
# сетевой адрес и путь для запросов на выгрузку данных
    loadingUrl: ${ADQM_MPPR_CONNECTOR_URL:http://10.92.3.14:8086/query}
# сетевой адрес и путь для получения информации о версии коннектора
    versionUrl: ${ADQM_MPPR_CONNECTOR_VERSION_URL:http://10.92.3.14:8086/versions}
# настройки механизма загрузки данных ADQM
  mppw:
# наименование консьюмер-группы СУБД ADQM для загрузки данных в СУБД ADQM
# не используется
    consumerGroup: ${ADQM_CONSUMER_GROUP:adqm}
# сетевой адрес брокера сообщений Kafka
    kafkaBrokers: ${ADQM_BROKERS:10.92.3.31:9092}
# тип интерфейса для загрузки данных в СУБД ADQM
    loadType: ${ADQM_MPPW_LOAD_TYPE:REST}
# сетевой адрес и путь к REST-интерфейсу для загрузки новых данных в СУБД ADQM
    restStartLoadUrl: ${ADQM_REST_START_LOAD_URL:http://10.92.3.86:8090/newdata/adqm/start}
# сетевой адрес и путь к REST-интерфейсу для остановки загрузки данных в СУБД ADQM
    restStopLoadUrl: ${ADQM_REST_STOP_LOAD_URL:http://10.92.3.86:8090/newdata/adqm/stop}
# сетевой адрес и путь для получения информации о версии коннектора
    versionUrl: ${ADQM_MPPW_CONNECTOR_VERSION_URL:http://10.92.3.86:8090/versions}
# наименование коньсюмер-группы для загрузки данных в СУБД ADQM через REST API
    restLoadConsumerGroup: ${ADQM_REST_LOAD_GROUP:adb-emulator-load-adqm}
# настройки для подключений веб-клиентов
  web-client:
# максимальный размер пула подключений веб-клиентов к СУБД ADQM
    max-pool-size: ${ADQM_WEB_CLIENT_MAX_POOL_SIZE:100}

Конфигурация сервиса мониторинга статусов Kafka

# настройки cервиса мониторинга статусов Kafka
monitor:
# список адресов брокеров сообщений Kafka
brokersList: ${STATUS_MONITOR_BROKERS:10.92.3.31:9092}
# количество потребителей (консьюмеров) cервиса мониторинга Kafka
consumersCount: ${STATUS_MONITOR_CONSUMERS:8}