自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(15)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 数仓工具—Hive语法之collect_set 和 collect_list(17)

collect_set 和 collect_list今天我们介绍两个函数 collect_sets 和 collect_list,其实看到这两个函数的名字你也能猜个七七八八了,我们都知道如果我们在使用聚合函数的时候,或者分组汇总的时候,我们算出来的都是具体的指标,例如求和、计数什么的,举个例子,假设 我们有一张表student(stu_id int,class_id int),一般情况下我们都是统计这个每个班级有多少学生,那这个SQL 很简单select class_id,count(stu_id)

2021-06-30 21:48:57 62668 3

原创 数仓工具—Hive实战之UDF外部依赖文件找不到(14)

关于外部依赖文件找不到的问题其实我在上一篇的总结中也说过了你需要确定的上传的db 文件在那里,也就是你在hive 中调用add file之后 会出现添加后的文件路径或者使用list 命令来看一下今天我们不讨论这个问题我们讨论另外一个问题,外部依赖的问题,当然这个问题的引入本来就很有意思,其实是一个很简单的事情。为什么要使用外部依赖重点强调一下我们的外部依赖并不是单单指的是jar包依赖,我们的程序或者是UDF 依赖的一切外部文件都可以算作是外部依赖。使用外部依赖的的原因是我们的程序可能需要一些外部

2021-06-28 11:42:09 59914

原创 数仓工具—Hive实战之full join 经典案例(13)

full join 经典案例full join 增量数据同步更新我们知道我们的数仓数据很大一部分是来自业务数据库的,那么这个时候我们数据同步的方式有两种一种是增量同步一种是全量同步,那么这个时候我们增量同步进来的数据是要和我们的历史数据进行合并的,这个时候我们就可以使用full join ,因为我们同步过来的的增量数据不止有新增的数据还有修改的数据,这里我们不考虑拉链表,只存放当前最新的状态假设我们将每天同步过来的数据存放在ods_user_inc 表里面create table ods_user_

2021-06-27 09:53:20 61725 2

原创 数仓工具—Hive实战之日活跃周活跃月活(12)

日活跃周活跃月活日活的定义非常简单,就是今日活跃的用户数,因为定义很简答,所以逻辑很简单,因此它的计算也非常简单。虽然简单,但是它却是我们的业务上非常重要的一个计算指标日活会受到很多因素的影响,产品迭代,运营活动,推广的变化等等都会影响到日活。当然这些因素中,有的影响较小,有的暂时无法预估。因此在预测的过程中,我们可以将一些影响不大的因素,剔除出去,从而简化得到一个可计算的状态。(这个简化到可计算的过程中,其实就叫数学建模。)日活含义影响日活的因素中,最本质的其实是两个,一个是每日新增用户数,一个是

2021-06-25 16:19:35 60894 6

原创 数仓工具—Hive实战之自关联经典案例(11)

自关联经典案例其实说到关联我相信很多人都知道,自关联其实是关联的一种,其实我们最常见的是两张不同的表之间的关联,但其实工作中我们能看到的其实还有一种关联,那就是一张表与它自己关联。下面我们就通过几个案例感受一下,自关联的魅力与使用场景。自关联计算累计值关于累计值的计算其实也是一个比较常见的计算类型,我们更加熟悉的是直接使用窗口函数进行计算,这里我们使用自关联来计算一下day open_cnt click_cnt+----+---------+--------+2021-06-10 100 50

2021-06-24 17:58:42 60280

原创 数仓建模—宽表的设计

宽表的设计其实宽表是数仓里面非常重要的一块,前面我们介绍过了维度表事实表,今天我们介绍一下宽表,前面我们说过了数仓是分层的,这是技术进步和时代变化相结合的产物,数仓的分层式为了更好地管理数仓以及更加高效地进行数据开发。宽表主要出现在dwd 层和报表层,当然有的人说dws 层也有,宽表,从字面意义上讲就是字段比较多的数据库表,通常情况下是将很多相关的数据包括维度表、实时、已有的指标或者是dws/dwd 表关联在一起形成的一张数据表。由于把不同的内容都放在同一张表存储,宽表已经不符合范式设计的模型设计规范

2021-06-24 15:39:05 63905 2

原创 数仓工具—各种join的经典应用(9)

1. 自关联计算累计值2. 自关联计算转介绍3. 自关联计算连续增长4. 自关联计算最大在线人数5. full join 增量数据同步更新6. left join 实现拉链表

2021-06-23 17:26:14 59664 1

原创 数仓工具—Hive实战之留存分析(8)

留存分析开始之前我们先说一下为什么要进行留存分析,留存分析可以反映一个应用的潜力或者是健康程度,为什么这么说呢,如果说一个应用的留存很低的话,那说明用户来了一次就不来了,我们举个例子如果一家公司每天的新增还可以,但是如果用户的留存很低的话,那么其实说明了一件事,那就是用户可能都是用钱砸出来的,例如广告或者是引流,然后用户注册之后对应用并不感兴趣或者是应用做的很差,用不不满意然后就不来了,当然还有一种可能就是数据都是假的,我以前也经历过这样的公司,每天新增用户三万左右,用户留存很差然后就果断走了,前后呆了不

2021-06-23 09:59:35 59742 2

原创 数仓工具—Hive实战之累计计算(7)

累计计算对于数仓而言,我们一般都是增量计算,增量数据同步、增量数据计算,然后我们产出每天的指标,大多数情况下都是这样的,但是我们也有很多的指标需要把过去的数据和当前的数据进行累计,从而产出计算结果。接下来我们分析一下常用的累计计算,然后关注一下如何去从中抽出一个通用的计算模型数据准备/需求分析day open_cnt click_cnt+----+---------+--------+2021-06-10 100 502021-06-11 120 602021-06-12 150 50这

2021-06-23 09:54:13 59968

原创 运营数据分析模型—漏斗分析

漏斗分析可以很好的量化我们各个环节的用户流转和转化的情况漏斗分析的关键是提取出用户路径。

2021-06-22 15:48:04 61493

原创 数仓工具—Hive实战之最大连续登陆(5)

用户最大连续登陆说到最大连续登陆我们觉得可能有点奇怪,这名字怎么那么别扭,但是说到连续登陆就不那么别扭了,因为连续登陆其实是可以反应我们的用户粘性的,例如一个月中用户的连续登陆时间是30天,说明了用户每天都登陆的我们的英语,所以连续登陆也是我们数仓中经常计算的一个指标。接下来我们说一下什么叫最大连续登陆,其实前面举了一个例子一个月连续登陆了30天,其实的情况是比较少的,除非你是国民级应用微信或者是其他软件,否则很难有一个月30天的连续登陆,那这个时候用户的登陆可能是短短续续的,例如一个月可能有多次连续登

2021-06-22 15:43:37 61646 2

原创 数仓工具—Hive实战之会话分析(4)

户行为记录session分割其实这个计算方法主要用在我们计算用户在我们的网站上或者应用上的停留时间,或者是计算用户在某一个页面上的停留时间,其实在前面学习Hive语法之窗口函数lead和lag 窗口函数的时候我们也介绍过如何计算用户在某一个页面上的停留时间,就是通过用户进入下一个页面的时间减去用户进入当前页面的时间即可,因为我们前面主要讲的是窗口函数的应用,所以就没有考虑这样计算到底合适吗这个问题,今天我们就来看一下这个问题session 分割的背景我们先看一下为什么要进行session 分割,假设我

2021-06-20 22:23:38 61950 2

原创 数仓工具—Hive实战之拉链表(3)

拉链表初识需要查看历史某一时间节点的状态,同时考虑到存储空间;或则适用于数据会发生变化,但是大部分是不变的在数据仓库的数据模型设计过程中,经常会遇到下面这种表的设计:有一些表的数据量很大,比如一张用户表,大约10亿条记录,50个字段,这种表,即使使用ORC压缩,单张表的存储也会超过100G,在HDFS使用双备份或者三备份的话就更大一些。表中的部分字段会被update更新操作,如用户联系方式,产品的描述信息,订单的状态等等。需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史

2021-06-20 17:22:16 61313 3

原创 Java多线程系列—final的各种用法与意义(07)

finalfinal 是 Java 中的一个关键字,简而言之,final 的作用意味着“这是无法改变的”。不过由于 final 关键字一共有三种用法,它可以用来修饰变量、方法或者类,而且在修饰不同的地方时,效果、含义和侧重点也会有所不同,所以我们需要把这三种情况分开介绍。final 修饰变量关键字 final 修饰变量的作用是很明确的,那就是意味着这个变量一旦被赋值就不能被修改了,也就是说只能被赋值一次,直到天涯海角也不会“变心”。如果我们尝试对一个已经赋值过 final 的变量再次赋值,就会报编译

2021-06-16 18:20:39 61567 1

原创 比起结果过程更加重要

忽然想写点关于生活的什么了,但是又不知写那一方面,也不知道从何处下笔,也没有华丽的开头,但是这并不妨碍我抒发自己的感情,今天又是平平常常的一天,看书吃饭散步,要是真的平平常常也就不会想写点什么了,其实你会发现很多有所感叹多数是与时间有关的,例如时光易逝韶华不再,其实这也正常如果把我们每个人的一生放在浩瀚的宇宙中,人的一生太短暂了,可能还不如大山上的一只蚂蚁,目前人类探知的最遥远的星,距离地球已达150亿光年,也就是说人类观测到此光已是150亿年前的事情了,所以如果可以的话我希望能多射出几束光,让它在宇宙中自

2021-06-14 12:28:34 61058

数据仓库理论与实战(适用于从事数仓方向的小伙伴)

数据仓库理论与实战(适用于从事数仓方向的小伙伴)

2022-02-15

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除