本文档为为SaaS产品原始数据自定义导出的使用文档;
私有化版本可以查看私有化文档-原始数据导出 API 。
通过该文档为T+1离线的方式导出原始数据,如果需要实时数据可以查看数据分发。
特别说明:云原生版本暂不支持数据导出。
为了保证您和用户的数据安全,应用原始数据导出的接口权限默认是关闭的。
在开始使用之前,您需要联系客服开通数据导出功能。
开通原始数据导出功能后,系统会每天自动执行任务,导出前一天数据并上传文件系统,您可以通过该开放接口获取和导出开通之日之后的原始数据。
根据数据时间(当天时间为T),接口分为:
Context-path: /datarangers
Path-parameters:
Parameter | Type | Description | Required |
---|---|---|---|
app_id | int | 应用的app_id | true |
begin_date | string | yyyy-MM-dd,需要导出数据的开始日期 | true |
end_date | string | yyyy-MM-dd,需要导出数据的结束日期。 | true |
Response:
{ "code": 200, "data": [{REULT_OBJECT}], "message": "success" }
Path:/openapi/v2/{app_id}/date/{begin_date}/{end_date}/downloads
Method: GET
Content-type: application/json
Path-parameters:
Parameter | Type | Description | Required |
---|---|---|---|
begin_date | string | yyyy-MM-dd,需要导出数据的开始日期,只支持最近7天 | true |
end_date | string | yyyy-MM-dd,需要导出数据的结束日期,只支持最近7天 | true |
bc
为创建的 RangersClient, 其初始化请参考 “OpenAPI SDK 使用说明”, 各语言的 SDK 都提供了类似的接口。
调用(Python):
# 这是 Python 示例 res = bc.data_rangers('/openapi/v2/{appid}/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" }
该接口支持自定义数据导出,需注意以下几点:
Path:/openapi/v1/{appid}/date/{begin_date}/{end_date}/exports
Method: Type: POST
Content-type: application/json
Path-parameters:
Parameter | Type | Required |
---|---|---|
begin_date | string | yyyy-MM-dd,需要导出数据的开始日期,不能早于2020-01-01 |
end_date | string | yyyy-MM-dd,需要导出数据的结束日期,开始结束日期间隔不能超过365天 |
Body:
无
bc
为创建的 RangersClient, 其初始化请参考 “OpenAPI SDK 使用说明”, 各语言的 SDK 都提供了类似的接口。
调用(Python):
# 这是 Python 示例 res = bc.data_rangers('/openapi/v1/{appid}/date/{begin_date}/{end_date}/exports', method='post', body='') print(res.content)
返回结果:
{ "code": 200, "message": "success" }
该接口返回自定义导出数据的文件清单,需注意一下几点:
Path:/openapi/v1/{app_id}/exports
Method: GET
Content-type: application/json
Path-parameters: 无特殊参数,参考公共参数即可
Response:
参数 | 类型 | 说明 |
---|---|---|
code | int | 接口返回状态,200为成功 |
date | string | 数据文件的对应的日期 |
name | string | app_launch为应用启动,origin_event为行为日志 |
urls | list | 文件的下载地址列表 |
row_count | int | 文件中包含的条数 |
expire_time | string | 数据失效时间 |
message | string | 接口返回的消息 |
bc
为创建的 RangersClient, 其初始化请参考 “OpenAPI SDK 使用说明”, 各语言的 SDK 都提供了类似的接口。
调用(Python):
res = bc.data_rangers('/openapi/v1/{app_id}/exports', method='get') print(res.content)
返回结果:
{ "code": 200, "data": [{ "date": "2020-02-10", "name": "app_launch", "urls": ["http://xxxx/obj/dptob-nj-dataexoort/xxxx.csv.gz"], "row_count": 10, "expire_time": "2020-03-10 12:00:00" }, { "date": "2020-02-10", "name": "origin_event", "urls": ["http://xxxx/obj/dptob-nj-dataexoort/xxxx.csv.gz"], "row_count": 302, "expire_time": "2020-03-10 12:00:00" }], "message": "success" }
使用3或者5结果返回的urls,依次下载原始数据文件,可以并发下载,建议最多5个线程。
建议每日定时获取前一天的数据。
下载后的原始数据文件为csv.gz文件,可以直接导入hdfs,编码为utf-8。
文件字段字段如下:
字段 | 说明 | 数据类型 |
---|---|---|
app_name | 应用名称 | string |
event | 事件名称 | string |
params | 事件属性(客户端上报的params字段) | map<string, string> |
header_custom | 自定义的公共属性 | map<string, string> |
local_time_ms | 事件触发时间(客户端时间) | bigint |
server_time | 事件上报到服务器端的时间,unixtime格式 | int |
user_unique_id | 用户唯一id | string |
ssid | SSID | string |
bddid | 设备id | string |
udid | imei | string |
session_id | 会话id | string |
app_package | 应用包名 | string |
app_channel | 应用渠道 | string |
app_version | 应用版本 | string |
app_install_id | 安装id | string |
app_language | 语言 | string |
ab_version | ab测试版本 | string |
client_ip | ip地址,原device_id | string |
device_timezone | 时区 | int |
device_model | 设备型号 | string |
device_brand | 设备品牌 | string |
os_name | 操作系统 | string |
os_version | 操作系统版本 | string |
os_is_jailbroken | 设备是否越狱 | int |
network_type | 网络类型 | string |
network_carrier | 运营商 | string |
screen_resolution | 分辨率 | string |
screen_density | 像素密度 | string |
screen_density_dpi | 像素密度dpi | bigint |
push_os | 推送的os | string |
push_sdk | 推送的sdk列表 | string |
tea_event_index | 一个session中事件的发生顺序 | bigint |