Конфигурация
Конфигурация системы задается в текстовом файле 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}