一、数据从哪里来-常见数据埋点采集方案介绍
- 什么是数据埋点
- 对网站、App、进行业务数据采集,包括用户行为数据及其他实际需要的数据进行采集上报
- 方便分析用户行为、提高用户体验,通过这些采集的数据就可以进行分析并辅助公司企业做决策
- 常见埋点方式
- 代码埋点
- 编写埋点代码,通过代码进行控制,前端、后端、App客户端代码,需要埋点的逻辑通过sdk函数调用,上报数据
- 可视化埋点
- 通用采集SDK,项目只需要引入埋点采集sdk。分析人员通过分析平台进行操作,对可交互的页面元素(如:图片、按钮、链接等)直接在界面上进行操作实现数据埋点,下发采集代码生效的埋点方式。
- 所见即所得,使用者只需在其可视化埋点页面上,点击想要监测的元素,编辑名字编号等,埋点就完成了
- 缺点
- 存在滞后性,每次调整埋点后需要应用重新发版才可以看到数据,也可以通过配置中心动态下发解决
- 相对生硬,满足不了全部数据采集,比如编码规范不统一、无法定位元素等,或者需要调用后台接口的数据等
- 比如看小滴课堂的一个视频,点击播放一个视频,交互行为就是一个播放,但播放的背后还想知道这个视频的名字、类别、作者、评级等信息就获取不了
- 全埋点|无埋点
- 对应用上的所有的可交互事件元素进行解析,对页面上所有的用户操作行为进行监听,当有操作行为(交互事件)发生时,监测工具会进行记录并上报
- 会记录全部用户行为事件并上报,采集量过大
- 缺点
- 满足不了全部数据采集,比如编码规范不统一、无法定位元素等,或者需要调用后台接口的数据等
- 比如看哔哩哔哩的一个视频,点击播放一个视频,交互行为就是一个播放,但播放的背后还想知道这个视频的名字、类别、作者、评级等信息就获取不了
- 满足不了全部数据采集,比如编码规范不统一、无法定位元素等,或者需要调用后台接口的数据等
- 代码埋点
二、埋点数据分类和短链平台-数据采集链路
- 日志采集分类
- 事件
- 曝光事件:1个item 或者1个页面被展示出来,就称作曝光
- 点击事件:点击某个页面、按钮
- 属性
- 打开 App 手机型号、网络制式、App版本信息 等公参信息
- 浏览器所属的客户端信息,用户网络ip、地理位置信息等
- 事件
- 埋点数据上报时机分两种
-
- 优点,批量上传,服务器接收数据压力小
- 缺点,数据有延迟方式一,在离开该页面时上传在这个页面产生的所有数据
- 方式二,每个事件动作数据产生后马上发送
- 优点,数据没延迟,实时看到数据
- 缺点,对服务器接压力比较大,请求频繁
-
- 短链平台采用方式
- 访问短链码
- 记录日志-打印控制台(方便排查)
- 发送Kafka(本身异步发送)
三、数据可视化整体链路
- 数据分层处理概述
数据分层 | 分层描述 | 数据生成计算工具 | 存储 |
---|---|---|---|
ODS | 原生数据,短链访问基本信息 | SpringBoot生成 | Kafka |
DWD | 对 ODS 层做数据清洗和规范化,新老访客标记等 | Flink | Kafka |
DWM | 对DWD数据进一步加工补齐数据,独立访客统计,操作系统/ip/城市,做宽表 | Flink | kafka |
DWS | 对DWM进行处理,多流合并,分组|聚合|开窗|统计,形成主题宽表 | Flink | ClickHouse |
ADS | 从ClickHouse中读取数据,根据需求进行筛选聚合,可视化展示 | ClickHouseSql | web可视化展示 |
- 命名规范
- ODS层命名为ods_表名|主题名
- DWD层命名为dwd_表名|主题名
- DWM层命名为dwm_表名|主题名
- DWS层命名为dws_表名|主题名
本文作者为DBC,转载请注明。