自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Spark总结

spark包括Spark Core最基础,最核心的功能,Spark SQL操作结构化数据的组件机器学习算法库。

2023-08-24 13:36:37 109 1

原创 Hadoop总结

HDFS包括Yarn包括Hadoop1.x包括Hadoop2.x包括。

2023-08-22 12:05:28 133 1

原创 spark实时项目session模块代码

【代码】spark实时项目session模块代码。

2023-08-19 17:37:34 137

原创 Flume拦截器

Flume日志过滤工具类。

2023-06-01 11:43:48 101

原创 维度退化及其优缺点、维度建模与范式

规范化的第三范式模型主要应用于操作型过程中,因为对事务的更新与插入仅触及数据库的某几行。总结:当一个维度没有数据仓库需要的任何数据的时候就可以退化此维度,需要把退化的相关数据迁移到事实表中,然后删除退化的维度。退化维度没有对应的维表,但可以获取与之相关的事实。操作型事务控制号码,例如:订单号码,发票号码,提货单号码通常产生空的维度,经常保存为事实表中的退化维度。退化维度是没有对应维度表的维度键。维度退化可以这样理解:将维度表中的维度退化到事实表中。

2023-03-30 20:10:32 1352

原创 计算用户的平均次日、三日和七日留存率

用户平均三日留存率:第一天登录了,第三天也登录的用户(不需要三天连续登录,只需要在第一天和第三天都登陆的用户就是三日留存用户)用户平均七日留存率:第一天登录了,第七天也登录的用户(不需要七天连续登录,只需要在第一天和第七天都登陆的用户就是七日留存用户)用户平均次日留存率:第一天登录了,第二天也登录的用户。首先弄清楚用户平均次日、三日和七日留存率的概念。

2023-03-29 13:15:49 1620 1

原创 JZ23 链表中环的入口结点

快慢指针可以很容易判断一条链表是否存在环,快指针fast每次走两步,慢指针slow每次走一步,那么若进入环中,每次他们之间的相对距离都会-1,直到两者相遇。所以,我们把快指针移到头结点,一次走一步,让慢指针继续走,当两个指针再次相遇时所处的位置就是环的入口结点位置。假设从头结点到环入口结点的前一个结点有:a个。(n为快指针比慢指针多走过的圈数)fast指针走过的结点数为:f个。slow指针走过的结点数为:s个。两指针相遇时,慢指针已经走了。而走到入口结点,需要走。

2023-03-27 14:55:26 42

原创 UDF与UDTF

继承UDF类重写initialize()和evaluate()两个方法initialize()方法中主要进行输入数据的合法性判断(如果不进行判断的话可以不重写)因为前面存在服务器时间,不是一个规范的json字符串所以需要进行UDF重写。

2023-03-27 11:53:20 225

原创 shell编程总结

shell设计者已经设置好的可以直接使用的变量$$:当前进程的进程号(PID):后台运行的最后一个进程的进程号(PID):最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。

2023-03-26 14:09:10 66

原创 数仓面试题自我总结

通过数据分层管理可以简化数据清洗的过程,因为把原来一步的工作分到了多个步骤去完成,每一层的处理逻辑都相对简单和容易理解,从而达到解耦的目的,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,方便问题排查和追溯定位。那就多一层DWT层做汇总,多一层解耦,业务变化的时候,我们只改DWS层就好了,最多穿透到DWT层。可以在数仓通用分层架构上,增加一层DM层,也就是数据集市层,各个数据集市层,单独供数,甚至有单独的计算资源,这样可以避免因为计算任务代码混在一起、数据权限拆分等问题带来的数据变更成本。

2023-03-26 10:33:22 228

原创 关于“粒度”

数据量总是数据仓库中的首要问题,如果数据仓库的空间很有限的话,用高粒度级表示数据将比用低粒度级表示数据的效率要高得多。换句话说,在一个很低的粒度级上实际可以回答任何问题,但在高粒度级上,数据所能处理的问题的数量是有限的。粒度问题是设计数据仓库的一个重要方面,粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。细节程度越高,粒度级别就越低。确定数据粒度是数据仓库设计的基础,当数据粒度合理确定后,设计和实现的其他问题就会变得非常容易,相反,如果没有合理地确定粒度,后续的工作就会很难进行下去。

2023-03-25 15:12:58 359

原创 事实表与维度表

区别

2023-03-25 14:33:09 271

转载 对于粒度的理解

从技术实现的角度来看,如果查询的粒度,是一个变量,而不是一个固定值,没法提前计算,只能临时用明细表算,这就叫做即系查询。通过例子理解:某个活动发布后,要查看不同时间区间内的累积活跃用户数,比如1-2号,3-5号,以便及时调整促活的策略。与此同时,我们也要谨防 “捡到锤子,看什么都像钉子”,没有能解决所有问题的方法和工具,特定场景,选用特定的工具。本人愚笨,看书好久,都没明白粒度的真正含义,被真实业务需求痛扁一顿后,我才体会到粒度的真正含义。那这个时候,统计就要升粒度了,并且,要去重。

2023-03-23 20:55:17 770

转载 维度建模!

业务过程是通常表示的是业务执行的活动,与之相关的维度描述和每个业务过程事件关联的描述性环境。的业务线,比如下单业务,支付业务,退款业务,物流业务,一条业务线对应一张事实表。数据粒度指数据仓库的数据中保存数据的细化程度或综合程度的级别。事实表的设计完全依赖物理活动,不受最终报表的影响。粒度传递的是与事实表度量有关的细节级别。不同粒度的事实必须放在不同的事实表中。精确定义某个事实表的每一行表示什么。事实表通过外健关联与之相关的维度。健壮的维度集合来粉饰事实表。对事实表的粒度要达成共识。在业务系统中,挑选我们。

2023-03-23 20:22:26 571

转载 “维度”与“粒度”(转)

人们。

2023-03-23 20:11:28 482

原创 剑指offer:JZ6从尾到头打印链表(两种经典方法)

设置计数器,遍历链表得出链表结点个数,然后创建相同空间大小的数组。然后重新遍历链表,按从后往前的顺序将链表结点中的数据放入数组中,然后返回数组。输入一个链表的头节点(不带头结点),按链表从尾到头的顺序返回每个节点的值(用数组返回)。

2022-11-28 21:28:08 122 1

原创 剑指offer:JZ24反转链表(两种空间复杂度为O(1)的实现)

遍历找到最后一个结点和倒数第二个结点,然后把倒数第一个结点取出来当作头结点,倒数第二个结点的next指针指向NULL,然后从原链表的头结点开始遍历并以头插法插入到最后一个结点后面。给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。cur为当前需要操作的指针,pre为待返转链表中cur的前一个结点指针,next为待返转链表中cur的后一个结点指针。经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。

2022-11-28 21:06:45 271

空空如也

空空如也

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

TA关注的人

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