docs: Этап 4 граф — AGE работает (Cypher)

This commit is contained in:
neo committed 2026-09-14 13:59:24 +05:00
1 parent a93aa24b54
commit 845fa70af7
1 file changed
+16 -7
+16 -7
View File
@@ -74,15 +74,24 @@
**KPI:** 4+ канала, сквозная аналитика. **KPI:** 4+ канала, сквозная аналитика.
### Этап 4 — граф (Memgraph / Apache AGE) ### Этап 4 — граф (Apache AGE)
**Цель:** обходы и анализ связей. **Статус:** ✅ РЕАЛИЗОВАНО (2026-09-14)
**Цель:** обходы и анализ связей через Cypher.
- Проекция: Atom → Topic → Entity → Project → Asset. - Проекция: Atom (label=Atom, property=atom_id).
- graph_outbox — Postgres → воркер → Memgraph (только id + минимальные атрибуты, тело атома НЕ хранится). - graph_outbox — atom_relations (Postgres) → AGE через cypher() (OpenCypher).
- Идемпотентные операции (MERGE по id), ребилд из Postgres за час. - Тело атома НЕ хранится — только id + type (минимальные атрибуты).
- Сборка через обходы графа (топологическая сортировка). - Синхронизация: `python3 stage4/graph_outbox.py --sync` (идемпотентно — DELETE + CREATE).
- Обход связей: `python3 stage4/graph_outbox.py --query` (MATCH по atom_id).
**KPI:** граф-проекция, сборка через обходы. **Ключевые факты AGE:**
- `SET search_path TO ag_catalog;` перед каждым cypher()-запросом.
- Cypher: `CREATE`/`MATCH`/`RETURN` вместо устаревших `vertices()`/`edges()`.
- `cypher('graph', $$ ... $$) AS (v agtype)` — `$$` в SQL-файле, не в shell.
- Тестировать запросы: `docker exec -i age-db psql -U atom -d content_atom < file.cypher`.
- AGE_PASSWORD в контейнере = `agepass123` (не atompass123).
**KPI:** граф-проекция, обходы связей через Cypher.
### Этап 5 — панель (дашборд смысла) ### Этап 5 — панель (дашборд смысла)
**Цель:** управление атомами вместо статей. **Цель:** управление атомами вместо статей.