元数据工具用于获取语义层模型和字段的定义信息,是查询前了解数据结构的重要工具。
首选的模型发现工具。它返回当前 namespace 中可用于路由的模型概览;需要字段、度量、权限或查询能力详情时,再调用 dataset.describe_model_internal。返回字段以运行实例 tools/list 暴露的 schema 为准,不要把模型列表缓存跨 namespace 复用。
dataset.list_modelsdataset.list_models
→ dataset.describe_model_internal
→ dataset.query_model 或 dataset.compose_script
兼容性说明:
dataset.get_metadata是旧元数据入口。新集成应使用dataset.list_models;保留本节是为了迁移旧客户端。
获取用户可访问的所有语义层模型列表。
dataset.get_metadata此工具无需参数。
{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "dataset.get_metadata",
"arguments": {}
}
}
{
"success": true,
"data": {
"models": [
{
"name": "FactSalesQueryModel",
"caption": "销售分析",
"description": "销售订单明细数据"
},
{
"name": "FactOrderQueryModel",
"caption": "订单分析",
"description": "订单信息查询"
}
],
"fieldIndex": {
"customerName": ["FactSalesQueryModel", "FactOrderQueryModel"],
"totalAmount": ["FactSalesQueryModel"]
},
"dictionaries": {
"customerType": {
"10": "个人客户",
"20": "企业客户",
"30": "VIP客户"
}
}
}
}
| 字段 | 说明 |
|---|---|
models |
可用模型列表 |
fieldIndex |
字段语义索引(字段在哪些模型中出现) |
dictionaries |
字典附录(字段值映射) |
获取指定模型的详细字段定义。
dataset.describe_model_internal| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model |
string | ✅ | 模型名称 |
{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "dataset.describe_model_internal",
"arguments": {
"model": "FactSalesQueryModel"
}
}
}
{
"success": true,
"data": {
"model": "FactSalesQueryModel",
"caption": "销售分析",
"description": "销售订单明细数据分析",
"fields": [
{
"name": "customer$id",
"type": "DIMENSION",
"caption": "客户ID",
"description": "用于精确查询"
},
{
"name": "customer$caption",
"type": "DIMENSION",
"caption": "客户名称",
"description": "用于展示"
},
{
"name": "totalAmount",
"type": "MEASURE",
"caption": "销售金额",
"dataType": "MONEY",
"aggregation": "SUM"
},
{
"name": "orderStatus",
"type": "ATTRIBUTE",
"caption": "订单状态",
"dictionary": "orderStatus"
}
],
"dictionaries": {
"orderStatus": {
"1": "待支付",
"2": "已支付",
"3": "已发货",
"4": "已完成",
"5": "已取消"
}
}
}
}
| 类型 | 说明 | 用法 |
|---|---|---|
DIMENSION |
维度 | 分组、过滤,有 $id 和 $caption 变体 |
MEASURE |
度量 | 聚合计算(SUM、AVG、COUNT 等) |
ATTRIBUTE |
属性 | 普通字段,直接使用 |
维度字段会返回两个变体:
| 变体 | 说明 | 使用场景 |
|---|---|---|
xxx$id |
返回 ID 值 | 精确过滤、关联查询 |
xxx$caption |
返回显示名称 | 展示给用户 |
示例:
{
"columns": ["customer$caption"], // 展示客户名称
"slice": [
{"field": "customer$id", "op": "=", "value": 1001} // 按ID过滤
]
}
层级结构维度额外支持 $hierarchy$ 视角:
| 变体 | 说明 |
|---|---|
team$id |
精确匹配该节点 |
team$hierarchy$id |
匹配该节点及所有后代 |
示例: 查询总公司及所有子部门
{
"slice": [
{"field": "team$hierarchy$id", "op": "=", "value": "T001"}
]
}
$id / $caption 用法1. get_metadata
→ 获取所有可用模型列表
2. describe_model_internal
→ 选择目标模型,获取详细字段
3. query_model
→ 使用正确的字段名执行查询