Перейти к содержимому

Основные понятия

Omnismith построен на базе гибкой модели данных Entity-Attribute-Value (EAV) в сочетании с движком временных рядов метрик реального времени.

Эта модель позволяет определять, изменять и расширять схемы данных динамически во время выполнения (runtime) — без проведения миграций баз данных, написания SQL-скриптов или перезапуска кода приложений.


Чтобы понять принцип работы Omnismith, сравните его с традиционными инструментами:

КонцепцияАналог из реального мираЭквивалент в реляционных БДЭлемент Omnismith
АтрибутПустая подпись к полю в бланке (например, Цена, Статус)Определение колонки / Метаданные поляАтрибут (Attribute)
ШаблонМногоразовый бланк или анкета (например, Заявка в поддержку)Схема таблицы БД / Определение классаШаблон (Template)
СущностьЗаполненный бумажный бланк (например, Заявка №104)Строка таблицы БД / Экземпляр объектаСущность (Entity)
ЗначениеТекст или число, вписанное в конкретное поле бланкаЗначение ячейки / Значение свойстваЗначение атрибута (Attribute Value)

Атрибуты определяют отдельные поля и типы данных, которые могут быть прикреплены к шаблонам.

Omnismith разделяет атрибуты на две основные функциональные категории:

  1. Измерения (Dimensions):
    • Представляют собой статические, категориальные или описательные свойства (например, Имя клиента, Серийный номер, Отдел).
    • Хранятся с ведением Журнала аудита (Audit Change Log), который фиксирует точные метки времени, старые значения, новые значения и автора изменений.
  2. Метрики (Metrics):
    • Представляют собой числовые параметры, часто изменяющиеся во времени (например, Загрузка CPU, Температура, Баланс счета, Время отклика).
    • Хранятся в высокопроизводительной базе данных временных рядов (TimescaleDB) и отображаются в виде интерактивных графиков с настраиваемой интервальной агрегацией (минута, час, день).
Тип данныхОписаниеПример использования
StringТекстовые строкиИмена, email-адреса, описания
NumberЦелые или дробные числаЦены, количества, измерения
BooleanДвоичный флаг (True/False)Статус активности, VIP-статус
DateКалендарная дата без времениДата рождения, дата релиза, срок годности
DateTimeТочная метка времениМетка события, время создания записи
ListПредопределенный набор вариантовПриоритет (Низкий, Средний, Высокий), Статус
ReferenceСсылка на другую СущностьСвязь записи Заявка с записью Клиент

Шаблон (Template) — это виртуальная схема, объединяющая связанные атрибуты для определения структуры записи.

Например, шаблон Заявка в поддержку может объединять атрибуты:

  • Заголовок (Строковое измерение)
  • Клиент (Ссылка на шаблон Клиент)
  • Приоритет (Элемент списка: Низкий / Средний / Высокий)
  • Статус (Элемент списка: Открыта / В работе / Решена)
  • Время решения (мин) (Числовая метрика)
  • Модульность во время выполнения: Добавляйте или удаляйте атрибуты шаблона в любое время. Существующие сущности автоматически адаптируются к обновленной структуре.
  • Экспорт и импорт Блюпринтов: Шаблоны можно упаковывать в Блюпринты (Blueprints) и передавать между проектами или разворачивать из Маркетплейса.

Сущность (Entity) — это конкретная запись, созданная по определенному Шаблону.

Если ваш Шаблон — Клиент, то сущность представляет конкретного клиента (например, “ООО Вектор”). Если ваш Шаблон — Серверный узел, сущность представляет конкретный экземпляр сервера (например, “prod-db-master-01”).

flowchart TD
subgraph Моделирование данных
A[Определения Атрибутов] -->|прикрепляются к| T[Шаблону-чертежу]
end
subgraph Записи данных
T -->|создает| E1[Запись Сущности #1]
T -->|создает| E2[Запись Сущности #2]
E1 --> V1[Измерения: Имя, Статус]
E1 --> V2[Метрики: CPU, Память во времени]
E1 --> V3[Журнал аудита истории]
end

Ссылки позволяют сущностям одного шаблона ссылаться на сущности другого шаблона (например, связь сущности Счет с сущностью Компания).

  • Один-ко-многим и Многие-к-одному: Связывайте несколько тикетов с одной записью клиента.
  • Реляционная целостность: Поиск, фильтрация и навигация по связанным сущностям прямо в интерфейсе.

[!NOTE] Гибкость Schema-on-Read с поддержкой OpenAPI: Omnismith устраняет жесткость традиционных схем БД. Атрибуты и свойства сущностей можно запрашивать через стандартный REST API (OpenAPI) с помощью гибких параметров фильтрации (/api/v1/entity/template/{templateId}). Метрики предоставляются через оптимизированные конечные точки агрегации временных рядов без написания оконных функций SQL.


[!TIP]