目录
此内容是否有帮助?

# 模型查询 API

本文档所描述的内容属于 TA 的高级使用功能,涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询您的数据咨询顾问获取一对一的协助。

模型查询 API 主要用于获取各种数据分析报告。

请参见Open API文档中的调用方法描述。

# 一、通用参数

# 属性表达

几乎所有的 API 都会用到属性,例如按照某个属性进行过滤、分组或者聚合等等。属性包括事件属性,用户属性和用户分群属性,属性通常使用名称和表类型两个字段表达。例如表示 省份 这个事件属性的表达式如下:

{
    "tableType":"event",
    "columnName":"#province"
}

用户属性类似,例如表示 用户级别:

{
    "tableType":"user",
    "columnName":"user_level"
}

# 筛选表达式

筛选表达式同样适用于绝大多数 API,用于表示对某些事件或者用户的筛选操作,使用如下格式的 JSON 表示:

{
  // 表示 filts 里的各个条件的关系是 或 还是 且
  "relation": "and",
  // 具体的条件列表,可以有多个
  "filts": [{
    // 条件的左值,是一个属性
    "tableType":"event",
    "columnName": "#os",
    // 条件的比较符,这里表示等于
    "comparator": "equal",
    // 条件的比较值,根据不同的比较符可以有一个或者多个
    "ftv": [
      "ios"
    ]
  },
  {
    "tableType":"user",
    "columnName":"user_level",
    "comparator": "equal",
    "ftv": [
      "5"
    ]
  }]
}

目前支持的操作符如下:

  • equal / notEqual

表示等于/不等于,对字符串、数值类型有效。如果 ftv 有多个,则相当于 In 或者 Not In。例如想筛选出来等级为 3 和 4 的用户:

{
    "tableType":"user",
    "columnName":"user_level",
    "comparator": "equal",
    "ftv": ["3","5"]
}
  • isTrue / isFalse

只对布尔类型有效。

  • isNull / notNull

某个属性是否有值,对字符串、数值类型有效。

  • include / notInclude

表示包含或不包含某个子串:

{
    "tableType":"user",
    "columnName":"channel",
    "comparator": "include",
    "ftv": ["应用宝"]
}
  • less / greater / range:表示小于/大于/小于且大于,其中 range 是前闭后闭的区间,对数值类型和时间类型有效。例如筛选物品剩余数量在 3 和 9 之间的所有事件:
{
    "tableType":"event",
    "columnName":"count_left",
    "comparator": "range",
    "ftv": [3, 9]
}

或者筛选所有最后登录时间在 2019-11-13 00:00~2019-11-23 00:00 之间的用户

{
    "tableType":"user",
    "columnName":"latest_login_time",
    "comparator": "range",
    "ftv":["2019-11-13 00:00","2019-11-23 00:00"]
}
  • regexMatch / notRegexMatch

正则匹配或者正则不匹配,只对字符串类型有效。

  • relativeCurrentBetween / relativeCurrentBefore

针对日期类型的操作符,分别表示 相对当前时间在过去 N 天到过去 M 天之间/相对当前时间在过去 N 天之前。例如想筛选所有注册时间相对当前时间在过去 3 天之前的用户:

{
    "tableType":"user",
    "columnName":"register_time",
    "comparator": "relativeCurrentBefore",
    "ftv": [3]
}

或者筛选所有注册时间相对当前时间在过去 9 天到过去 3 天之间的用户:

{
    "tableType":"user",
    "columnName":"register_time",
    "comparator": "relativeCurrentBetween",
    "ftv": [9, 3]
}
  • relativeEventBefore / relativeEventAfter / relativeEventAbsolute

针对日期类型的操作符,分别表示 相对事件发生时刻在之前 N 长时间之内/相对事件发生时刻在之后 N 长时间之内/相对事件发生时刻在前后 N 长时间之内。例如想筛选用户上次登录时间相对事件发生时刻在之前 3 个小时之内的事件:

{
    "tableType":"user",
    "columnName":"latest_login_time",
    "comparator": "relativeEventBefore",
    "ftv": [3],
    "timeUnit": "hour"
}
  • arrayIncludeItem / arrayNotIncludeItem

列表类型的操作符,表示列表是否包含某些元素

  • arrayItemPos

列表类型的操作符,表示列表第 n 个元素等于某个值

  • arrayIsNull / arrayNotNull

列表类型的操作符,表示列表是否存在