You need to enable JavaScript to run this app.
导航

原始数据导出(私有化)

最近更新时间2024.02.27 11:47:21

首次发布时间2024.02.27 11:47:21

1.概述
  • 本文档为原始数据自定义导出使用文档;私有化版本3.8.0开始支持该功能。
  • 为了保证您和用户的数据安全,应用原始数据导出的接口权限默认是关闭的。
  • 在开始使用之前,您需要联系项目经理或客户成功经理开通数据导出功能。
  • 开通原始数据导出功能后,系统会每天自动执行任务,导出出前一天数据并上传文件系统,您可以通过该开放接口获取和导出开通之日之后的统计数据。如果需要实时数据可以查看数据分发

说明

注意:如果私部环境所有应用数据上报量>1亿条/天,则不支持数据导出,请勿开启该功能。

2.API 公共参数

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"
}
  • code 状态码,200 表示成功,其他非失败
  • message 成功或失败信息
  • data 结果数据,为一个json object array

3.获取数据文件清单 API

3.1 API 定义

Path:/openapi/v1/{app_id}/date/{begin_date}/{end_date}/downloads
Method: GET
Content-type: application/json
Request-parameters: 参考公共参数

3.2 OpenAPI SDK 使用样例

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"
}

4.提交自定义数据导出 API

如果需要导出数据文件已经过期或者其他原因导致3.1的接口未查询到对应的原始数据文件,此时调用此接口提交导出任务。
接口返回成功后,说明导出任务提交成功,之后需要等待数小时时间(依据数据量大小)执行任务,任务执行完成后,使用“获取数据文件清单 API”查询导出的数据。

4.1 API 定义

Path:/openapi/v1/{app_id}/date/{begin_date}/{end_date}/downloads
Method: POST
Content-type: application/json
Request-parameters: 参考公共参数
Body:

4.2 OpenAPI SDK 使用样例

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"
}

5.下载数据文件

使用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": "事件触发时间(客户端时间)"
}