跳转至

透视表明细查询

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 查询(推荐)

{
  "metric": "MEYZ0004"
}

或(UUID 模式):

{
  "metric": "mc1532d42ae99344a0d3e8534ccb4329"
}

方式二:使用 metricDefinition(动态周期)

{
  "metricDefinition": {
    "refMetric": "MEYZ0004",
    "period": "to_date 0 day of 0 day"
  }
}
字段 说明
refMetric 指标标识(UUID 或 enName)
period 时间周期定义,语法与 semantic query 接口一致

5、columns(查询列)说明

5.1 基本格式

['DATASET__<dataset_name>'/'<column_name>']

示例:

['DATASET__multi_test_orders'/'order_amount']

5.2 指定返回别名(alias)

['DATASET__multi_test_users'/'username__alias__username']

规则说明

规则 说明
DATASET__ 固定前缀,表示数据集
__alias__ 指定返回字段别名
未指定 alias 系统自动生成别名

自动生成规则示例:

['DATASET__users'/'username']
→ DATASET__users__username

6、filters(过滤条件)

6.1 enName 模式(默认)

[
  "['username'] = \"wangxiaoming\"",
  "['district'] = \"西湖区\""
]

6.2 UUID 模式(需 queryby=UUID)

[
  "['dmf4c434088a43c8386dca248eccacd8'] = \"zhengxuemei\"",
  "['dm09dd147308de3d4346794a9572c016'] = \"思明区\""
]

7、timeConstraint(时间条件)

"[metric_time__day] = \"2025-07-31\""

说明:

  • 时间字段需与指标时间粒度一致

  • 常见字段:

  • metric_time

  • metric_time__day


8、order(排序规则)

[
  {
    "['DATASET__multi_test_users'/'username__alias__username']": "desc"
  }
]
项目 说明
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"
}