Основные понятия
Omnismith построен на базе гибкой модели данных Entity-Attribute-Value (EAV) в сочетании с движком временных рядов метрик реального времени.
Эта модель позволяет определять, изменять и расширять схемы данных динамически во время выполнения (runtime) — без проведения миграций баз данных, написания SQL-скриптов или перезапуска кода приложений.
Ментальная модель EAV
Заголовок раздела «Ментальная модель EAV»Чтобы понять принцип работы Omnismith, сравните его с традиционными инструментами:
| Концепция | Аналог из реального мира | Эквивалент в реляционных БД | Элемент Omnismith |
|---|---|---|---|
| Атрибут | Пустая подпись к полю в бланке (например, Цена, Статус) | Определение колонки / Метаданные поля | Атрибут (Attribute) |
| Шаблон | Многоразовый бланк или анкета (например, Заявка в поддержку) | Схема таблицы БД / Определение класса | Шаблон (Template) |
| Сущность | Заполненный бумажный бланк (например, Заявка №104) | Строка таблицы БД / Экземпляр объекта | Сущность (Entity) |
| Значение | Текст или число, вписанное в конкретное поле бланка | Значение ячейки / Значение свойства | Значение атрибута (Attribute Value) |
1. Атрибуты — Кирпичики данных
Заголовок раздела «1. Атрибуты — Кирпичики данных»Атрибуты определяют отдельные поля и типы данных, которые могут быть прикреплены к шаблонам.
Классификация атрибутов
Заголовок раздела «Классификация атрибутов»Omnismith разделяет атрибуты на две основные функциональные категории:
- Измерения (Dimensions):
- Представляют собой статические, категориальные или описательные свойства (например, Имя клиента, Серийный номер, Отдел).
- Хранятся с ведением Журнала аудита (Audit Change Log), который фиксирует точные метки времени, старые значения, новые значения и автора изменений.
- Метрики (Metrics):
- Представляют собой числовые параметры, часто изменяющиеся во времени (например, Загрузка CPU, Температура, Баланс счета, Время отклика).
- Хранятся в высокопроизводительной базе данных временных рядов (TimescaleDB) и отображаются в виде интерактивных графиков с настраиваемой интервальной агрегацией (минута, час, день).
Типы данных
Заголовок раздела «Типы данных»| Тип данных | Описание | Пример использования |
|---|---|---|
| String | Текстовые строки | Имена, email-адреса, описания |
| Number | Целые или дробные числа | Цены, количества, измерения |
| Boolean | Двоичный флаг (True/False) | Статус активности, VIP-статус |
| Date | Календарная дата без времени | Дата рождения, дата релиза, срок годности |
| DateTime | Точная метка времени | Метка события, время создания записи |
| List | Предопределенный набор вариантов | Приоритет (Низкий, Средний, Высокий), Статус |
| Reference | Ссылка на другую Сущность | Связь записи Заявка с записью Клиент |
2. Шаблоны — Чертежи схем
Заголовок раздела «2. Шаблоны — Чертежи схем»Шаблон (Template) — это виртуальная схема, объединяющая связанные атрибуты для определения структуры записи.
Например, шаблон Заявка в поддержку может объединять атрибуты:
Заголовок(Строковое измерение)Клиент(Ссылка на шаблон Клиент)Приоритет(Элемент списка: Низкий / Средний / Высокий)Статус(Элемент списка: Открыта / В работе / Решена)Время решения (мин)(Числовая метрика)
Ключевые особенности шаблонов
Заголовок раздела «Ключевые особенности шаблонов»- Модульность во время выполнения: Добавляйте или удаляйте атрибуты шаблона в любое время. Существующие сущности автоматически адаптируются к обновленной структуре.
- Экспорт и импорт Блюпринтов: Шаблоны можно упаковывать в Блюпринты (Blueprints) и передавать между проектами или разворачивать из Маркетплейса.
3. Сущности — Конкретные записи
Заголовок раздела «3. Сущности — Конкретные записи»Сущность (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[Журнал аудита истории] end4. Ссылки — Связывание Сущностей
Заголовок раздела «4. Ссылки — Связывание Сущностей»Ссылки позволяют сущностям одного шаблона ссылаться на сущности другого шаблона (например, связь сущности Счет с сущностью Компания).
- Один-ко-многим и Многие-к-одному: Связывайте несколько тикетов с одной записью клиента.
- Реляционная целостность: Поиск, фильтрация и навигация по связанным сущностям прямо в интерфейсе.
💡 Примечание для разработчиков
Заголовок раздела «💡 Примечание для разработчиков»[!NOTE] Гибкость Schema-on-Read с поддержкой OpenAPI: Omnismith устраняет жесткость традиционных схем БД. Атрибуты и свойства сущностей можно запрашивать через стандартный REST API (OpenAPI) с помощью гибких параметров фильтрации (
/api/v1/entity/template/{templateId}). Метрики предоставляются через оптимизированные конечные точки агрегации временных рядов без написания оконных функций SQL.
Следующие шаги
Заголовок раздела «Следующие шаги»[!TIP]
- Примените концепции на практике в Руководстве по быстрому старту.
- Изучите подробнее создание атрибутов в разделе Моделирование данных → Атрибуты.
- Узнайте, как строить блоки дашбордов в Дашбордах и аналитике.