Skip to content

创建导出任务

UBI SDK 提供数据导出机制,方便接入方批量获取 UBI SDK 平台上托管的数据。

我们支持定期将数据导出到 阿里云 OSS,接入方需要提前提供如下信息,供百姓车联将数据写入目标存储:

  • OSS endpoint
  • OSS Bucket
  • RAM Access Key & Access Secret
  • 导出路径

注意

目前没有后台管理界面或接口,让接入方自助设置数据导出相关的配置。如有需要,请通过电话或邮箱联系百姓车联。

接入方可以复用用于保存行程原始数据的 OSS 存储,仅需指定导出路径与文件格式即可。目前仅导出支持JSON Lines 格式的数据。

定期导出的数据会被写到 导出路径/导出类型/日期/任务id/ 路径下,例如 /path/to/exported_data/20220105/1516735090342891520/。一份数据由多个分片文件 (part-*) 组成,分片文件的格式为用户申请定期导出时指定的文件格式。

全部数据导出完成后,UBI SDK 平台会创建路径为 导出路径/日期/任务id/_SUCCESS 的空文件以标识该份数据已被成功导出。

接口概览

导出任务包含以下4种类型:

导出类型 接口地址 说明
用户列表 GET /v1/export/users 包含在UBI Dashboard创建的用户,和通过UBI SDK上传过行程的用户
行程数据 GET /v1/export/trips 指定时间段内,用户上传的行程明细数据
危险行为 GET /v1/export/event 用户上传的行程中,识别出的危险行为数据
驾驶分 GET /v1/export/safety-score 根据特定时间段内,对用户的驾驶行为进行综合分析,汇总得出的驾驶分

注意

  1. 导出接口均为异步操作,接口只返回job_id。可以通过job_id调用任务状态接口,查看当前任务执行是否成功。

  2. 导出接口均返回T-1的数据。如果是5月1号创建任务,导出的数据中不包含5月1号当天的数据。

  3. 行程数据可能会迟到。比如5月1号驾驶的行程,因为网络原因,直到5月10号才上传到服务端。那么在5月10号之前,导出任务的数据都不会包含该行程。

接口响应

HTTP 状态码 类型 说明
200 ExportResponse 导出返回
400 ErrorResult 请求参数不合法
500 ErrorResult 系统错误

ExportResponse包含以下字段:

名称 类型 说明
jobId string 导出任务的唯一标识

当HTTP状态码等于200时,返回的消息体会包含jobId。例:

1
2
3
{
  "jobId": "1485575119094075392"
}

后续可以轮询任务状态接口,查看任务执行状态。

接口详情

用户列表

1
GET /v1/export/users

包含在UBI Dashboard创建的用户,和通过UBI SDK上传过行程的用户。

  • 文件示例:

    1
    2
    3
    {"app_id": "110877749", "status": 1, "org_user_id": "1"}
    {"app_id": "110877749", "status": 1, "org_user_id": "2"}
    {"app_id": "110877749", "status": 1, "org_user_id": "3"}
    

  • 字段说明:

字段名 字段类型 描述
app_id string APP ID
status string 用户状态(1: 正常; 99: 注销)
org_user_id string 接入方的用户账户体系下的用户唯一标识

行程数据

1
GET /v1/export/trips

参数:

位置 名称 类型 说明 是否必填
Query startTime string 开始日期,格式YYYY-mm-dd,例2022-01-01

导出从开始日期(startTime)至今,用户上传的行程数据。

  • 文件示例:
1
2
{"org_user_id": "100002", "trip_id": "1498620753753554944", "start_time": "2022-03-01 19:26:45", "end_time": "2022-03-01 20:15:17", "start_poi": "东三环中路京广商务中心", "end_poi": "润枫欣尚合立方", "score": "97.95", "auto_start": "1", "auto_end": "1", "start_point": "{\"lng\":116.46159776475695,\"lat\":39.91965277777778}", "end_point": "{\"lng\":116.41099934895833,\"lat\":40.058078070746525}", "route_oss_key": "ubi/analyzed/110852088/100002/1498620753753554944/route.pb", "digest_oss_key": "ubi/analyzed/110852088/100002/1498620753753554944/digest.json", "event_count": "1", "coordinates": "GCJ02", "duration_in_seconds": "2911", "max_speed_in_kilometers_per_hour": "90.6", "avg_speed_in_kilometers_per_hour": "24.6", "mileage_in_meters": "19884"}
{"org_user_id": "100001", "trip_id": "1497110754418159616", "start_time": "2022-02-24 19:19:58", "end_time": "2022-02-24 19:55:19", "start_poi": "京通快速路金地中心", "end_poi": "S50北五环辅路QM家具店(北五环中心店)", "score": "97.28", "auto_start": "0", "auto_end": "0", "start_point": "{\"lng\":116.47562670642067,\"lat\":39.90820594485503}", "end_point": "{\"lng\":116.4331406214277,\"lat\":40.022228945536106}", "route_oss_key": "ubi/analyzed/110852088/100001/1497110754418159616/route.pb", "digest_oss_key": "ubi/analyzed/110852088/100001/1497110754418159616/digest.json", "event_count": "2", "coordinates": "GCJ02", "duration_in_seconds": "2121", "max_speed_in_kilometers_per_hour": "73.0", "avg_speed_in_kilometers_per_hour": "29.2", "mileage_in_meters": "17204"}
  • 字段说明:
字段名 字段类型 描述
org_user_id string 接入方的用户账户体系下的用户唯一标识
trip_id string 行程唯一标识
start_time string 行程开始时间
end_time string 行程结束时间
start_poi string 行程开始地理位置
end_poi string 行程结束地理位置
score float 行程评分
auto_start string 是否是自动开始(1:是;0:否)
auto_end string 是否是自动结束(1:是;0:否)
start_point string 行程起点经纬度
end_point string 行程终点经纬度
route_oss_key string 行程轨迹文件的oss路径
digest_oss_key string 行为摘要文件的oss路径
event_count string 危险行为数量
coordinates string gps坐标系类型(GCJ02, WGS84)
duration_in_seconds string 驾驶时长(单位:秒)
max_speed_in_kilometers_per_hour string 最高速度(单位:km/h)
avg_speed_in_kilometers_per_hour string 平均速度(单位:km/h)
mileage_in_meters string 行驶里程(单位:米)

危险行为

1
GET /v1/export/event

导出从指定日期至今,所有的危险行为数据。

参数:

位置 名称 类型 说明 是否必填
Query startTime string 行程开始日期,格式YYYY-mm-dd,例2022-01-01

导出从开始日期(startTime)以来的,用户上传的行程中的危险行为数据。 如果某条行程中没有危险行为,导出的数据中就不会有该行程。

  • 文件示例:
1
2
{"org_user_id": "100001", "trip_id": "1503200543177363456", "start_time": "2022-02-24 19:19:58", "end_time": "2022-02-24 19:55:10", "mileage_in_meters": "17150", "duration_in_seconds": "2111", "left_turn_num": "0", "right_turn_num": "0", "throttle_num": "0", "brake_num": "0", "phone_call_num": "0", "speeding_num": "0", "night_driving_num": "0", "tired_driving_num": "0", "phone_play_num": "2", "phone_call_duration": "0", "speeding_duration": "0", "night_driving_duration": "0", "tired_driving_duration": "0", "phone_play_duration": "25"}
{"org_user_id": "100002", "trip_id": "1497173414501302272", "start_time": "2022-02-25 19:35:32", "end_time": "2022-02-25 19:41:04", "mileage_in_meters": "2004", "duration_in_seconds": "331", "left_turn_num": "0", "right_turn_num": "0", "throttle_num": "0", "brake_num": "0", "phone_call_num": "0", "speeding_num": "0", "night_driving_num": "0", "tired_driving_num": "0", "phone_play_num": "0", "phone_call_duration": "0", "speeding_duration": "0", "night_driving_duration": "0", "tired_driving_duration": "0", "phone_play_duration": "0"}
  • 字段说明:
字段名 字段类型 描述
org_user_id string 接入方的用户账户体系下的用户唯一标识
trip_id string 行程唯一标识
start_time datetime 行程开始时间
end_time datetime 行程结束时间
total_mileage_in_meters BIGINT 行驶总里程(单位米)
duration_in_seconds string 驾驶时长(单位秒)
left_turn_num bigint 急左转次数
right_turn_num bigint 急右转次数
throttle_num bigint 急加速次数
brake_num bigint 急刹车次数
phone_call_num bigint 打电话次数
speeding_num bigint 超速次数
night_driving_num bigint 夜间行车次数
tired_driving_num bigint 疲劳驾驶次数
phone_play_num bigint 玩手机次数
phone_call_duration bigint 打电话持续时长(秒)
speeding_duration bigint 超速持续时长(秒)
night_driving_duration bigint 夜间行车持续时长(秒)
tired_driving_duration bigint 疲劳驾驶持续时长(秒)
phone_play_duration bigint 玩手机持续时长(秒)

驾驶分

1
GET /v1/export/safety-score

导出从指定日期至今,每个用户的安全驾驶分数据。如果用户没有上传过行程,也没有在UBI Dashboard中被手动加入,就不会有该用户的数据

参数:

位置 名称 类型 说明 是否必填
Query startTime string 行程开始时间
  • 文件示例:
    1
    2
    3
    4
    {"org_user_id": "100001", "safety_score": "90.0", "interval": "90"}
    {"org_user_id": "100002", "safety_score": "100.0", "interval": "90"}
    {"org_user_id": "100003", "safety_score": "70.0", "interval": "90"}
    {"org_user_id": "100004", "safety_score": "80.0", "interval": "90"}
    
  • 字段说明:
字段名 字段类型 描述
org_user_id string 接入方的用户账户体系下的用户唯一标识
safety_score double 驾驶分, 0-100
interval int 计算的周期范围(单位: 天)