1. HDFS离线拉取

本方案适用于不方便直接接入Hubble SDK,或者业务数据需要二次加工清洗后才能使用的场景

具体的方式是 1. 业务方数据开发人员根据业务场景进行数据清洗,并按照Hubble “事件-用户” 模型生成数据存放至HDFS指定目录 2. Hubble系统每天定时从上述指定目录拉取数据进行处理并生成事件/用户数据

1.1. 定义数据

事件数据

字段名 字段描述 数据类型 是否必填
type 数据类型标识(event) string 必填
userId 用户 ID string 必填
deviceUdid 设备 ID string 非必填
dataType 数据报文类型(默认外部事件 e) string 必填
sdkType sdk类型(Android / iOS / js) string 必填
eventId 事件 ID string 必填
time 事件发生时间(绝对毫秒) long 必填
costTime 事件耗时(毫秒) int 非必填
appKey 应用标识 string 必填
sessionUuid 会话 ID string 非必填
ip 客户端ip string 非必填
country 国家 string 非必填
region 省份 string 非必填
city 城市 string 非必填
appVersion app版本 string 非必填
appChannel app渠道 string 非必填
devicePlatform 设备平台 string 非必填
deviceOs 操作系统 string 非必填
deviceOsVersion 操作系统版本 string 非必填
deviceModel 设备机型 string 非必填
deviceManufacturer 设备制造商 string 非必填
deviceResolution 设备分辨率 string 非必填
useWifi 是否使用wifi string 非必填
screenWidth 分辨率(宽) string 非必填
screenHeight 分辨率(高) string 非必填
deviceCarrier 网络运营商 string 非必填
networkType 联网类型 string 非必填
localeLanguage 本地语言 string 非必填
category 事件类别 string 非必填
label 事件标签 string 非必填
attributes 事件自定义属性 map 非必填
// 自定义事件demo数据
{
    "type": "event",
    "userId": "18921895133",
    "deviceUdid": "5cc9531c48a0e12a7143c13bee058166e9e9d8e1",
    "dataType": "e",
    "sdkType": "iOS",
    "eventId": "clickButton",
    "time": 1434556935000,
    "costTime": 20,
    "appKey": "MA-XXXX-437494F370B3",
    "sessionUuid": "1234-342423-232""ip": "172.0.0.1",
    "country": "中国",
    "region": "浙江",
    "city": "杭州",
    "appVersion": "3.2",
    "appChannel": "appstore",
    "devicePlatform": "iPad",
    "deviceOs": "iOS",
    "deviceOsVersion": "7.0",
    "deviceModel": "iPhone6",
    "deviceManufacturer": "Apple",
    "deviceResolution": "640x960",
    "userWifi": "true",
    "screenWidth": "640",
    "screenHeight": "960",
    "deviceCarrier": "中国移动",
    "networkType": "4G",
    "localeLanguage": "en",
    "category": "首页",
    "label": "我喜欢的",
    "attributes": {
        "userfrom": "baidu",
        "lastPage": "个人信息页"
    }
}

用户数据

字段名 字段描述 数据类型 是否必填
type 数据类型标识(user) string 必填
userId 用户ID string 必填
$account 用户账号 string 非必填
$realName 用户姓名 string 非必填
$birthday 用户生日 string 非必填
$age 用户年龄 int 非必填
$gender 用户性别 string 非必填
$country 常用地址-国家 string 非必填
$province 常用地址-省份 string 非必填
$city 常用地址-城市 string 非必填
attributes 用户自定义属性 map 非必填
// 用户demo数据
{
    "type": "user",
    "userId": "ABCDEF123456789",
    "$account": "hubbletest@163.com", // $开头的字段为公共字段
    "$realName": "王磊",
    "$birthday": "1990-09-10",
    "$age": 28,
    "$gender": "male",
    "$$country": "中国",
    "$province": "浙江",
    "$city": "杭州",
    "attributes": {
        "vip": "黄金",  // 非$开头字段为业务自定义字段
        "nickname":"小王王"
    }
}

说明: 1. 事件数据和用户数据均定义成标准json格式,并且key区分大小写,请和上述文档保持一致。一次事件或者一条用户信息对应一条json日志,最终保存为文本、Gzip、Lzo、Snappy格式 2. 在定义数据时,请尽量使用公共字段,公共字段不满足业务需求时才自定义属性 3. 虽然本方案未直接使用SDK采集数据,但是仍然需要开发方发送sdkType字段,默认Android / iOS / js 4. 该方案一般离线处理周期为天,同时在凌晨进行,凌晨9点之前结束,保证数据使用人员上班直接可用 5. 业务方HDFS目录需要对Hubble的用户开放读权限 6. 该离线流程只能保证当天在Hubble系统上查询前一天数据,部分实时分析功能不可

results matching ""

    No results matching ""