说明
注意:如果私部环境所有应用数据上报量>1亿条/天,则不支持数据导出,请勿开启该功能。
Context-path: /datafinder
Request-parameters:
Parameter | Type | Description | Required |
---|---|---|---|
app_id | int | 应用的app_id | true |
begin_date | string | yyyy-MM-dd,需要导出数据的开始日期 | true |
end_date | string | yyyy-MM-dd,需要导出数据的结束日期,开始结束日期间隔不能超过365天 | true |
Response:
{ "code": 200, "data": [{REULT_OBJECT}], "message": "success" }
Path:/openapi/v1/{app_id}/date/{begin_date}/{end_date}/downloads
Method: GET
Content-type: application/json
Request-parameters: 参考公共参数
bc
为创建的 RangersClient, 其初始化请参考 “OpenAPI SDK 使用说明”, 各语言的 SDK 都提供了类似的接口
调用(Python):
# 这是 Python 示例 res = bc.data_finder('/openapi/v1/{app_id}/date/{begin_date}/{end_date}/downloads', method='get') print(res.content)
返回结果:
{ "code": 200, "data": [{ "date": "2021-10-10", "urls": ["http://xxxx/xxxx.txt.gz"], "row_count": 10, "expire_time": "2021-11-09" }, { "date": "2021-10-11", "urls": ["http://xxxx/xxxx.txt.gz"], "row_count": 200, "expire_time": "2021-11-10" }], "message": "success" }
如果需要导出数据文件已经过期或者其他原因导致3.1的接口未查询到对应的原始数据文件,此时调用此接口提交导出任务。
接口返回成功后,说明导出任务提交成功,之后需要等待数小时时间(依据数据量大小)执行任务,任务执行完成后,使用“获取数据文件清单 API”查询导出的数据。
Path:/openapi/v1/{app_id}/date/{begin_date}/{end_date}/downloads
Method: POST
Content-type: application/json
Request-parameters: 参考公共参数
Body:
无
bc
为创建的 RangersClient, 其初始化请参考 “OpenAPI SDK 使用说明”, 各语言的 SDK 都提供了类似的接口
调用(Python):
# 这是 Python 示例 res = bc.data_finder('/openapi/v1/{app_id}/date/{begin_date}/{end_date}/downloads', method='post', body='') print(res.content)
返回结果:
{ "code": 200, "message": "success" }
使用3.1结果返回的urls,依次下载原始数据文件,可以并发下载,建议最多5个线程。
建议每日定时获取前一天的数据。
下载后的原始数据文件为txt.gz文件,建议使用gunzip解压,解压后文件为txt文件,每一行一条json格式的原始数据,编码为utf-8,单条json格式如下:
{ "user": { "user_unique_id": "用户唯一id", "web_id": "web_id", "ssid": "ssid" }, "header": { "app_id": "应用id", "app_name": "应用名称", "app_channel": "应用渠道", "app_version": "应用版本", "ab_version": "AB实验VID", "client_ip": "ip地址", "language": "语言", "network_type": "网络类型", "os_name": "操作系统", "os_version": "操作系统版本", ... # 其他预置属性 "custom": { ... # 公共属性 } }, "params": { ... # 事件属性 }, "event_name": "事件名称", "server_time": "事件上报到服务器端的时间", "local_time_ms": "事件触发时间(客户端时间)" }