项目实战从0到1之hive(33)大数据项目之电商数仓(用户行为数据采集)(一)

第1章 数据仓库概念

img

第2章 项目需求及架构设计

2.1 项目需求分析

img

2.2 项目框架

2.2.1 技术选型

img

2.2.2 系统数据流程设计

img

2.2.3 框架版本选型

img

img

2.2.4 服务器选型

img

2.2.5 集群资源规划设计

img

2)测试集群服务器规划json

img

第3章 数据生成模块

3.1 埋点数据基本格式

  • 公共字段:基本全部安卓手机都包含的字段服务器

  • 业务字段:埋点上报的字段,有具体的业务类型网络

下面就是一个示例,表示业务字段的上传。架构

{
"ap":"xxxxx",//项目数据来源 app pc
"cm": {  //公共字段
       "mid": "",  // (String) 设备惟一标识
       "uid": "",  // (String) 用户标识
       "vc": "1",  // (String) versionCode,程序版本号
       "vn": "1.0",  // (String) versionName,程序版本名
       "l": "zh",  // (String) language系统语言
       "sr": "",  // (String) 渠道号,应用从哪一个渠道来的。
       "os": "7.1.1",  // (String) Android系统版本
       "ar": "CN",  // (String) area区域
       "md": "BBB100-1",  // (String) model手机型号
       "ba": "blackberry",  // (String) brand手机品牌
       "sv": "V2.2.1",  // (String) sdkVersion
       "g": "",  // (String) gmail
       "hw": "1620x1080",  // (String) heightXwidth,屏幕宽高
       "t": "1506047606608",  // (String) 客户端日志产生时的时间
       "nw": "WIFI",  // (String) 网络模式
       "ln": 0,  // (double) lng经度
       "la": 0  // (double) lat 纬度
  },
"et": [  //事件
          {
               "ett": "1506047605364",  //客户端事件产生时间
               "en": "display",  //事件名称
               "kv": {  //事件结果,以key-value形式自行定义
                   "goodsid": "236",
                   "action": "1",
                   "extend1": "1",
"place": "2",
"category": "75"
              }
          }
      ]
}

示例日志(服务器时间戳 | 日志):app

1540934156385|{
   "ap": "gmall",
   "cm": {
       "uid": "1234",
       "vc": "2",
       "vn": "1.0",
       "la": "EN",
       "sr": "",
       "os": "7.1.1",
       "ar": "CN",
       "md": "BBB100-1",
       "ba": "blackberry",
       "sv": "V2.2.1",
       "g": "abc@gmail.com",
       "hw": "1620x1080",
       "t": "1506047606608",
       "nw": "WIFI",
       "ln": 0
  },
       "et": [
          {
               "ett": "1506047605364",  //客户端事件产生时间
               "en": "display",  //事件名称
               "kv": {  //事件结果,以key-value形式自行定义
                   "goodsid": "236",
                   "action": "1",
                   "extend1": "1",
"place": "2",
"category": "75"
              }
          },{
               "ett": "1552352626835",
               "en": "active_background",
               "kv": {
                    "active_source": "1"
              }
          }
      ]
  }
}

下面是各个埋点日志格式。其中商品点击属于信息流的范畴框架

3.2 事件日志数据

3.2.1 商品列表页(loading)

事件名称:loadingmaven

img

img

3.2.2 商品点击(display)

事件标签:displayide

img

img

3.2.3 商品详情页(newsdetail)

事件标签:newsdetail测试

img

img

3.2.4 广告(ad)

事件名称:adui

img

img

3.2.5 消息通知(notification)

事件标签:notification

img

3.2.6 用户前台活跃(active_foreground)

事件标签: active_foreground img

3.2.7 用户后台活跃(active_background)

事件标签: active_background

img

3.2.8 评论(comment)

描述:评论表 img

img

3.2.9 收藏(favorites)

描述:收藏

img

3.2.10 点赞(praise)

描述:全部的点赞表 img

img

3.2.11 错误日志

img

3.3 启动日志数据

事件标签: start

img

{
   "action":"1",
   "ar":"MX",
   "ba":"HTC",
   "detail":"",
   "en":"start",
   "entry":"2",
   "extend1":"",
   "g":"43R2SEQX@gmail.com",
   "hw":"640*960",
   "l":"en",
   "la":"20.4",
   "ln":"-99.3",
   "loading_time":"2",
   "md":"HTC-2",
   "mid":"995",
   "nw":"4G",
   "open_ad_type":"2",
   "os":"8.1.2",
   "sr":"B",
   "sv":"V2.0.6",
   "t":"1561472502444",
   "uid":"995",
   "vc":"10",
   "vn":"1.3.4"
}

3.4 数据生成脚本

img

3.4.1 建立Maven工程

1)建立log-collector 2)建立一个包名:com.kgg.appclient 3)在com.kgg.appclient包下建立一个类,AppMain。 4)在pom.xml文件中添加以下内容

<!--版本号统一--><properties>    <slf4j.version>1.7.20</slf4j.version>    <logback.version>1.0.7</logback.version></properties>​<dependencies>    <!--阿里巴巴开源json解析框架-->    <dependency>        <groupId>com.alibaba</groupId>        <artifactId>fastjson</artifactId>        <version>1.2.51</version>    </dependency>​    <!--日志生成框架-->    <dependency>        <groupId>ch.qos.logback</groupId>        <artifactId>logback-core</artifactId>        <version>${logback.version}</version>    </dependency>    <dependency>        <groupId>ch.qos.logback</groupId>        <artifactId>logback-classic</artifactId>        <version>${logback.version}</version>    </dependency></dependencies>​<!--编译打包插件--><build>    <plugins>        <plugin>            <artifactId>maven-compiler-plugin</artifactId>            <version>2.3.2</version>            <configuration>                <source>1.8</source>                <target>1.8</target>            </configuration>        </plugin>        <plugin>            <artifactId>maven-assembly-plugin </artifactId>            <configuration>                <descriptorRefs>                    <descriptorRef>jar-with-dependencies</descriptorRef>                </descriptorRefs>                <archive>                    <manifest>                        <mainClass>com.kgg.appclient.AppMain</mainClass>                    </manifest>                </archive>            </configuration>            <executions>                <execution