透视表明细查询
1、接口概述
透视表明细查询接口用于基于指定指标(Metric),查询其对应的明细级数据。
2、接口 URL
POST {anymetrics_host:anymetrics_port}/anymetrics/api/v1/metrics/queryMetricResultDetails
semantic_host:semantic_port 获取方式请参考:调用方式
3、请求参数
3.1、公共参数(HEADERS)
| 参数 | 必选 | 描述 | 类型 |
| tenant-id | 是 | 租户ID,用于指明查询内容所在租户 |
String |
| auth-type | 是 | 认证方式,用于设置身份认证方式UID:使用 UID 进行身份认证 TOKEN:使用 TOKEN 进行身份认证 ACCOUNT:使用ACCOUNT 进行身份认证 APIKEY:使用APIKEY 进行身份认证,详情见:API Key 管理 |
String |
| auth-value | 是 | 与 auth-type 类型的选择一致,填入相应值 | String |
| queryBy | 否 | 指定查询时使用的标识方式UUID:使用系统内部 UUID 进行查询不传:默认使用 enName(英文名) | String |
公共参数获取方式
tenant-id 与 auth-value:在 Aloudata CAN 顶部导航栏选择指标应用,左边菜单栏选择 API 集成。在 API 集成界面获取取到tenant-id 与auth-value。

⚠️ 注意
-
使用 UUID(指标 / 维度 UUID) 时,必须传
queryby = UUID -
使用 enName 查询时,不需要传
queryby
4、请求参数(Body)
4.1 参数总览
| 参数 | 类型 | 是否必填 | 说明 |
| metric | string | 否 | 指标标识,与 metricDefinition 二选一 |
| metricDefinition | object | 否 | 动态指标定义,与 metric 二选一 |
| columns | List |
是 | 返回的明细列 |
| filters | List |
否 | 过滤条件 |
| timeConstraint | String | 否 | 时间约束 |
| order | List | 否 | 排序规则 |
| limit | int | 否 | 返回条数 |
| offset | int | 否 | 偏移量 |
4.2 metric / metricDefinition
方式一:使用 metric 查询(推荐)
或(UUID 模式):
方式二:使用 metricDefinition(动态周期)
| 字段 | 说明 |
| refMetric | 指标标识(UUID 或 enName) |
| period | 时间周期定义,语法与 semantic query 接口一致 |
5、columns(查询列)说明
5.1 基本格式
示例:
5.2 指定返回别名(alias)
规则说明
| 规则 | 说明 |
DATASET__ |
固定前缀,表示数据集 |
__alias__ |
指定返回字段别名 |
| 未指定 alias | 系统自动生成别名 |
自动生成规则示例:
6、filters(过滤条件)
6.1 enName 模式(默认)
6.2 UUID 模式(需 queryby=UUID)
[
"['dmf4c434088a43c8386dca248eccacd8'] = \"zhengxuemei\"",
"['dm09dd147308de3d4346794a9572c016'] = \"思明区\""
]
7、timeConstraint(时间条件)
说明:
-
时间字段需与指标时间粒度一致
-
常见字段:
-
metric_time -
metric_time__day
8、order(排序规则)
| 项目 | 说明 |
| key | 排序字段(与 columns 写法一致) |
| value | asc / desc |
9、完整请求示例
9.1 enName 模式示例
{
"metric": "MEYZ0004",
"metricDefinition": null,
"columns": [
"['DATASET__multi_test_orders'/'order_amount']",
"['DATASET__multi_test_orders'/'seller_id__alias__seller_id']",
"['DATASET__multi_test_users'/'user_id__alias__user_id']",
"['DATASET__multi_test_users'/'username__alias__username']"
],
"filters": [
"['username'] = \"wangxiaoming\"",
"['district'] = \"西湖区\""
],
"timeConstraint": "[metric_time] = \"2025-04-01\"",
"order": [
{
"['DATASET__multi_test_users'/'username__alias__username']": "desc"
}
],
"limit": 10,
"offset": 0
}
9.2 UUID 模式示例(queryby=UUID)
{
"metric": "mc1532d42ae99344a0d3e8534ccb4329",
"metricDefinition": null,
"columns": [
"['DATASET__multi_test_orders'/'order_amount']",
"['DATASET__multi_test_orders'/'seller_id__alias__seller_id']",
"['DATASET__multi_test_users'/'user_id__alias__user_id']",
"['DATASET__multi_test_users'/'username__alias__username']"
],
"filters": [
"['dmf4c434088a43c8386dca248eccacd8'] <> \"wangxiaoming\"",
"['dm09dd147308de3d4346794a9572c016'] = \"西湖区\""
],
"timeConstraint": "[metric_time__day] = \"2025-04-01\"",
"order": [
{
"['DATASET__multi_test_users'/'username__alias__username']": "desc"
}
],
"limit": 10,
"offset": 0
}
9.3 metricDefinition 示例
{
"metricDefinition": {
"refMetric": "MEYZ0004",
"period": "to_date 0 day of 0 day"
},
"columns": [
"['DATASET__multi_test_users'/'username__alias__username']"
],
"timeConstraint": "[metric_time__day] = \"2025-07-31\""
}
10、响应示例
{
"data": {
"queryId": "095b6d5dea7c439a86c18bc0bb442067",
"warning": null,
"sql": "/* Trace ID: df6f8df5-d413-4647-9e0a-e74b40bbe4a2 */ SELECT `t4`.`username`, `t4`.`user_id`, `t4`.`seller_id`, `t4`.`order_amount` AS `DATASET__multi_test_orders__order_amount` FROM (SELECT `t3`.`seller_id`, `t3`.`order_amount`, `t3`.`day_col`, `t3`.`buyer_id`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`last_login_time`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`user_level`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`created_at`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`address_code`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`register_time`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`user_id`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`is_seller`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`updated_at`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`phone`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`check_time`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`email`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`id`, `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`username` FROM (SELECT `t0`.`seller_id`, `t0`.`order_amount`, `t2`.`day_col`, `t0`.`buyer_id` FROM (SELECT `tn_68155_aloudata_qq_datasource__default__multi_test_orders`.`seller_id`, `tn_68155_aloudata_qq_datasource__default__multi_test_orders`.`order_amount`, `tn_68155_aloudata_qq_datasource__default__multi_test_orders`.`buyer_id`, DATE_TRUNC('DAY', `tn_68155_aloudata_qq_datasource__default__multi_test_orders`.`order_date`) AS `f3` FROM `default_catalog`.`aloudatacan`.`tn_68155_aloudata_qq_datasource__default__multi_test_orders` AS `tn_68155_aloudata_qq_datasource__default__multi_test_orders` WHERE DATE_TRUNC('DAY', `tn_68155_aloudata_qq_datasource__default__multi_test_orders`.`order_date`) >= '2025-04-01' AND DATE_TRUNC('DAY', `tn_68155_aloudata_qq_datasource__default__multi_test_orders`.`order_date`) <= '2025-04-01') AS `t0` LEFT JOIN (SELECT `smart_date_table__20230101a847000000`.`day_col` FROM `aloudatacan`.`smart_date_table__20230101a847000000` AS `smart_date_table__20230101a847000000` WHERE `smart_date_table__20230101a847000000`.`day_col` >= CAST('2025-04-01' AS DATE) AND `smart_date_table__20230101a847000000`.`day_col` <= CAST('2025-04-01' AS DATE)) AS `t2` ON `t0`.`f3` = `t2`.`day_col`) AS `t3` LEFT JOIN `default_catalog`.`aloudatacan`.`tn_68155_aloudata_qq_datasource__default__multi_test_users` AS `tn_68155_aloudata_qq_datasource__default__multi_test_users` ON `t3`.`buyer_id` = `tn_68155_aloudata_qq_datasource__default__multi_test_users`.`user_id`) AS `t4` LEFT JOIN `default_catalog`.`aloudatacan`.`tn_68155_aloudata_qq_datasource__default__multi_test_region` AS `tn_68155_aloudata_qq_datasource__default__multi_test_region` ON `t4`.`address_code` = `tn_68155_aloudata_qq_datasource__default__multi_test_region`.`address_code` WHERE `t4`.`day_col` >= CAST('2025-04-01' AS DATE) AND `t4`.`day_col` <= CAST('2025-04-01' AS DATE) AND `tn_68155_aloudata_qq_datasource__default__multi_test_region`.`district` = CAST('西湖区' AS VARCHAR) AND `t4`.`username` = CAST('wangxiaoming' AS VARCHAR) AND `t4`.`day_col` = CAST('2025-04-01' AS DATE) ORDER BY (`t4`.`username`) DESC LIMIT 10",
"table": {
"columns": {
"user_id": [
{
"value": 1,
"flag": null,
"count": 1
}
],
"seller_id": [
{
"value": 15,
"flag": null,
"count": 1
}
],
"DATASET__multi_test_orders__order_amount": [
{
"value": 8999.00,
"flag": null,
"count": 1
}
],
"username": [
{
"value": "wangxiaoming",
"flag": null,
"count": 1
}
]
},
"rows": null
},
"metas": [
{
"id": null,
"uuid": null,
"name": "username",
"dataType": null,
"dataTypeName": "VARCHAR",
"displaySize": null,
"displayName": null,
"schemaName": null,
"scale": null,
"precision": null,
"tableName": null,
"type": null
},
{
"id": null,
"uuid": null,
"name": "user_id",
"dataType": null,
"dataTypeName": "INT",
"displaySize": null,
"displayName": null,
"schemaName": null,
"scale": null,
"precision": null,
"tableName": null,
"type": null
},
{
"id": null,
"uuid": null,
"name": "seller_id",
"dataType": null,
"dataTypeName": "INT",
"displaySize": null,
"displayName": null,
"schemaName": null,
"scale": null,
"precision": null,
"tableName": null,
"type": null
},
{
"id": null,
"uuid": null,
"name": "DATASET__multi_test_orders__order_amount",
"dataType": null,
"dataTypeName": "DECIMAL",
"displaySize": null,
"displayName": null,
"schemaName": null,
"scale": null,
"precision": null,
"tableName": null,
"type": null
}
],
"hitMvType": "NOT_REWRITE",
"containsErrorColumn": false
},
"success": true,
"code": "200",
"errorMsg": null,
"detailErrorMsg": null,
"traceId": "df6f8df5-d413-4647-9e0a-e74b40bbe4a2"
}