architect/projects/custom-db/PROJECT.md

type: system-project
domain: data
name: custom-db
status: planned
phase: 0
created: 2026-03-26
updated: 2026-03-26
template: BASE


custom-db — Гибридный формат данных и СУБД платформы

Разработка собственного формата хранения данных, объединяющего строки, колонки, векторы и графы.

Текущая фаза: 0 — Концепция
Горизонт: долгосрочный проект


Проблема

Современные форматы хранения данных решают только одну задачу:

Формат Сильная сторона Слабость
SQLite транзакции, SQL плохо для аналитики
Parquet / DuckDB колоночная аналитика нет транзакций
pgvector векторный поиск нужен сервер
Neo4j графы, связи нет SQL, нет векторов
CSV обмен данными нет запросов

Физическая причина: row-store и column-store несовместимы на уровне хранения.
→ Нет универсального формата — нужен гибридный.


Концепция

Цель

Единый формат платформы с поддержкой:
- Row store — транзакционные данные (заказы, товары, события)
- Column store — аналитика (агрегации, отчёты, статистика)
- Vectors — семантический поиск, рекомендации, embeddings
- Graph — связи между объектами (совместимость, категории)

Принципы проектирования

  1. Self-contained — один файл (как SQLite), без сервера
  2. Open source — открытый формат, RF-compatible
  3. Python native — встроенная поддержка без external deps
  4. SQL-compatible — знакомый синтаксис запросов
  5. Incremental — можно начать с subset (row only) и расширять

Роадмап

Фаза 1 — Файловые форматы ✅ (применяем сейчас)

Не разрабатывать — использовать существующие:
- SQLite — транзакционные данные (catalogs, orders)
- CSV — обмен данными (import/export)
- JSON — конфиги, API ответы

Фаза 2 — PostgreSQL + расширения (когда нужно)

Перейти на PostgreSQL при необходимости:
- PostgreSQL — сложные запросы, JOIN, транзакции
- pgvector — векторный поиск (embeddings)
- TimescaleDB — time-series данные (метрики, логи)

Триггеры перехода:
- SQLite не справляется с объёмом (> 10GB)
- Нужен полнотекстовый поиск с русским морфологией
- Нужны векторные рекомендации

Фаза 3 — Свой гибридный формат (будущее)

Разработать 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 Концепция данных платформы

Связанные проекты