Files
bxh/docs/DATA_SNAPSHOTS.md

104 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据快照说明
仓库内置数据库快照,目的是让用户 clone 后可以直接恢复 `new2` 图谱系统,而不需要重新采集、抽取和发布数据。
## 快照文件
| 文件 | 类型 | 用途 |
| --- | --- | --- |
| `snapshots/postgres/kg_admin_new2.dump` | PostgreSQL custom dump | 恢复后台业务库、账号、项目、候选实体、审核数据等 |
| `snapshots/falkordb/dump.rdb` | FalkorDB RDB | 恢复图数据库中的业务图和空间图 |
默认数据:
| 项 | 值 |
| --- | --- |
| PostgreSQL database | `kg_admin` |
| PostgreSQL schema | `kg_admin_new2` |
| FalkorDB 业务图 | `guiyang_new2` |
| FalkorDB 空间图 | `guiyang_spatial_v1` |
| 空间 POI | 约 `80609` 条 |
| 候选实体 | 约 `37457` 条 |
## 恢复流程
Docker Compose 首次启动时会自动恢复:
1. `postgres` 容器创建数据卷。
2. `docker/postgres-init/01-restore-snapshot.sh` 使用 `pg_restore` 恢复 PostgreSQL 快照。
3. 脚本把演示管理员密码重置为 `change-me`
4. `falkordb-seed` 容器把 `dump.rdb` 复制到 FalkorDB 数据卷。
5. `falkordb` 容器读取 RDB 并加载图数据。
如果数据卷已存在,初始化不会重复执行。需要重置时运行:
```bash
docker compose down -v
docker compose up -d --build
```
## 校验数据
PostgreSQL
```bash
docker compose exec postgres psql -U admin -d kg_admin \
-c "SELECT COUNT(*) FROM kg_admin_new2.amap_spatial_pois;"
```
候选实体:
```bash
docker compose exec postgres psql -U admin -d kg_admin \
-c "SELECT COUNT(*) FROM kg_admin_new2.candidate_entities;"
```
FalkorDB 图列表:
```bash
docker compose exec falkordb redis-cli -p 6379 GRAPH.LIST
```
快照文件哈希:
```bash
shasum -a 256 snapshots/postgres/kg_admin_new2.dump snapshots/falkordb/dump.rdb
```
当前发布快照的参考哈希:
```text
c70a3fe2730cd40a96e729097cef1eb39c66498371b88b2e36e985c923043e75 snapshots/postgres/kg_admin_new2.dump
dde96ac99bff58d18bb00e84939772d8a4efc4893aeeae02329aa893ae51f247 snapshots/falkordb/dump.rdb
```
## 重新导出快照
如果本机仍保留 `new2` 原始容器,可以运行:
```bash
bash scripts/export_snapshots.sh
```
脚本默认从以下容器导出:
| 容器 | 用途 |
| --- | --- |
| `zn-kg-new2-postgres` | 导出 `kg_admin_new2` schema |
| `zn-kg-new2-falkordb` | 触发 `BGSAVE` 并复制 `dump.rdb` |
导出后请验证:
```bash
ls -lh snapshots/postgres/kg_admin_new2.dump snapshots/falkordb/dump.rdb
shasum -a 256 snapshots/postgres/kg_admin_new2.dump snapshots/falkordb/dump.rdb
```
## 仓库边界
`data/`、浏览器 profile、日志、缓存和本地 Docker 数据卷不进入 Git。它们是运行过程或采集过程中的临时产物不适合作为 GitHub 项目内容。系统可复现所需的数据已经收敛到 `snapshots/``schema搭建/``docs/` 和源码目录中。
## GitHub 文件大小提醒
GitHub 单文件硬限制为 100 MB。当前两个快照均低于该限制。后续如果快照继续增大建议改用 Git LFS、Release Asset 或对象存储,并在 README 中保留下载和恢复说明。