菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
241
0

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

原创
05/13 14:22
阅读数 30390

第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)测试集群服务器规划

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

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

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)

事件名称:loading

img

img

3.2.2 商品点击(display)

事件标签:display

img

img

3.2.3 商品详情页(newsdetail)

事件标签:newsdetail

img

img

3.2.4 广告(ad)

事件名称:ad

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

发表评论

0/200
241 点赞
0 评论
收藏