一般JobManager给2-5G,TaskManager给4-8G,平均并行度为3-8,普遍为4。
避免重复计算
0.10版本之后重点
任务重启策略(固定延迟重启、故障率重启)
CheckPoint机制,从最近一次CK时间恢复任务
状态大小时间不一样,正常重启都在几秒钟时间
JobManager周期性的从Source生成barrier数据,从上游往下游传递,当多并行度时下游需要等待上游barrier到达一致时才触发计算。
Reciver
Direct(主要使用方式)
一般指消费Kafka数据,手动维护偏移量,数据写入段的幂等性\事物性支持,如果都不支持可以将offset和数据写入同一位置,要么全都成功要么全部失败。
生产事故,恢复重跑数据
20mb/s左右
单分区
Flink的WaterMark在某些场景可以处理
row_number()
rank()
dense_rank()
first_value()
last_value()
lag()
lead()
分区:分目录
分桶:分文件
ods | stg贴源层,数据只压缩不处理 |
---|---|
dwd | 数据清洗、退化维表、数据加密、维度建模 |
dwm | 宽表化、合并品牌、数据粒度和DWD保持一致 |
dim | 维度退化(多层级退化一层级、冗余到事实表)、每日全量、全量表(无分区)、缓慢变化维、拉链表 |
dws | 不同维度组合对度量进行聚合(当天某品牌销量),一般以日为单位聚合 |
ads | 供报表使用,跨主题域跨数据域聚合度量值,宽表化 |
ODS接入了四百多张表
数据域调研
主题域划分
确定业务过程和维度构建总线矩阵
确定数据粒度
确认度量值
DWD\DWM\DWS构建模型
ADS跨主题域跨数据域聚合度量值
在Scala中,类和对象可以共享同一个名称。当一个对象与一个类共享一个名称时,它被称为伴生对象,而该类被称为伴生类。 伴生对象是与另一个类或特征共享相同名称和源文件的对象,它们的主要设计初衷是为了替代Java中的静态方法和静态变量。伴生对象可以访问其对应的伴生类的私有成员,反之亦然。伴生对象可以为伴生类增加静态成员,并且伴生对象中定义的apply方法可以不使用new新建实例。
在同一个Scala文件中定义一个类,同时定义一个同名的object,就可以创建一个伴生类和伴生对象的关系,它们可以互相直接访问私有的field。伴生类中可以在域中直接使用“类名.方法”的方式调用伴生对象中的方法,而在main方法中,使用伴生类直接建立一个实例时,属性和方法只能是class域中的;使用伴生对象提供的实例时,属性和方法只能是object域中的。
伴生对象可以看作是Java中的静态部分,定义的是类中静态属性。在Scala中,没有static关键字,所以如果想实现static的效果,可以使用伴生对象。 例如,在伴生对象中定义apply方法,就可以通过伴生对象的方式进行创建对象,而不是使用new的方式。
上一篇:合并券商某分,卷!