{{define "section"}} {{$X := .}}{{$S := $X.S}}

QUIK — Экспорт биржевой информации

Модуль ARQA «Экспорт биржевой информации» выгружает данные сервера QUIK (портфели клиентов, позиции, сделки, справочники) в базу PostgreSQL. bj управляет им отсюда: ключи и логин QUIK, где держим базу, какой объём данных выгружаем, состояние службы и место на диске. На этих данных работают модуль «НПР / УДС» и дополнительные проверки M2M. Лицензионный признак quik-export.

{{range $X.Warnings}}
{{.}}
{{end}}

Состояние модуля

{{if not $X.Licensed}}не входит в лицензию — см. раздел «Лицензия»{{end}}
Служба quikexport
{{if not $X.Service.Installed}}не установлена{{else if eq $X.Service.Active "active"}}работает{{else}}{{$X.Service.Active}}{{end}}
{{if $X.Service.PID}}PID {{$X.Service.PID}} · {{end}}{{if $X.Service.MemoryMB}}память {{$X.Service.MemoryMB}} МБ · {{end}}автозапуск {{if $X.Service.Enabled}}да{{else}}нет{{end}}{{if $X.Service.Restarts}} · перезапусков {{$X.Service.Restarts}}{{end}}
Данные из QUIK
{{if $X.DB.OK}}{{if $X.DB.LastTick.IsZero}}нет пульса{{else if lt $X.DB.TickAgeSec 180}}свежие{{else}}устарели{{end}}
{{if not $X.DB.LastTick.IsZero}}цикл {{msk $X.DB.LastTick}} ({{$X.DB.TickAgeSec}} с назад) · {{end}}клиентов {{$X.DB.Clients}}
{{else}}база недоступна
{{$X.DB.Error}}
{{end}}
Объём базы {{$S.DBName}}
{{printf "%.0f" $X.DB.DBSizeMB}} МБ
история НПР {{$X.DB.HistoryRows}} строк{{if not $X.DB.HistoryFrom.IsZero}} с {{$X.DB.HistoryFrom.Format "02.01.2006"}}{{end}} · рост ≈ {{printf "%.1f" $X.DB.GrowthMBDay}} МБ/сутки ({{$X.DB.Rows24h}} событий за 24 ч)
Диск {{if $X.DiskDB.OK}}базы данных{{else}}экспортёра{{end}}
{{with $X.DiskDB}}{{if .OK}}свободно {{printf "%.1f" .FreeGB}} ГБ из {{printf "%.0f" .TotalGB}}
занято {{.UsedPct}}% · {{.Path}}
{{end}}{{end}} {{if not $X.DiskDB.OK}}{{with $X.DiskExp}}свободно {{printf "%.1f" .FreeGB}} ГБ из {{printf "%.0f" .TotalGB}}
занято {{.UsedPct}}%
{{end}}{{end}}
Логи и кэш экспортёра
{{printf "%.0f" $X.LogsMB}} МБ логов
{{range $X.Logs}}{{if .Exists}}{{.Name}} {{printf "%.0f" .SizeMB}} МБ · {{end}}{{end}}кэш QAPI {{printf "%.0f" $X.QAPIMB}} МБ · ротация: ежедневно / 200 МБ, 5 копий
{{if $X.DB.Tables}}
Крупнейшие таблицы базы {{range $X.DB.Tables}}{{end}}
ТаблицаРазмерСтрок (оценка)
{{.Name}}{{.Size}}{{.Rows}}
{{end}}
{{if and $X.Service.Installed (not $X.Service.Enabled)}}
{{end}}
{{if $X.LogTail}}
Последние строки export.log{{if $X.ErrTail}} и export.err{{end}}
{{range $X.LogTail}}{{.}}
{{end}}{{if $X.ErrTail}}--- export.err ---
{{range $X.ErrTail}}{{.}}
{{end}}{{end}}
{{end}}

1. Подключение к серверу QUIK

Логин экспорта на сервере QUIK брокера (выдаёт администратор QUIK / ARQA) и пара ключей pubring.txk / secring.txk к нему. Одна учётная запись = одна сессия: второй экспортёр с тем же логином получит «Вы уже работаете в системе».

Ключи: {{if $S.KeysNames}}{{range $S.KeysNames}}{{.}} {{end}}{{if not $S.KeysAt.IsZero}}(загружены {{msk $S.KeysAt}}){{end}}{{else}}не загружены{{end}}. В каталоге экспортёра: {{range $X.Files}}{{.Name}} {{if .Exists}}✓ {{.ModTime.Format "02.01 15:04"}}{{else}}✗{{end}} · {{end}}

2. База данных экспорта

Куда экспортёр пишет данные. Обычно — наш PostgreSQL на этом же сервере (bj создаст базу, роли и схему одной кнопкой). Внешний сервер — если базу держит заказчик. Логин только для чтения используют модуль «НПР / УДС», проверки M2M и внешние системы (Grafana, отчёты).

SQL для внешнего сервера

Доступ для внешних систем и других модулей: {{if $X.ShowRO}}{{$X.RODSNFull}}{{else}}{{$X.RODSN}}{{end}} {{if $X.ShowRO}}скрыть пароль{{else}}показать пароль{{end}}{{if ne $S.DBMode "external"}} · снаружи: хост {{$X.ServerIP}}, доступ по IP открывает администратор (pg_hba){{end}}.

3. Объём данных

Какие таблицы QUIK выгружаем. Чем больше набор, тем больше нагрузка на сервер QUIK, база и диск. Портфели пересчитываются каждые «период портфелей» секунд (ARQA рекомендует не менее 60); история изменений НПР/УДС хранится в схеме npr.

{{range $X.Presets}} {{end}}
{{range $g := $X.Groups}}
{{$g}}
{{range $X.Tables}}{{if eq .Group $g}} {{end}}{{end}}
{{end}}
Сейчас включено: {{len $S.Tables}} таблиц — {{range $S.Tables}}{{.}} {{end}}

4. Применить к экспортёру

bj собирает export.ini, info.ini, секцию ODBC и ключи из настроек выше и устанавливает их в каталог службы ({{$S.Dir}}) с резервной копией прежних файлов, настраивает ротацию логов и перезапускает экспортёр. {{if not $S.AppliedAt.IsZero}}Последнее применение: {{msk $S.AppliedAt}}.{{end}}{{if not $S.Imported}} Если экспортёр уже настроен вручную — сначала «Прочитать настройки из экспортёра».{{end}}

Предпросмотр файлов

Установка на новом сервере: дистрибутив ARQA (install_quikexport-12.x.run, Linux) ставится установщиком bj в {{$S.Dir}}; нужны пакеты unixodbc, odbc-postgresql, libjemalloc2. Обновления экспортёра приходят через канал обновлений bj после проверки у нас.

{{end}}