部署 · 运维
安装与使用
从克隆到登录、访问入口、使用规则与停止清理。
安装步骤
# 0. 克隆
git clone https://github.com/MrRobot2658/Quasar.git
cd Quasar
# 1. 启动全栈(含前端构建)
# MySQL / Redis / Kafka / SQL Engine / ID-Mapping / Nginx / Airflow / 智能助手 + 前端生产构建
docker compose up -d --build
docker compose ps # 等待全部 healthy(Airflow 首次 db migrate 稍慢)
bash scripts/apply_migrations.sh # 应用增量迁移(含登录/知识库/应用/分析等表与演示数据)
# 2. 灌入演示数据(多渠道合并模拟)
bash scripts/simulate_kafka.sh # 走完整 Kafka 链路(推荐,含租户 1001/1002)
# 或:bash scripts/simulate_via_api.sh # 直接调 API,跳过 Kafka
# 3. 打开控制台并登录
# http://localhost:8080/console/ → admin@acme.com / demo123
# (可选)前端开发态热更
cd frontend && npm install && npm run dev # → http://localhost:5173/
- 前端已并入 compose:
frontend服务生产构建 →frontend_dist卷,由 nginx 托管于/console/,无需单独启动。仅改前端时再用 vite:5173(/api/*自动代理到 SQL Engine)。 - DeepSeek(自然语言):复制
.env.example→.env,填DEEPSEEK_API_KEY(已 gitignore)。 - 接真实 Doris:设
OLAP_BACKEND=doris OLAP_HOST=doris-fe OLAP_PORT=9030。 - 按规模模拟集群:
bash scripts/scale-up.sh {dev|medium|large|xlarge}(<1 万 / 1 亿 / 2 亿)。
访问入口
| 用途 | 地址 |
|---|---|
| 控制台(开发态) | http://localhost:5173/ |
| 控制台(生产 / 网关) | http://localhost:8080/console/ |
| SQL Engine Swagger | http://localhost:8002/docs |
| ID-Mapping Swagger | http://localhost:8001/docs |
| Airflow UI | http://localhost:8088/ · admin / admin |
| MySQL | localhost:3308 · db dataagent · dataagent / dataagent123 |
使用规则
登录
控制台强制登录。演示账号(密码均 demo123):admin@acme.com、zhang.tech@acme.com、zhao.sales@acme.com、sun.mkt@acme.com 等(技术部 / 销售部 / 市场部)。登录后 workspace 自动切到该用户租户。
多租户
顶栏 Workspace 下拉切换租户(1001 / 1002);所有查询自动按 tenant_id 隔离。
真实 vs Mock
带「Mock 数据」角标的页面是前端演示,不落库;真实数据页(数据源导入、用户档案、受众、计算特征)走 SQL Engine → MySQL,操作即落库。
可视化编排(Apache Airflow 调度)
- 「连接 › 可视化编排」拖拽节点连线 → 保存为管道;「管道」页点执行,SQL Engine 经 Airflow REST API 触发 DAG 真实运行。
- 承载 DAG:
airflow/dags/dataagent_pipeline.py,参数化通用 DAG;触发时把节点列表放进dag_run.conf,用动态任务映射.expand展开plan → run_node×N → finish。 - 接口:
POST /api/connections/pipelines/{id}/execute触发;GET /api/connections/scheduler/health查连通性。Airflow 不可达时优雅降级为本地模拟。
ETL 导入规则
数据源仅 csv / inline 可运行;字段按目标对象类型强转,主键缺失会告警,未知字段直接 400;可在导入时按关系建 object_relations。
停止与清理
docker compose down # 停止
docker compose down -v # 停止并清除数据卷