- 博客(11)
- 收藏
- 关注
原创 Mysql经典题
100 * SUM(CASE WHEN cid = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN cid = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数。SELECT MAX(t.tid) "教师ID",MAX(t.tName) "教师姓名",c.cid "课程ID", MAX(c.cname) "课程名称" ,AVG(sc.score) "平均成绩"
2024-07-13 11:04:10
188
原创 数仓之dim
雪花模型是对星型模型的扩展,它将星型模型的维表进一步层次化,原来的各个维表可能被扩展为小的事实表,形成一些局部的层次区域。系统地对维度进行快照(为每个ETL计划周期存储维度的完整副本,通常在不同的表分区中),作为处理缓慢变化的维度(SCD)的通用方法,是一种简单的通用方法,不需要太多的工程工作,并且与经典方法相比,在编写ETL和查询时很容易掌握。事实表作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量。
2024-07-13 10:56:56
95
原创 Flink滚动滑动窗口的区别
在一些场景中,可能需要统计最近一段时间内的指标,而结果的输出频率要求又很高,甚至要求实时更新,比如股票价格的 24 小时涨跌幅统计,或者基于一段时间内行为检测的异常报警。例如,我们定义一个长度为 1 小时、滑动步长为 5 分钟的滑动窗口,那么就会统计 1 小时内的数据,每 5 分钟统计一次。我们可以看到,当滑动步长小于窗口大小时,滑动窗口就会出现重叠,这时数据也可能会被同时分配到多个窗口中。表了窗口计算的频率。滑动的距离代表了下个窗口开始的时间间隔,而窗口大小是固定的,所以也就是两个窗口结束时间的间隔;
2024-07-13 10:48:30
272
原创 数仓维度建模
在设计DWS表的时候,很多人会把所有可以聚合的维度进行cube,这样就得到了很多个派生指标,而这些派生指标放在同一张表中无疑会增加这张表的使用难度,比如在实际的取数时,往往只关心某个统计粒度的指标。所以,评价模型的好坏与否,更多的是从使用者的角度出发,比如简单、易于取数、表的数量恰好。对于复杂的业务场景而言,会出现很多跨域、跨事实的交叉探查,如果没有沉淀出DWS层的指标进行统一口径的收口,那么相同的指标会出现不同的口径和命名,其后果就是取数变得越来越不方便,而且容易造成业务怀疑数据是否正确的尴尬局面。
2024-07-12 17:09:10
592
原创 zookeeper
控制时序,就是所有视图来获取这个锁的客户端,最终都是会被安排执行,只是有个全局时序了。在分布式环境中,相同的业务应用分布在不同的机器上,有些业务逻辑(例如一些耗时的计算,网络I/O处理),往往只需要让整个集群中的某一台机器进行执行,其余机器可以共享这个结果,这样可以大大减少重复劳动,提高性能,于是这个master选举便是这种场景下的碰到的主要问题。管理人员在控制台作的一些操作,实际上是修改了ZK上某些节点的状态,而ZK就把这些变化通知给他们注册Watcher的客户端,即推送系统,于是,作出相应的推送任务。
2024-07-11 17:06:50
323
原创 全量跟增量的区别
为保证统计结果的正确性,需要保证数据仓库中的数据与业务数据库是同步的,离线数仓的计算周期通常为天,所以数据同步周期也通常为天,即每天同步一次即可。业务数据是数据仓库的重要数据来源,我们需要每日定时从业务数据库中抽取数据,传输到数据仓库中,之后再对数据进行分析统计。例如某张表数据量较大,但是每天数据的变化比例很低,若对其采用每日全量同步,则会重复同步和存储大量相同的数据。全量同步,就是每天都将业务数据库中的全部数据同步一份到数据仓库,这是保证两侧数据同步的最简单的方式。数据的同步策略有全量同步和增量同步。
2024-07-04 11:58:12
135
原创 mysql连接idea
5、发现没有数据库,点击**1 of 7**,选择**All schemas**// SQL语句,使用我自己的test数据库下的 boss 表。右击加入的Jar包,选择**Add as Library(添加到库)**3、输入用户名和密码,点击**Test Connection**5、发现没有数据库,点击1 of 7,选择All schemas。2、点击加号,找到MySQL,添加数据库。2、点击加号,找到MySQL,添加数据库。4、显示连接成功,点击Apply,OK。4、显示连接成功,点击Apply,OK。
2024-07-02 20:57:17
380
1
原创 HDFS读写流程详细过程
在刷写之前,如果NameNode节点宕机了,那么内存中的Edit文件也会丢失,此时可能会造成数据的损失。NameNode的每次启动都会将Fsimage文件读入内存,加载Edits文件里边的更新操作,保证内存中的数据是最新的,同步的,可以看成NameNode启动的时候就将Fsimage和Edits文件合并了。思考:Fsimage为磁盘文件,当在内存中的元数据更新时,如果同时更新FsImage,就会导致效率过低,但如果不更新,就会发生一致性问题,一旦NameNode节点断电,就会产生数据丢失。
2024-07-02 20:49:54
461
原创 mapreduce
MapTask在收到请求之后,根据参数(分区号)来解析file.out.index文件,从中获取指定分区的位置,然后才会读取file.out,将对应分区的数据返回。merge的时候,默认情况下,是每10个(可以通过属性mapreduce.task.io.sort.factor来调节)小文件合并成1个大文件,通过多次合并,最后会产生一个结果文件file.out。需要注意的是,数据在排序的时候,是按照分区内进行的排序,即先按照分区大小进行分区号的升序,然后每一个分区内按照指定规则排序。因此,数据是分区内有序。
2024-07-02 20:43:48
427
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人