大数据-236 离线数仓 - 会员活泼度 WDS 与 ADS 导出到 MySQL 与 广告业务 ...

打印 上一主题 下一主题

主题 992|帖子 992|积分 2976

点一下关注吧!!!非常感谢!!持续更新!!!

Java篇开始了!

目前开始更新 MyBatis,一起深入浅出!
目前已经更新到了:



  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(已更完)
  • DataX(已更完)
  • Tez(已更完)
  • 数据发掘(已更完)
  • Prometheus(已更完)
  • Grafana(已更完)
  • 离线数仓(正在更新…)
章节内容

上节我们完成了如下的内容:


  • 会员活泼度 数据测试
  • 完备加载 ODS DWD 层

数据测试

活泼会员DWS

  1. sh dws_load_member_start.sh 2020-07-21
  2. -- 依次执行其他的 过于重复 这里跳过
复制代码
执行效果如下图

活泼会员ADS

(之前这里打错名称了,多打了字母m,大家根据实际环境修改)
  1. sh ads_load_member_active.sh 2020-07-21
  2. -- 依次执行其他的 过于重复 这里跳过
复制代码
执行效果如下图:

新增会员DWS

  1. sh dws_load_member_add_day.sh 2020-07-21
  2. -- 依次执行其他的 过于重复 这里跳过
复制代码
执行效果如下图所示:

新增会员ADS

  1. sh ads_load_member_add.sh 2020-07-21
  2. -- 依次执行其他的 过于重复 这里跳过
复制代码
执行效果如下图所示:

会员留存DWS

  1. sh dws_load_member_retention_day.sh 2020-07-21
  2. -- 依次执行其他的 过于重复 这里跳过
复制代码
执行效果如下图所示:

会员留存ADS

  1. sh ads_load_member_retention.sh 2020-07-21
  2. -- 依次执行其他的 过于重复 这里跳过
复制代码
执行效果如下图所示:

导出测试

HDFS
现在数据有了,在我们的HDFS上,可以看到:

DataX

我们运行刚才的脚本:
  1. sh /opt/wzk/hive/export_member_active_count.sh 2020-07-21
  2. -- 其他日期也执行一次,重复性高,这里略过
复制代码
运行效果如下图所示:

等待运行竣事:

MySQL

这里我们运行了 07-21 到 07-31 的数据,我们查询数据库内容,可以看到如下的效果:

广告业务 ODS DWD ADS

基本先容

互联网平台通行的商业模式是利用免费的底子服务来吸引大量用户,并利用这些用户开展广告或其他增值业务实现盈利从而反哺支撑免费服务的生存和发展。广告收入不仅成为互联网平台的重要收入之一,更决定了互联网平台的发展程度。
电商平台本身就汇聚了海量的商品、店肆的信息,天然适合举行商品的推广。对于电商和广告主来说,广告投放的目的无非就是吸引更多的用户,最终实现营销转换。因此非常关注不同位置的广告的曝光量、点击量、购买量、点击率、购买率。
需求分析

事件日志数据样例:
  1. {
  2.   "wzk_event": [{
  3.     "name": "goods_detail_loading",
  4.     "json": {
  5.       "entry": "3",
  6.       "goodsid": "0",
  7.       "loading_time": "80",
  8.       "action": "4",
  9.       "staytime": "68",
  10.       "showtype": "4"
  11.     },
  12.     "time": 1596225273755
  13.   }, {
  14.     "name": "loading",
  15.     "json": {
  16.       "loading_time": "18",
  17.       "action": "1",
  18.       "loading_type": "2",
  19.       "type": "3"
  20.     },
  21.     "time": 1596231657803
  22.   }, {
  23.     "name": "ad",
  24.     "json": {
  25.       "duration": "17",
  26.       "ad_action": "0",
  27.       "shop_id": "786",
  28.       "event_type": "ad",
  29.       "ad_type": "4",
  30.       "show_style": "1",
  31.       "product_id": "2772",
  32.       "place": "placeindex_left",
  33.       "sort": "0"
  34.     },
  35.     "time": 1596278404415
  36.   }, {
  37.     "name": "favorites",
  38.     "json": {
  39.       "course_id": 0,
  40.       "id": 0,
  41.       "userid": 0
  42.     },
  43.     "time": 1596239532527
  44.   }, {
  45.     "name": "praise",
  46.     "json": {
  47.       "id": 2,
  48.       "type": 3,
  49.       "add_time": "1596258672095",
  50.       "userid": 8,
  51.       "target": 6
  52.     },
  53.     "time": 1596274343507
  54.   }],
  55.   "attr": {
  56.     "area": "拉萨",
  57.     "uid": "2F10092A86",
  58.     "app_v": "1.1.12",
  59.     "event_type": "common",
  60.     "device_id": "1FB872-9A10086",
  61.     "os_type": "4.1",
  62.     "channel": "KS",
  63.     "language": "chinese",
  64.     "brand": "xiaomi-2"
  65.   }
  66. }
复制代码
采集的信息包罗:


  • 商品详情页加载:goods_detail_loading
  • 商品列表:loading
  • 消息通知:notification
  • 商品评论:comment
  • 收藏:favorites
  • 点赞:praise
  • 广告:ad
在广告的字段中,网络到的数据有:


  • action 用户行为 0曝光 1曝光后点击 2购买
  • duration 停顿时长
  • shop_id 商家id
  • event_type “ad”
  • ad_type 1JPG 2PNG 3GIF 4SWF
  • show_style 0静态图 1动态图
  • product_id 产物id
  • place 广告位置 1首页 2左侧 3右侧 4列表页
  • sort 排序位置
需求指标

点击次数统计(分时统计)


  • 曝光次数、不同用户ID数、不同用户数
  • 点击次数、不同用户ID数、不同用户数
  • 购买次数、不同用户ID数、不同用户数
转化率-漏斗分析


  • 点击率 = 点击次数/曝光次数
  • 购买率 = 购买次数/点击次数
活动曝光效果评估
行为(曝光、点击、购买)、时间段、广告位、产物、统计对应的次数
时间段、广告位、商品,曝光次数最多的前N个
ODS层

建立新表

Hive启动之后,切换到 ods层,然后我们继续创建外部表,将数据映射到Hive中:
  1. use ods;
  2. drop table if exists ods.ods_log_event;
  3. CREATE EXTERNAL TABLE ods.ods_log_event(
  4.   `str` string
  5. ) PARTITIONED BY (`dt` string)
  6. STORED AS TEXTFILE
  7. LOCATION '/user/data/logs/event';
复制代码
执行效果如下图所示:

编写脚本

  1. vim /opt/wzk/hive/ods_load_event_log.sh
复制代码
编写脚本,写入内容如下:
  1. #!/bin/bash
  2. source /etc/profile
  3. if [ -n "$1" ]
  4. then
  5. do_date=$1
  6. else
  7. do_date=`date -d "-1 day" +%F`
  8. fi
  9. sql="
  10. alter table ods.ods_log_event add partition (dt='$do_date');
  11. "
  12. hive -e "$sql"
复制代码
写入的内容如下所示:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表