部署 · 运维

安装与使用

从克隆到登录、访问入口、使用规则与停止清理。

安装步骤

# 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 Swaggerhttp://localhost:8002/docs
ID-Mapping Swaggerhttp://localhost:8001/docs
Airflow UIhttp://localhost:8088/ · admin / admin
MySQLlocalhost: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     # 停止并清除数据卷