Хранение статистики потоков в SQL БД¶
Для хранения статистики публикаций потоков бэкенд-сервер использует реляционную SQL БД. Рекомендуется использовать БД Postgresql. В целях отладки и тестирования может быть использована встроенная БД H2, но для промышленной эксплуатации эта БД крайне не рекомендуется.
Структура БД¶
SQL БД бэкенд-сервера содержит следующие таблицы. При запуске таблицы создаются автоматически:
Field | Type | Note |
---|---|---|
ALARM | ||
id | bigint | PRIMARY KEY |
name | character varying(255) | UNIQUE CONSTRAINT |
time | bigint | |
type | bigint | |
value | bigint | |
metric_id | bigint | FOREIGN KEY REFERENCES metric(id) |
node_id | bigint | FOREIGN KEY REFERENCES node(id) |
METRIC | ||
id | bigint | PRIMARY KEY |
enum_name | character varying(255) | UNIQUE CONSTRAINT |
name | character varying(255) | UNIQUE CONSTRAINT |
note | character varying(255) | |
NODE | ||
id | bigint | PRIMARY KEY |
host | character varying(255) | UNIQUE CONSTRAINT |
NODE_PROFILE | ||
node_id | bigint | FOREIGN KEY REFERENCES node(id) |
profile_id | bigint | FOREIGN KEY REFERENCES profile(id) |
PROFILE | ||
id | bigint | PRIMARY KEY |
name | character varying(255) | UNIQUE CONSTRAINT |
rate | integer | |
PROFILE_METRICS | ||
profile_id | bigint | FOREIGN KEY REFERENCES profile(id) |
metrics_id | bigint | FOREIGN KEY REFERENCES metric(id) |
PROFILE_RULE | ||
profile_id | bigint | FOREIGN KEY REFERENCES profile(id) |
rule_id | bigint | FOREIGN KEY REFERENCES rule(id) |
RULE | ||
id | bigint | PRIMARY KEY |
name | character varying(255) | UNIQUE CONSTRAINT |
type | bigint | |
value | character varying(255) | |
STREAM | ||
id | bigint | PRIMARY KEY |
create_date | timestamp without time zone | |
duration | bigint | |
media_id | character varying(255) | |
name | character varying(255) | |
node_id | bigint | FOREIGN KEY REFERENCES node(id) |
publisher_id | bigint | FOREIGN KEY REFERENCES stream(id) |
STREAM_STATUS | ||
id | bigint | PRIMARY KEY |
status | character varying(255) | |
timestamp | timestamp without time zone | |
stream_id | bigint | FOREIGN KEY REFERENCES stream(id) |
Установка и настройка Postgresql¶
-
Установите Postgresql (на примере CentOS) командой
-
Инициализируйте БД и запустите Postgresql
-
Войдите в консоль Postgresql
-
Создайте базу данных и пользователя, дайте пользователю права на доступ к базе
-
Выйдите из консоли
Оптимизация работы с БД¶
В сборках до 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 в этом случае должна выглядеть следующим образом: