Для хранения статистики публикаций потоков бэкенд-сервер использует реляционную SQL БД. Рекомендуется использовать БД Postgresql. В целях отладки и тестирования может быть использована встроенная БД H2, но для промышленной эксплуатации эта БД крайне не рекомендуется.

Структура БД

SQL БД бэкенд-сервера содержит следующие таблицы. При запуске таблицы создаются автоматически:

ПолеТипПримечание
ALARM
idbigintPRIMARY KEY
namecharacter varying(255)UNIQUE CONSTRAINT
timebigint
typebigint
valuebigint
metric_idbigint

FOREIGN KEY  REFERENCES metric(id)

node_idbigintFOREIGN KEY REFERENCES node(id)
METRIC
idbigintPRIMARY KEY
enum_namecharacter varying(255)UNIQUE CONSTRAINT
namecharacter varying(255)UNIQUE CONSTRAINT
notecharacter varying(255)
NODE
idbigintPRIMARY KEY
hostcharacter varying(255)UNIQUE CONSTRAINT
NODE_PROFILE
node_idbigintFOREIGN KEY REFERENCES node(id)
profile_idbigintFOREIGN KEY REFERENCES profile(id)
PROFILE
idbigintPRIMARY KEY
namecharacter varying(255)UNIQUE CONSTRAINT
rateinteger
PROFILE_METRICS
profile_idbigintFOREIGN KEY REFERENCES profile(id)
metrics_idbigintFOREIGN KEY  REFERENCES metric(id)
PROFILE_RULE
profile_idbigintFOREIGN KEY REFERENCES profile(id)
rule_idbigintFOREIGN KEY REFERENCES rule(id)
RULE
idbigintPRIMARY KEY
namecharacter varying(255)UNIQUE CONSTRAINT
typebigint
valuecharacter varying(255)
STREAM
idbigintPRIMARY KEY
create_datetimestamp without time zone
durationbigint
media_idcharacter varying(255)
namecharacter varying(255)
node_idbigintFOREIGN KEY REFERENCES node(id)
publisher_idbigintFOREIGN KEY REFERENCES stream(id)
STREAM_STATUS
idbigintPRIMARY KEY
statuscharacter varying(255)
timestamptimestamp without time zone
stream_idbigintFOREIGN KEY REFERENCES stream(id)

Установка и настройка Postgresql

1. Установите Postgresql (на примере CentOS 7) командой

yum install postgresql-server

2. Инициализируйте БД и запустите Postgresql

postgresql-setup initdb
systemctl enable postgresql
systemctl start postgresql

3. Войдите в консоль Postgresql

su - postgres
psql

4. Создайте базу данных и пользователя, дайте пользователю права на доступ к базе

CREATE USER wcsoam WITH PASSWORD 'wcsoam';
CREATE DATABASE wcsoam;
\c wcsoam
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "wcsoam";

5. Выйдите из консоли

\q
exit

Оптимизация работы с БД

В сборках до 1.163, для ускорения работы Postgresql и снижения нагрузки на CPU, необходимо после успешного запуска WCS OAM создать следующие индексы:

CREATE INDEX ON stream(name, media_id, node_id);
CREATE INDEX ON stream(node_id, name, status);
CREATE INDEX ON stream(publisher_id);

Структура данных таблицы stream в БД wcsoam в этом случае должна выглядеть следующим образом: