跳转至

创建指标

接口描述

本接口适用于在指标管理系统中新建指标。

接口URL

POST Http://{anymetrics_host:anymetrics_port}/anymetrics/api/v1/metrics/create

anymetrics_host:anymetrics_port 获取方式请参考:调用方式

请求参数

公共请求参数(HEADERS)

参数 类型 是否必选 最大长度 描述
tenant-id String 32 租户ID,用于指标查询内容所在的租户
auth-type String 32 认证方式,用于设置身份认证方式 UID:使用 UID 进行身份认证TOKEN:使用 TOKEN 进行身份认证
auth-value String 32 UID或者TOKEN值,与auth-type 类型选择一致

公共参数获取方式

tenant-id 与 auth-value:在 Aloudata CAN 顶部导航栏选择指标应用,左边菜单栏选择 API 集成。在 API 集成界面获取取到tenant-id 与auth-value。

请求参数

请求参数说明

参数 类型 最大长度 是否必选 描述
metricName String 128 指标英文名唯一标识,不可修改,仅支持英文、下划线、数字和空格
metricDisplayName String 128 指标中文名,支持任意字符
businessCaliber String 300 业务口径
type String 指标类型是一个枚举类型ATOMIC:原子指标DERIVED:派生指标COMPOSITE:复合指标
owner String 负责人的用户id
businessOwner String 业务负责人的用户id
caliber object 指标计算口径,每种指标的计算口径见: 指标计算口径说明
unit String 指标展示的单位,枚举类型,枚举值说明参见: 指标单位参数说明
metricCategoryId String 类目 ID。“未分类”类目为系统内置的,categoryId为"-1"。如果不传,默认是“未分类”。
basicAttributes Map 基础属性
businessAttributes Map 业务属性
technicalAttributes Map 技术属性
managementAttributes Map 管理属性

指标计算口径说明

原子指标计算口径说明
参数 类型 是否必选 描述
datasetName String 数据集名称
expr String 表达式
filters Array[Object] 过滤条件,详细方式见上述公共参数说明
metricTime Date/DateTime 指标时间
enableNonAdditiveDimensions Bool 是否开启半累加维度
nonAdditiveDimensions Object 半累加维度。具体参数说明请参见: nonAdditiveDimensions 参数说明
nonAdditiveDimensions 参数说明
参数 类型 是否必选 描述
dimensions Array[String] 不可累加维度
windowChoice String 窗口选择。最大值:max ,最小值:min
windowGroupings Array[String] 窗口分组。计算指标聚合时,会预先将数据按照窗口分组的字段进行分组,在分组后的数据内根据窗口选择进行数据的过滤
派生指标计算口径说明
参数 类型 是否必选 最大长度 描述 示例值
refMetricName String 32 引用的原子指标名称
period Array[Object] 统计周期见:详情请参见 : 统计周期说明
filters Array[Object] 过滤条件,详细方式见上述公共参数说明
preAggs Array[Object] 预聚合方式,比如统计周期为近7天时,选择日均,那么在计算时会先算出每一天的指标值,然后计算7天的平均值
indirection 衍生方式 衍生方式,目前支持:同环比、占比、排名和自定义维度组合。具体每一种衍生方式的配置参见: 衍生方式配置
复合指标计算口径说明
    "caliber": {
        "expr": "[GeYpElmCMBtZehtg]/[metric2]", /*引用的原始指标名称,名称为临时派生中的指标名称。若没有临时派生指标则名称为原始指标的名称 */
        "metricDefinitions": {/*临时派生 */
                "GeYpElmCMBtZehtg": {/*/*临时派生指标名称建议使用16位uuid */ */
                    "refMetricCode": "sum_rmb",/*实际引用的原始指标名称 */
                    "period": { /*时间限定*/
                        "type": "RELATIVE_DATE",
                        "periodGrain": null,
                        "onlyContainsDateTag": null,
                        "typeParams": "0 day of 0 day",
                        "customDateTag": null,
                        "granularity": "DAY"
                    },
                    "filters": [ /*业务限定 */
                        {
                            "type": "EXPR",
                            "periodGrain": null,
                            "onlyContainsDateTag": null,
                            "expr": "NotNull(['is_weekend'])"
                        }
                    ],
                    "preAggs": null, /*聚合方式 */
                    "indirection": {  /*衍生计算 */
                        "type": "SAME_PERIOD",
                        "samePeriodType": "VALUE",
                        "granularity": null,
                        "offset": {
                            "granularity": "YEAR",
                            "offset": -1,
                            "dateTag": null,
                            "specifyDateInPeriod": null
                        }
                    },
                    "dimensionConfig": { /*因子指标可用维度设定 */
                        "isNewDimensionDefaultEnable": true,
                        "disableDimensions": [
                            "is_weekend"

                        ],
                        "availableDimensions": null,
                        "factorDimensions": null
                    },
                    "displayName": null  /*展示名称 */
                }
            }
    }
参数 子参数 类型 是否必选 描述 示例值
expr String 复合指标计算逻辑 "[GeYpElmCMBtZehtg]/[sum_PZJERMB]+1"
metricDefinitions Map
refMetricCode String 引用的指标名称
period Array[Object] 统计周期见:详情请参见  统计周期说明
filters Array[Object] 过滤条件,详细方式见上述公共参数说明
preAggs Array[Object] 预聚合方式,比如统计周期为近7天时,选择日均,那么在计算时会先算出每一天的指标值,然后计算7天的平均值
indirection 衍生方式 衍生方式,目前支持:同环比、占比、排名和自定义维度组合。具体每一种衍生方式的配置参见: 衍生方式配置
displayName String 临时定义指标的展示名
dimensionConfig Object 临时定义指标的可分析维度设置 见下面“临时定义维度设置”
临时定义维度设置
参数 类型 是否必选 最大长度 描述 示例值
isNewDimensionDefaultEnable boolean 新增维度是否默认可用,默认为true true/false
publicDimension Object 公共维度配置 见下面“公共维度配置”
公共维度配置
参数 类型 是否必选 最大长度 描述 示例值
availableDimensionNames List 启用维度,仅isNewDimensionDefaultEnable设置为false时设置 ["address","sex"]
disableDimensionNames List 禁用维度,仅isNewDimensionDefaultEnable为true时设置 ["product_unit_price_add_2"]
统计周期说明:

派生指标时间限定定义

衍生方式配置
参数 是否必选 最大长度 描述 示例值
type 衍生方式,枚举值,目前支持:SAMEPERIOD:同环比RANK:排名PROPORTION:占比CUSTOMAGG:自定义维度组合
同环比衍生方式配置
类型 是否必选 最大长度 描述 示例值
samePeriodType 同环比类型,枚举值,目前支持:VALUE:同比值GROWTHVALUE:同比增长值GROWTH:同比增长率
granularity 同环比粒度,枚举值,目前支持:DAY:天WEEK:周MONTH:月QUARTER:季度YEAR:年
占比衍生配置
类型 是否必选 最大长度 描述 示例值
proportionRanges 占比范围,表示计算占比的分母时所用的维度,如果在这里配置了这个参数,那么在分析时必须带上这个维度分析。如果是指标日期,用“metric_time”。例子:占比范围为“省”,指标为订单量,分析时的维度为省市区,那么这个指标算的是,每个区占全省订单量的比例
proportionDimensions 占比维度。如果配置了占比维度,则在查询时必须带上这个维度。表示的含义是:如果筛选中有这个维度的筛选,那么在算分母时忽略这个筛选。例子:江苏省有南京市和苏州市两个市的订单量,分别为10和40占比范围:省占比维度:市如果筛选中选择city=苏州,那么苏州占比为80%如果占比维度没有市,那么占比为100%
排名衍生配置
类型 是否必选 最大长度 描述 示例值
rankRanges 排名范围。表示计算排名的窗口
rankDimensions 排名维度。与占比指标的占比维度类似,如果筛选中有这个维度的筛选,那么计算排名时会忽略这个筛选
rankType 排序类型,枚举RANK_DENSE:1、1、2、3RANK:1、1、3、4ROW_NUMBER:1、2、3、4
asc 是否升序true:在窗口内,升序排序false:在窗口内,降序排序
自定义维度组合配置
类型 是否必选 最大长度 描述 示例值
dimensions 维度组合包括维度名称和相应粒度(仅时间维度会有粒度)
calculateType 计算方式,枚举MAX:最大值MIN:最小值AVG:平均值

示例

{
  "indirection": {
        "customDimensionGroups": [
            {
                "calculateType": "MAX",
                "dimensions": [
                    {
                        "granularity": "DAY",
                        "name": "fl_order_order_date"
                    }
                ]
            },
            {
                "calculateType": "AVG",
                "dimensions": [
                    {
                        "name": "fl_order_province"
                    }
                ]
            },
            {
                "calculateType": "MIN",
                "dimensions": [
                    {
                        "name": "fl_order_city"
                    }
                ]
            }
        ],
        "type": "CUSTOM_AGG"
    }
}

指标单位参数说明

类别 单位代码 描述
货币单位 CNY_FEN
CNY_YUAN
CNY_WAN 万元
CNY_BAI_WAN 百万元
CNY_YI_YUAN 亿元
USD_CENT 美分
USD_DOLLAR 美元
EUR_EURO 欧元
HKD_DOLLAR 港元
时间单位 DAY
MONTH
WEEK
YEAR
HOUR
MINUTE
SECOND
QUARTER 季度
MILLISECOND 毫秒
比例单位 DECIMAL 小数
PERCENTAGE 百分位数
PERMILLE 千分位数
名词 RANK 排名
对象量次 HOUSEHOLD
TRANSACTION
ITEM
INDIVIDUAL
OCCURRENCE
PERSON_DAY 人日
FAMILY
HAND
SHEET
PACKAGE
重量单位 TON
KILOGRAM 公斤
其他 OTHER 其他

响应参数

参数 类型 是否必选 最大长度 描述
code String 32 接口响应码
message String 512 消息体
traceId String 128 traceId
data object 响应结果集
result Boolean 新建是否成功

示例

示例 1:创建原子指标

  • 请求
{
    "type": "ATOMIC",
    "metricDisplayName": "订单量_自定义聚合函数5",
    "metricName": "ordercount_3",
    "owner": "correctness_test_qq",
    "businessOwner": "correctness_test_qq",
    "businessCaliber": "这是openAPI创建的指标1",
    "metricCategoryId": "-1",
    "unit": "OTHER",
    "caliber": {
        "datasetName": "can_order",
        "expr": "count(['can_order'/'order_id'])",
        "metricTime": "order_date",
        "filters": [
            {
                "type": "EXPR",
                "expr": "IN(['can_product'/'brand_name'],\"华为\")"
            }
        ]
    },
    "basicAttributes": null,
    "businessAttributes": null,
    "technicalAttributes": null,
    "managementAttributes": null
}
  • 响应
{
    "data": true,
    "success": true,
    "code": "200",
    "errorMsg": null,
    "detailErrorMsg": null,
    "traceId": "f6e656798ed241c789f7132823c46c6b.142.17194027744320363"
}

示例 2:创建半累加指标

  • 请求
{
    "metricName": "sales_volume",
    "metricDisplayName": "销售量",
    "businessCaliber": "销售业务口径",
    "type": "ATOMIC",
    "owner": "correctness_test_qq",
    "businessOwner": "correctness_test_qq",
    "caliber": {
        "datasetName": "can_order",
        "expr": "sum(['can_order'/'order_amt'])",
        "filters": [
            {
                "type": "EXPR",
                "expr": "IN(['can_product'/'brand_name'],\"华为\")"
            }
        ],
        "metricTime": "order_date",
        "enableNonAdditiveDimensions": true,
        "nonAdditiveDimensions": {
            "dimensions": [
                "order_date"
            ],
            "windowChoice": "MAX",
            "windowGroupings": [],
            "fingerPrint": "order_date|MAX||"
        }
    },
    "unit": "OTHER",
    "metricCategoryId": "-1",
    "basicAttributes": {},
    "businessAttributes": {},
    "technicalAttributes": {},
    "managementAttributes": {}
}
  • 响应
{
    "data": true,
    "success": true,
    "code": "200",
    "errorMsg": null,
    "detailErrorMsg": null,
    "traceId": "f6e656798ed241c789f7132823c46c6b.147.17194745548850787"
}

示例 3:创建派生指标(占比)

  • 请求
{
    "type": "DERIVED",
    "metricName": "cyl0year_ordercount_3",
    "metricDisplayName": "派生指标占比",
    "businessCaliber": "派生指标",
    "owner": null,
    "businessOwner": "correctness_test_qq",
    "caliber": {
        "refMetricCode": "ordercount_3",
        "period": {
            "type": "TO_DATE",
            "typeParams": "-29 day of 0 day"
        },
        "preAggs": [
            {
                "granularity": "DAY",
                "calculateType": "AVG"
            }
        ],
        "indirection": {
            "type": "PROPORTION",
            "proportionRanges": [
                "can_order_region"
            ],
            "proportionDimensions": [
                "can_shop_city"
            ]
        }
    },
    "unit": "OTHER",
    "metricCategoryId": "-1",
    "basicAttributes": null,
    "businessAttributes": null,
    "technicalAttributes": null,
    "managementAttributes": null
}
  1. 响应
{
    "data": true,
    "success": true,
    "code": "200",
    "errorMsg": null,
    "detailErrorMsg": null,
    "traceId": "f6e656798ed241c789f7132823c46c6b.142.17194782690870941"
}

示例 3: 创建复合指标

  • 请求
{
    "type": "COMPOSITE",
    "metricName": "apitest",
    "metricDisplayName": "apitest",
    "owner": "can1",
    "businessOwner": "can1",
    "unit": "OTHER",
    "businessCaliber": "这是一个文档实例复合指标",
    "caliber": {
        "expr": "[GeYpElmCMBtZehtg]/[sum_PZJERMB]", /*GeYpElmCMBtZehtg 指标引用至下方中的临时派生指标。sum_PZJERMB为原始指标名称 */
        "metricDefinitions": {
                "GeYpElmCMBtZehtg": { /*临时派生指标名称建议使用16位uuid */
                    "refMetricCode": "sum_rmb",
                    "period": {
                        "type": "RELATIVE_DATE",
                        "periodGrain": null,
                        "onlyContainsDateTag": n    ull,
                        "typeParams": "0 day of 0 day",
                        "customDateTag": null,
                        "granularity": "DAY"
                    },
                    "filters": [
                        {
                            "type": "EXPR",
                            "periodGrain": null,
                            "onlyContainsDateTag": null,
                            "expr": "NotNull(['is_weekend'])"
                        }
                    ],
                    "preAggs": null,
                    "indirection": {
                        "type": "SAME_PERIOD",
                        "samePeriodType": "VALUE",
                        "granularity": null,
                        "offset": {
                            "granularity": "YEAR",
                            "offset": -1,
                            "dateTag": null,
                            "specifyDateInPeriod": null
                        }
                    },
                    "dimensionConfig": {
                        "isNewDimensionDefaultEnable": true,
                        "disableDimensions": [
                            "is_weekend"

                        ],
                        "availableDimensions": null,
                        "factorDimensions": null
                    },
                    "displayName": null
                }
            }
    },
    "metricCode": "api_up_radio2",
    "basicAttributes": {
    },
    "businessAttributes": {
    },
    "technicalAttributes": {
    },
    "managementAttributes": {
    }
}    
{
    "type": "COMPOSITE",
    "metricName": "api_up_radio2",
    "metricDisplayName": "api_up_radio2",
    "owner": "can1",
    "businessOwner": "can1",
    "unit": "OTHER",
    "businessCaliber": "jingmingdfa",
    "caliber": {
        "expr": "[totalCcount]/[idCount]" /*两个指标都为原始指标引用 */    },
    "metricCode": "api_up_radio2",
    "basicAttributes": {
    },
    "businessAttributes": {
    },
    "technicalAttributes": {
    },
    "managementAttributes": {
    }
}
  • 响应
{
    "data": true,
    "success": true,
    "code": "200",
    "errorMsg": null,
    "detailErrorMsg": null,
    "traceId": "9644bd804e2747088086bb04730e20ba.144.17194894357700043"
}