Ver 1.13 版本的分群 API
最后更新于:2018-12-29 16:19:21
1 分群规则描述
规则描述部分是可嵌套的结构,较为复杂,此处单独进行描述。 在 “添加” 分群时,会用到规则描述。
rules_relation_node: 规则之间的逻辑关系
// 规则间逻辑关系
{
"type": "rules_relation"
"relation": string; // and/or
"rules":[] // 只允许 type 为 "rules_relation" 和三种规则节点,不允许为空
}
rule_node: 规则节点,分三种
// 属性规则
{
"type": "profile_rule",
"field": string, // 属性、分群或属性和分群的组合
"function": string, // 规则函数(指标约束)
"params": [] // 规则条件值。List<Object>
}
// 事件规则
{
"type": "event_rule",
"measure": {
"type": "event_measure",
"event_name": string, // 事件名
"aggregator": string, // 指标统计方式,如count, sum之类
"field": string // optional. 某些指标统计方式对应的 field 可以为空
},
"time_function": string, // 时间区间函数
"time_params": [], // 时间区间参数
"function": string, // 规则函数 (指标约束)
"params": [], // 规则条件。不出现指标
"filters": [] // 筛选条件。可以为空列表,不为空时只有一个元素,filter_relation_node或filter_node
}
// 行为序列规则
{
"type": "event_sequence_rule",
"time_function": string, // 行为序列的时间函数
"time_params": [], // 行为序列的时间区间参数
"steps":
[
{
"event": string, // 事件名1/虚拟事件1
"filters": [] // 筛选条件,同上
},
{
"event": string, // 事件名2/虚拟事件2
"filters": [] // 筛选条件,同上
}
]
}
filter_realtion_node: 同一事件的筛选条件的逻辑关系
{
"type": "filters_relation",
"relation": string; // and/or
"subfilters":[] // 只允许type为filters_relation或filter
}
filter_node: 事件或事件型指标的数据约束
{
"type": "filter"
"field": string, // 事件属性
"function": string, // 筛选条件函数
"params": [] // 筛选条件的值
}
2 添加一个分群
[POST /segmenter/rule]
- Request (application/json)
{
"id": 0, // 写 0 即可
"name": "last_30_days_apply",
"cname": "last_30_days_apply",
"type": 0, // 分群执行方式,0 单次、1 规则创建例行执行、2 query_result 计算结果、5 外部导入单次执行、6 外部导入例行执行
"app_push_list": [
0 // app push 配置列表,不带可以不写
],
"scheduler": { // 例行分群配置
"running": true, // 执行状态,true 已启动、false 已停止
"cron": "string" // 更新时间,cron 表达式格式,如:0 0 3 2,3,4 * ? *
},
"content": {
"type": "string",
"relation": "string",
"rules": [
{}
]
}
}
- Response 200 (application/json)
{
"id": 0, // 分群ID
"base_time": "string" // 新建分群的首个 partition 的 base_time,形如:2018-01-02 10:00:00
}
3 执行一个分群
[POST /segmenter/execute]
- Request (application/json)
[
{
"id": 0, // 分群 ID
"base_time_list": [
"string" // 2018-08-28 10:00:00
]
}
]
- Response 200 (application/json)
{}
4 获取一个分群的执行状态
[POST /segmenter/status]
- Request (application/json)
[
{
"id": 0, // 分群 id
"base_time_list": [
"string" // base_time 列表, 形如 2018-08-28 10:00:00
]
}
]
- Response 200 (application/json)
[
{
"id": 0, // 分群ID
"result": [
{
"base_time": "string", // 计算的基准时间,形如 2018-08-28 10:00:00
"count": 0, // 计算结果:总人数
"status": "string", // 分群状态,新建分群还未执行:new、执行中:computing、执行完毕:succeed、执行失败:failed
"finished_time": "string", // 分群计算的完成时间
"error_code": 0 // 失败原因
}
]
}
]
5 删除一个分群
[DELETE /segmenter/rule/{id}]
- Response 200 (application/json)
{}
6 获取所有分群
[GET /segmenter/rule/all]
- Response (application/json)
{
"total": 0, // 分群总数
"result": [
{
"id": 0, // 分群 ID
"name": "string", // 分群名
"cname": "string", // 分群显示名
"user_name": "string", // 创建分群的用户
"create_time": "string", // 创建分群的时间
"type": 0, // 分群执行方式,0 单次、1 规则创建例行执行、2 query_result 计算结果、5 外部导入单次执行、6 外部导入例行执行、7 SQL 创建
"dir_id": 0, // 分群所在的目录 ID
"scheduler": {
"running": true, // 执行状态,true 已启动、false 已停止
"cron": "string", // 更新时间,cron 表达式格式,如:0 0 3 2,3,4 * ? *
"execute_cron": "string" // 执行时间,execute_cron 表达式格式,如:0 0 3 2,3,4 * ? *
},
"failed_partition_count": 0, // 失败的 partition 数
"content": {
"type": "string", // 定义规则间的逻辑关系,值为:rules_relation
"relation": "string", // and/or
"rules": [ // 规则节点列表
{}
]
},
"last_partition": {
"base_time": "string", // 分群计算的基准时间 2018-08-28 11:00:00
"finished_time": "string", // 分群计算的完成时间
"count": 0, // 总人数
"app_push_list": [ // 推送配置
0 // 推送配置 ID
],
"status": "string", // Partition 状态,新建分群还未执行:new、执行中:computing、执行完毕:finish、执行失败:failed
"content": { // 分群规则,此结构可以作为规则节点来嵌套、组合使用
"type": "string", // 定义规则间的逻辑关系,值为:rules_relation
"relation": "string", // and/or
"rules": [ // 规则节点列表
{}
]
}
}
}
]
}