feat(data-ana): 完善学情诊断服务并添加ClickHouse降级模式

config.py ClickHouse连接改可选+加DEV_MODE/kafka_brokers

clickhouse_client.py 降级模式: host为空时返回None

main.py 端点先查ClickHouse降级返回骨架数据+新增errorbook

新增clickhouse-init.sql创建宽表和错题表

Gateway添加/analytics路由
This commit is contained in:
SpecialX
2026-07-09 08:58:39 +08:00
parent 5f18821302
commit 421edd8a41
8 changed files with 1242 additions and 593 deletions

View File

@@ -1,16 +1,29 @@
"""配置管理."""
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
"""应用配置."""
"""应用配置.
ClickHouse 连接参数为可选:当 clickhouse_host 为空字符串时,
服务进入降级模式(查询方法返回 None / 空数据),保证服务可启动。
"""
port: int = 3006
clickhouse_host: str = "localhost"
# ClickHouse 连接(可选:留空则降级模式)
clickhouse_host: str = ""
clickhouse_port: int = 8123
clickhouse_database: str = "edu_analytics"
clickhouse_user: str = ""
clickhouse_password: str = ""
# 可观测性
otel_endpoint: str = "http://localhost:4318"
log_level: str = "info"
# 开发模式开关("true"/"false"
dev_mode: str = "false"
# Kafka brokersCDC 消费预留,暂不实现)
kafka_brokers: str = "localhost:9092"
model_config = {"env_file": ".env", "env_prefix": ""}