🧠
语义层引擎
TM/QM 模型抽象数据库表结构,AI 只需理解业务语义。自动处理多表 JOIN、方言转换、权限注入。
了解语义层
让 AI 直接写 SQL 查询数据库,存在严重的安全和准确性风险
order_status=3 是什么意思?AI 不知道 AI 助手 (Claude / Cursor / Trae)
│
MCP 协议调用
│
▼
┌─────────────────────────────────────────────┐
│ Foggy MCP Server │
│ ┌───────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 元数据工具 │ │ 查询工具 │ │ 图表工具 │ │
│ └───────────┘ └──────────┘ └──────────┘ │
└─────────────────────┬───────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 语义层引擎 (Semantic Layer) │
│ │
│ TM 表模型 ──→ 维度/度量/关联 ──→ QM 查询模型 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌─────────────┐ │
│ │ DSL 解析 │ │ 权限注入 │ │ 方言 SQL 生成│ │
│ └──────────┘ └──────────┘ └─────────────┘ │
└─────────────────────┬───────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
MySQL PostgreSQL SQL Server ...AI 助手发送 JSON DSL → 语义层翻译为安全 SQL
{
"model": "FactSalesQueryModel",
"columns": [
"customer$name",
"product$categoryName",
"sum(totalAmount)"
],
"filters": [
{ "field": "orderDate", "op": ">=",
"value": "2024-01-01" },
{ "field": "product$categoryName",
"op": "in",
"value": ["Electronics", "Books"] }
],
"orderBy": [
{ "field": "totalAmount", "dir": "DESC" }
],
"limit": 10
}SELECT
c.name AS `customer$name`,
p.category_name AS `product$categoryName`,
SUM(f.total_amount) AS `totalAmount`
FROM fact_sales f
JOIN dim_customer c
ON f.customer_id = c.id
JOIN dim_product p
ON f.product_id = p.id
WHERE f.order_date >= '2024-01-01'
AND p.category_name IN
('Electronics', 'Books')
GROUP BY c.name, p.category_name
ORDER BY SUM(f.total_amount) DESC
LIMIT 10docker compose up -d
一键启动 MySQL + Foggy MCP Server + 演示数据
在 Claude Desktop / Cursor 中添加 MCP Server 地址:http://localhost:7108/mcp/analyst/rpc
用自然语言提问:
"显示上周各品牌的销售额趋势"
Java 和 Python 双引擎,同一套语义层标准
5 分钟部署语义层,让 AI 安全地查询你的业务数据