实时数仓
文章平均质量分 71
实时数仓
宝哥大数据
大数据、机器学习、深度学习
展开
-
DWS 层-商品行为关键词
从商品主题获得,商品关键词与点击次数、订单次数、添加购物次数的统计表。原创 2021-03-23 20:53:35 · 231 阅读 · 0 评论 -
DWS 层-关键词主题表(FlinkSQL)
1.1、需求分析与思路 关键词主题这个主要是为了大屏展示中的字符云的展示效果,用于感性的让大屏观看者,感知目前的用户都更关心的那些商品和关键词。 关键词的展示也是一种维度聚合的结果,根据聚合的大小来决定关键词的大小。 关键词的第一重要来源的就是用户在搜索栏的搜索,另外就是从以商品为主题的统计中获取关键词。...原创 2021-03-23 20:52:06 · 530 阅读 · 1 评论 -
DWS 层-地区主题表(FlinkSQL)
地区主题主要是反映各个地区的销售情况。从业务逻辑上地区主题比起商品更加简单,业务逻辑也没有什么特别的就是做一次轻度聚合然后保存。原创 2021-03-23 20:49:20 · 422 阅读 · 0 评论 -
DWS 层-商品主题宽表的计算
与访客的 dws 层的宽表类似,也是把多个事实表的明细数据汇总起来组合成宽表1.1、需求分析与思路➢ 从 Kafka 主题中获得数据流➢ 把 Json 字符串数据流转换为统一数据对象的数据流➢ 把统一的数据结构流合并为一个流➢ 设定事件时间与水位线➢ 分组、开窗、聚合➢ 写入 ClickHouse...原创 2021-03-23 20:46:59 · 611 阅读 · 0 评论 -
DWS 层-访客主题宽表的计算
设计一张 DWS 层的表其实就两件事:维度和度量(事实数据)➢ 度量包括 PV、UV、跳出次数、进入页面数(session_count)、连续访问时长➢ 维度包括在分析中比较重要的几个字段:渠道、地区、版本、新老用户进行聚合1.1、需求分析与思路➢ 接收各个明细数据,变为数据流➢ 把数据流合并在一起,成为一个相同格式对象的数据流➢ 对合并的流进行聚合,聚合的时间窗口决定了数据的时效性➢ 把聚合结果写在数据库中...原创 2021-03-23 17:09:35 · 1320 阅读 · 1 评论 -
DWM层业务实现--支付宽表
一、需求分析与思路支付宽表的目的,最主要的原因是支付表没有到订单明细,支付金额没有细分到商品上,没有办法统计商品级的支付状况。所以本次宽表的核心就是要把支付表的信息与订单明细关联上。解决方案有两个➢ 一个是把订单明细表(或者宽表)输出到 Hbase 上,在支付宽表计算时查询 Hbase,这相当于把订单明细作为一种维度进行管理。➢ 一个是用流的方式接收订单明细,然后用双流 join 方式进行合并。因为订单与支付产生有一定的时差。所以必须用 intervalJoin 来管理流的状态时间,保证当支付到达原创 2021-03-16 08:15:25 · 323 阅读 · 1 评论 -
DWM层业务实现--订单宽表
1.1、需求分析与思路 订单是统计分析的重要的对象,围绕订单有很多的维度统计需求,比如用户、地区、商品、品类、品牌等等。 为了之后统计计算更加方便,减少大表之间的关联,所以在实时计算过程中将围绕订单的相关数据整合成为一张订单的宽表。那究竟哪些数据需要和订单整合在一起?...原创 2021-03-13 16:25:36 · 1047 阅读 · 0 评论 -
DWM 层-跳出明细计算
1.1、什么是跳出 跳出就是用户成功访问了网站的一个页面后就退出,不在继续访问网站的其它页面。而跳出率就是用跳出次数除以访问次数。 关注跳出率,可以看出引流过来的访客是否能很快的被吸引,渠道引流过来的用户之间的质量对比,对于应用优化前后跳出率的对比也能看出优化改进的成果。1.2、 计算跳出行为的思路 首先要识别哪些是跳出行为,要把这些跳出的访客最后一个访问的页面识别出来。那么要抓住几个特征:➢ 该页面是用户近期访问的第一个页面 这个可以通过该页面是否有上一个页面(last_page_id原创 2021-03-11 08:01:01 · 494 阅读 · 0 评论 -
DWM 层 -- 访客 UV 计算
一、需求分析与思路 UV,全称是 Unique Visitor,即独立访客,对于实时计算中,也可以称为 DAU(Daily Active User),即每日活跃用户,因为实时计算中的 uv 通常是指当日的访客数。 那么如何从用户行为日志中识别出当日的访客,那么有两点:➢ 其一,是识别出该访客打开的第一个页面,表示这个访客开始进入我们的应用➢ 其二,由于访客可以在一天中多次进入应用,所以我们要在一天的范围内进行去重...原创 2021-03-10 22:41:18 · 451 阅读 · 0 评论 -
DWS 层与 DWM 层的设计
1.1、设计思路 我们在之前通过分流等手段,把数据分拆成了独立的 kafka topic。那么接下来如何处理数据,就要思考一下我们到底要通过实时计算出哪些指标项。 因为实时计算与离线不同,实时计算的开发和运维成本都是非常高的,要结合实际情况考虑是否有必要象离线数仓一样,建一个大而全的中间层。 如果没有必要大而全,这时候就需要大体规划一下要实时计算出的指标需求了。把这些指标以主题宽表的形式输出就是我们的 DWS 层。1.2、需求梳理统计主题需求指标输出方式计算来源来源层级原创 2021-03-10 21:28:29 · 2320 阅读 · 1 评论 -
2.3、计算业务数据 DWD 层
2.3、计算业务数据 DWD 层2.3.1、准备业务数据 DWD 层 业务数据的变化,我们可以通过 Canal 采集到,但是 Canal 是把全部数据统一写入一个 Topic 中, 这些数据包括业务数据,也包含维度数据,这样显然不利于日后的数据处理,所以这个功能是从 Kafka 的业务数据 ODS 层读取数据,经过处理后,将维度数据保存到 Hbase,将事实数据写回 Kafka 作为业务数据的 DWD 层。...原创 2021-03-09 09:07:37 · 524 阅读 · 0 评论 -
计算用户行为日志 DWD 层
2.2、计算用户行为日志 DWD 层2.2.1、准备用户行为日志 DWD 层 前面采集的日志数据已经保存到 Kafka 中,作为日志数据的 ODS 层,从 kafka 的ODS 层读取的日志数据分为 3 类, 页面日志、启动日志和曝光日志。这三类数据虽然都是用户行为数据,但是有着完全不一样的数据结构,所以要拆分处理。将拆分后的不同的日志写回 Kafka 不同主题中,作为日志 DWD 层。 页面日志输出到主流,启动日志输出到启动侧输出流,曝光日志输出到曝光侧输出流2.2.2 主要任务➢ 识别新老原创 2021-03-09 08:21:23 · 736 阅读 · 0 评论 -
日志数据采集
一、日志数据采集1.1、模拟日志生成器的使用这里提供了一个模拟生成数据的 jar 包,可以将日志发送给某一个指定的端口,需要大数据程序员了解如何从指定端口接收数据并数据进行处理的流程。1.2、行为数据1.2.1、启动chb-logger1.2.2、在rt_applog启动模拟日志生成器,生成行为日志,通过chb-logger采集,写入 kafka[root@s205 rt_applog]# clear[root@s205 rt_applog]# pwd/home/chenb/chb-real原创 2021-03-08 22:18:34 · 1079 阅读 · 0 评论 -
数据采集层
一、电商实时数仓介绍1.1、普通实时计算与实时数仓比较 普通的实时计算优先考虑时效性,所以从数据源采集经过实时计算直接得到结果。如此做时效性更好,但是弊端是由于计算过程中的中间结果没有沉淀下来,所以当面对大量实时需求的时候,计算的复用性较差,开发成本随着需求增加直线上升。 实时数仓基于一定的数据仓库理念,对数据处理流程进行规划、分层,目的是提高数据的复用性。1.2 实时电商数仓,项目分为以下几层➢ ODS原始数据,日志和业务数据➢ DWD根据数据对象为单位进行分流,比如订单、页原创 2021-03-08 21:57:22 · 1902 阅读 · 0 评论 -
Flink实时仓库
一、数据采集层二、DWD层数据准备三、DWM层业务实现四、DWS层业务实现五、ClickHouse六、数据可视化接口实现原创 2021-03-08 21:03:40 · 687 阅读 · 0 评论 -
DWD层数据准备
一、需求分析及实现思路1.1、 分层需求分析 建设实时数仓的目的,主要是增加数据计算的复用性。每次新增加统计需求时,不至于从原始数据进行计算,而是从半成品继续加工而成。我们这里从 kafka 的 ods 层读取用户行为日志以及业务数据,并进行简单处理,写回到 kafka 作为 dwd 层。1.2、 每层的职能分层数据描述生成计算工具存储媒介ODS原始数据,日志和业务数据日志服务器,maxwell/canalkafkaDWD根据数据对象为单位进行分流,比如订单原创 2021-03-08 13:45:56 · 518 阅读 · 0 评论