type: system-project
domain: data
name: custom-db
status: planned
phase: 0
created: 2026-03-26
updated: 2026-03-26
template: BASE
Разработка собственного формата хранения данных, объединяющего строки, колонки, векторы и графы.
Текущая фаза: 0 — Концепция
Горизонт: долгосрочный проект
Современные форматы хранения данных решают только одну задачу:
| Формат | Сильная сторона | Слабость |
|---|---|---|
| SQLite | транзакции, SQL | плохо для аналитики |
| Parquet / DuckDB | колоночная аналитика | нет транзакций |
| pgvector | векторный поиск | нужен сервер |
| Neo4j | графы, связи | нет SQL, нет векторов |
| CSV | обмен данными | нет запросов |
Физическая причина: row-store и column-store несовместимы на уровне хранения.
→ Нет универсального формата — нужен гибридный.
Единый формат платформы с поддержкой:
- Row store — транзакционные данные (заказы, товары, события)
- Column store — аналитика (агрегации, отчёты, статистика)
- Vectors — семантический поиск, рекомендации, embeddings
- Graph — связи между объектами (совместимость, категории)
Не разрабатывать — использовать существующие:
- SQLite — транзакционные данные (catalogs, orders)
- CSV — обмен данными (import/export)
- JSON — конфиги, API ответы
Перейти на PostgreSQL при необходимости:
- PostgreSQL — сложные запросы, JOIN, транзакции
- pgvector — векторный поиск (embeddings)
- TimescaleDB — time-series данные (метрики, логи)
Триггеры перехода:
- SQLite не справляется с объёмом (> 10GB)
- Нужен полнотекстовый поиск с русским морфологией
- Нужны векторные рекомендации
Разработать custom-db:
- Собственный бинарный формат
- Физически: разные зоны для row/column/vector/graph
- Логически: единый API
- Трансляция: SQL → физические операции над нужной зоной
| Тема | Зачем |
|---|---|
| DuckDB — внутренняя архитектура | Понять как делать column store in-process |
| Lance (LanceDB) — формат файлов | Vector store без сервера |
| TileDB — гибридный формат | Ближайший аналог целевого |
| Apache Arrow IPC | Стандарт обмена между колоночными хранилищами |
| SQLite WAL mode | Как SQLite решил конкурентность |
| Документ | Что создать | Статус |
|---|---|---|
architect/standards/5-format/format-data.md |
SQLite + CSV стандарт (Фаза 1) | 🔗 naming-standard |
architect/research/custom-db/ |
Исследования форматов | ⏳ |
architect/concept/DATA.md |
Концепция данных платформы | ⏳ |
naming-standard — формат-data.md создаётся там (Фаза 1 уже описана)