Хранение статистики потоков в 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 в этом случае должна выглядеть следующим образом:
