自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDFS设计简要

双缓存:namenode保存元数据时除了在内存中维持一份元数据,还要往磁盘写一份editlog,为了支持高并发,使用双缓存设计对写磁盘进行了优化,直接写磁盘比较耗时,namenode不是直接往磁盘写元数据,而是开了两个内存块,原因:editlog双缓存的两块内存大小被写死为512k,如果遇到高并发请求,写满第一块内存的时间比第二块内存溢写磁盘的时间短,那么namenode主线程会wait,导致不可提供服务。往第一个里面写元数据,达到一定条件后,两个内存块进行内存交换,然后从第二块内存写到磁盘。

2024-09-21 09:51:15 196

原创 实时数仓在广告业务的应用

那么现在数据都已经在kafka中,在kafka和druid之间是流式处理引擎FLink,flink程序做的主要是对日志数据和业务数据进行清洗和维度关联,并没有做聚合操作,维度数据在redis中维护了一份,flink程序在关联维度时会去redis读取数据。至此,在druid中形成了十几张宽表,代表了整个广告投放过程各个环节的业务,包括订单,投放,sspb曝光,adx竞价,dsp曝光,dsp点击,用户留资等表。2.由于数据每日TB级的增长,只能保存近30天的数据,无法保存更多的历史数据。

2024-09-10 19:37:59 245

原创 flink维度关联实现方式

【代码】flink维度关联实现方式。

2024-09-08 11:03:40 79

原创 flink端到端一致性保证

这个完整应用的一致性,就叫做“端到端(end-to-end)的状态一致性”,它取决于三个组件中最弱的那一环。对于这样的数据源,故障后我们即使通过检查点恢复之前的状态,可保存检查点之后到发生故障期间的数据已经不能重发了,这就会导致数据丢失。我们知道,对于Flink内部来说,检查点机制可以保证故障恢复后数据不丢(在能够重放的前提下),并且只处理一次,所以已经可以做到exactly-once的一致性语义了。有了Flink的检查点机制,以及可重放数据的外部数据源,我们已经能做到at-least-once了。

2024-09-05 16:54:49 592

原创 spark备忘

如何理解这几个描述?缓存有可能丢失,比如内存不足而被删除,RDD有缓存丢失容错,通过linage重新计算丢失的数据,由于各个partition是相互独立的,只需重新计算丢失的partition即可。可通过RDD的cahe()和persist()方法,将前面的计算结果缓存,默认缓存在JVM堆内存,注意:触发action计算时才会进行缓存在计算节点的内存,供后面重用。不可变:RDD封装了计算逻辑,是不可以改变的,想要改变,只能产生新的RDD,在新的RDD里面封装计算逻辑。1.存储的弹性:内存与磁盘的自动切换;

2024-09-05 11:23:52 342

原创 Doris简介

动态分区:手动创建分区太麻烦,因此提供了自动创建分区的方式,称为动态分区,FE会启动一个后台线程,根据用户指定的规则创建或删除分区。Doris借助MySQL协议,用户使用任意MySQL的ODBC/JDBC以及MySQL的客户端,都可以直接访问Doris。物化视图是将预先计算(根据定义好的 SELECT 语句)好的数据集,存储在 Doris 中的一个特殊的表。ROLLUP 表的基本作用,在于在 Base 表的基础上,获得更粗粒度的聚合数据,提升查询性能。1.架构简单,易于运维,扩容和缩容方便。

2024-09-03 21:28:36 251

原创 flink sql的分组聚合

TUMBLE(TABLE 表名, DESCRIPTOR(时间字段), INTERVAL ‘10’ MINUTES))将需要分组的字段放在group by子句即可,把时间字段放在group by下可实现开窗的功能。滚动:SELECT window_start, window_end, SUM(price)滑动:SELECT window_start, window_end, SUM(price)滑动窗口:HOP(time_attr, interval, interval)第四种,GROUP BY CUBE。

2024-09-03 20:46:23 745

原创 flink sql的几种jion

在特定的场景下使用,当主流数据需要关联维度数据时,维度数据一般数据量较少且基本不发生变化的情况下,可以将维度数据存储在一个外部数据库系统,比如hbase,两个流的数据因为需要关联,flink会把两个流的数据保存到状态中,默认状态永久有效,应该给状态设置过期时间,防止无限增长。left join:左边来数据就会输出,如果关联不上右表的数据会用null补充,当右边能关联上的数据到来时会再次进行关联,支持 join ,left join ,right join, full join。full join 也类似。

2024-08-30 16:50:45 238

原创 数仓建模-维度模型

业务过程可以理解为一个不可拆分的行为事件,事实表则围绕这个行为事件来设计,包括事件发生时的环境状态(即维度,可通过外健关联维度表),以及事件过程中的一些度量(用于统计分析)。维度表的设计有规范化和反规范化的区分。也称为雪花模型和星型模型,数据仓库一般选择反规范化的星型模型,无需遵循三范式,事实表进行关联时更方便,便于数仓的统计分析。事实指的是业务发生的过程,维度是业务发生时的环境状态。在数据仓库的建模方法论中,ER模型并不是很适合,因为不便于统计分析,更适合的是维度模型,是专门为统计分析而设计的建模方法。

2024-08-29 16:20:30 140

原创 数据建模-ER模型简述

比如:id name course score就不符合规范,应该将course 和score单独存表。第一范式:字段的属性不可再拆分,比如“江苏省南京市”这样的字段就不符合规范,应该拆分为省份和城市。遵循三范式的好处是,可以减少数据冗余和增强数据一致性。ER模型是数据建模的基本方法,以企业的业务为核心出发点,建立实体关系模型。企业的数据一般存在数据库中,数据建模其实就是如何建表来保存管理数据。ER模型,在数据仓库建模的过程中,一般遵循三范式。数据建模是如何存储和管理一个系统的数据的方法论,

2024-08-29 13:08:16 114

原创 flink状态概念

flink的状态:即flink算子任务的状态,所谓状态其实是flink程序维护的一些变量,用来存放算子任务的中间结果,有多种类型的状态用来存放不同数据结构的中间结果。当用户需要保存中间结果时,可以定义相应的状态来保存,由此可见状态的两个作用,一是保存程序的中间结果,二是状态可以持久化,用于程序挂掉时恢复计算,无需从头计算。那么状态的存储,访问和维护都是怎么做到的呢,flink提供了一种可插拔的组件来实现,叫做状态后端,主要负责管理本地状态的存储方式。Map State:可以方便的保存kv类型的数据。

2024-08-28 18:06:30 163

原创 flink checkpoint流程-如何保证flink框架内部精准一次

@TOCflink checkpointcheckpoint:将算子的状态数据持久化。1 jobmanager 调度器定时向taskmanager发送checkpoint指令,taskmanager在source中发出一条barrier数据,并将此时的offset进行checkpoint。2 barrier向下游任务传递,接收到barrier之后,任务将进行checkpoint,直到所有任务完成checkpoint,一次完整的checkpoint就算完成了。3 这样可以保证barrier之前的数据走完所

2024-08-28 13:12:50 275

空空如也

空空如也

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

TA关注的人

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