一、数据采集项目总结

1.数据仓库

数据仓库是保存数据,为企业提供数据支持

2.数据的分类

业务数据: 记录的是订单的信息!

​ 行为数据: 记录的是下单的过程发生的信息!

2.1用户业务数据

是什么:

用户使用平台(电商)时产生的和电商的业务紧密相关(购买,下单,支付,收藏,搜索 )的数据!

产生:

用户在使用APP时,产生!

如何存:

关系型数据库

为什么:

事务是区分场景可以使用RDMS和NoSql的核心要素!
RDMS: OLTP(online transaction process)设计,重事务和在线处理!
NoSQL: 移动互联网时代诞生的。注重性能!性能强!
Hive 基于 OLAP(online analitic process)设计,注重查询!

2.2 用户行为数据

是什么:

用于记录用户在使用平台APP时的各种操作,各种行为(启动,评论,收藏等)的数据!

产生:

户在使用APP时,产生!

如何存:

以日志文件的形式存储,其中以JSON格式记录!

为什么:

数据信息密集,价值低,记录周期长,结构复杂。

3.数据示例

3.1 日志数据实例

启动日志:

{ common:” xxx“start:”xxxx“,err:“xxx”,ts:"启动行为发生的时间戳"
}
{"common": {"ar": "370000","ba": "Honor","ch": "wandoujia","md": "Honor 20s","mid": "eQF5boERMJFOujcp","os": "Android 11.0","uid": "76","vc": "v2.1.134"},"start": {   "entry": "icon",         --icon手机图标  notice 通知   install 安装后启动"loading_time": 18803,  --启动加载时间"open_ad_id": 7,        --广告页ID"open_ad_ms": 3449,    -- 广告总共播放时间"open_ad_skip_ms": 1989   --  用户跳过广告时点},
"err":{                     --错误
"error_code": "1234",      --错误码"msg": "***********"       --错误信息
},"ts": 1585744304000
}
{"common":{"ar":"420000","ba":"iPhone","ch":"Appstore","md":"iPhone 8","mid":"mid_991","os":"iOS 13.3.1","uid":"418","vc":"v2.1.134"},"page":{"during_time":3336,"item":"3,7","item_type":"sku_ids","last_page_id":"trade","page_id":"payment"},"ts":1583769315209}

事件日志:

{
"common":{}
"actions":[]page:{},
err:{},
ts:xxx
}
{"common": {                  -- 公共信息"ar": "230000",              -- 地区编码"ba": "iPhone",              -- 手机品牌"ch": "Appstore",            -- 渠道"md": "iPhone 8",            -- 手机型号"mid": "YXfhjAYH6As2z9Iq", -- 设备id"os": "iOS 13.2.9",          -- 操作系统"uid": "485",                 -- 会员id"vc": "v2.1.134"             -- app版本号},
"actions": [                     --动作(事件)  {"action_id": "favor_add",   --动作id"item": "3",                   --目标id"item_type": "sku_id",       --目标类型"ts": 1585744376605           --动作时间戳}],"displays": [{"displayType": "query",        -- 曝光类型"item": "3",                     -- 曝光对象id"item_type": "sku_id",         -- 曝光对象类型"order": 1                        --出现顺序},{"displayType": "promotion","item": "6","item_type": "sku_id","order": 2},{"displayType": "promotion","item": "9","item_type": "sku_id","order": 3},{"displayType": "recommend","item": "6","item_type": "sku_id","order": 4},{"displayType": "query ","item": "6","item_type": "sku_id","order": 5}],"page": {                       --页面信息"during_time": 7648,        -- 持续时间毫秒"item": "3",                  -- 目标id"item_type": "sku_id",      -- 目标类型"last_page_id": "login",    -- 上页类型"page_id": "good_detail",   -- 页面ID"sourceType": "promotion"   -- 来源类型},
"err":{                     --错误
"error_code": "1234",      --错误码"msg": "***********"       --错误信息
},"ts": 1585744374423  --跳入时间戳
}
{"common":{"ar":"420000","ba":"iPhone","ch":"Appstore","md":"iPhone 8","mid":"mid_991","os":"iOS 13.3.1","uid":"418","vc":"v2.1.134"},"displays":[{"displayType":"promotion","item":"10","item_type":"sku_id","order":1},{"displayType":"query","item":"10","item_type":"sku_id","order":2},{"displayType":"query","item":"10","item_type":"sku_id","order":3},{"displayType":"promotion","item":"5","item_type":"sku_id","order":4},{"displayType":"query","item":"3","item_type":"sku_id","order":5},{"displayType":"query","item":"7","item_type":"sku_id","order":6},{"displayType":"query","item":"5","item_type":"sku_id","order":7},{"displayType":"recommend","item":"1","item_type":"sku_id","order":8},{"displayType":"query","item":"10","item_type":"sku_id","order":9},{"displayType":"query","item":"6","item_type":"sku_id","order":10}],"page":{"during_time":12161,"item":"2","item_type":"sku_id","last_page_id":"good_detail","page_id":"good_spec","sourceType":"query"},"ts":1583769287899}

日志数据的类型:

启动,曝光,动作,页面,错误!

业务数据要求:

①哪些表 23张表

②表的数据是怎么产生的?

③表是如何被更新的?会更新哪些字段?

④将表导入到HDFS上,使用的是什么策略?为什么?

4.采集平台

4.1 采集的方式

业务数据: 如何导?为什么这么导?

使用sqoop 将 mysql中的数据直接导入到HDFS。

why Sqoop?

  • 业务场景符合!
  • 批处理场景!
  • 开源免费,用户多,社区活跃!

熟悉每一张表的导入方式!

  • 每日全量: 导入表的全部数据
select  xxx  from  表
  • 每日增量(只导新增):
select  xxx  from  表  where (date_format(create_time,'%Y-%m-%d')='$do_date'
  • 每日新增和变化(只导当天新增和当天变化的数据):

select  xxx  from  表
where
(date_format(create_time,'%Y-%m-%d')='$do_date'
or
(date_format(operate_time,'%Y-%m-%d')='$do_date'

全量导和增量导的适用场景?

全量和增量只和数据量相关!
数据量小: 全量,增量
数据量大: 增量

如何区分哪些表的数据量小,哪些表数据量大?

表的性质分:

  • 维度表: 描述事实的一个维度!

省份表! 地区表!
用户表!
商品表!
商品分类表!
数据量有限!

事实表: 表中记录的数据是一个发生的事实! 3w(who when where) + 数量

下单,支付,评论
随着时间的推移,数据量不断增长!

事实表: 增量
维度表: 全量 、增量

日志数据:如何采集?
搭建两层flume的采集通道!哪两层?

1、日志服务器 --> kafka
2、kafka --> HDFS

4.2 flume和sqoop的区别?

sqoop:   使用场景单一!  RDMS和HDFS互相导!批处理!flume:   场景丰富,支持多种数据源,可以传输到多种目的地!流处理!

4.3 为什么要双层Flume?

 对接SparkStreaming实时分析,因此必须将数据先采集到Kafka!

优势:

①安全性和公司目前集群的规划设计考虑
②削峰  a)  第一层flume将数据写入到kafka,最终由第二层flume将数据采集到hdfs实现了将 N个 第一层的flume agent进程直接请求HDFS到由第二层 flume agent,统一请求,减少了在并发情况下,NN的请求负载!b) 将数据先写入kafka,由第二层flume从kafka中读取数据,kafka启到缓冲作用即使上游生产能力, 大于 第二层flume的消费能力,也不会丢失数据!
③分层解耦,方便维护

大数据项目之数据采集总结(三)相关推荐

  1. 客快物流大数据项目(一百零三):快递追踪需求介绍

    文章目录 快递追踪需求介绍 前言 背景介绍 设计方案 快递追踪需求介绍

  2. 大数据项目(三)————电商项目介绍(一)

    1.项目介绍 本项目主要用于互联网电商企业中,使用Spark技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为.购物行为.广告点击行为等)进行复杂的分析.用统计分析出来的数据,辅助公司中 ...

  3. 大数据项目之_15_电信客服分析平台_0102_项目背景+项目架构+项目实现+数据生产+数据采集/消费(存储)

    大数据项目之_15_电信客服分析平台_01&02 一.项目背景 二.项目架构 三.项目实现 3.1.数据生产 3.1.1.数据结构 3.1.2.编写代码 3.1.3.打包测试 3.2.数据采集 ...

  4. 大数据项目离线数仓(全 )一(数据采集平台)

    搭建用户行为数据采集平台.搭建业务数据采集平台.搭建数据仓库系统.制作可视化报表 本篇博客包括搭建用户行为数据采集平台.搭建业务数据采集平台 搭建数据仓库系统在大数据项目离线数仓(全 )二 制作可视化 ...

  5. 电商大数据项目-推荐系统实战之推荐算法(三)

    电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析 https://blog.51cto.com/6989066/2325073 电商大数据项目-推荐系统实战之推荐算法 https:/ ...

  6. 大数据项目实战——基于某招聘网站进行数据采集及数据分析(四)

    大数据项目实战 第四章 数据预处理 文章目录 大数据项目实战 学习目标 一.分析预处理数据 1)salary 2)city 3)skillLabels 4)companyLabelList.posit ...

  7. 31 大数据项目之电商数仓(用户行为数据采集)

    文章目录 第1章 大数据项目之电商数仓(用户行为数据采集) 第2章 项目需求 2.1 项目需求分析 2.2 项目框架 2.2.1 技术选型 2.2.2 系统架构图设计 2.2.3 系统数据流程设计 2 ...

  8. 助力工业物联网,工业大数据项目介绍及环境构建【一、二】

    文章目录 工业大数据项目介绍及环境构建 01:专栏目标 02:项目背景 03:项目需求 04:业务流程 05:技术选型 06:Docker的介绍 07:Docker的网络 08:Docker的使用 0 ...

  9. 大数据项目之电商数据仓库系统回顾

    文章目录 一.实训课题 二.实训目的 三.操作环境 四. 实训过程(实训内容及主要模块) 五.实训中用到的课程知识点 六.实训中遇到的问题及解决方法 1) 再次格式化NameNode导致无法启动dat ...

最新文章

  1. 国内首家!携程每周两天可在家“躺平”,76% 的员工主动报名
  2. android studio mac svn插件,mac下Android studio如何使用SVN进行版本控制?
  3. 来自极客标签10款最新设计素材-系列七
  4. 20220209-CTF MISC-BUUCTF-伪加密(ZIP文件块 十六进制分析)
  5. edge如何导入html文件收藏夹,edge浏览器收藏夹如何导入?edge浏览器收藏夹导入方法...
  6. sumo的简单应用_sumo快速运行简单仿真实例详细教程
  7. app运行租用服务器,app租用服务器
  8. python03_Python中的列表、元组、字典和集合
  9. android爬虫_进行Android Web爬虫改造
  10. TensorFlow中的通信机制——Rendezvous(二)gRPC传输
  11. Windows 下缺少依赖库问题解决
  12. fanuc系统md和mf区别_法兰克FANUC加工中心MF系统如何调取机床程序?
  13. iMeta | 南医大余光创组ggtree最新文章-系统发育树存储与可视化的数据结构
  14. IT民工系列 —— 前言
  15. 理解最大回撤及Python实现
  16. 5G LTE窄带物联网(NB-IoT)7
  17. iThenticate查重系统的使用及如何去除参考文献
  18. mysql 法语字符比较_法语词典哪种比较好?
  19. 【毕业设计/matlab系列】基于Matlab的立体视觉匹配算法实现【含Matlab源码】
  20. STM32L051xx的时钟配置

热门文章

  1. phpstorm 补丁方式 creak
  2. 量化交易中,如何使用Python画K线、成交量、买卖点【邢不行】
  3. C#中如何通过点击按钮切换窗口
  4. 单源最短路径(spfa,Dijkstra, bellman-ford)
  5. GAMMA预处理的StaMPS时序InSAR分析(以SBAS为例)
  6. 计算最大曝光时间保证图像不拖影
  7. 跟我一起学 React + dva + Mockjs(9 个视频)
  8. app如何添加广告位 uni_新手APP运营如何做广告位投放
  9. 关闭QQ2007迷你首页 还清净系统
  10. 痞子衡嵌入式:蓝牙芯片厂商三强(QualcommCSR, TI, Nordic)产品一览