1.Flink的四大基石包含哪些?

  1. 土哥、大数据技术交流(4群)-云落CD和周苏超:

    四大基石包含 time,window,checkpoint,state。 watermark是基于事件时间的时间语义处理的,time包含watermark

2.大数据技术交流(2群)-LCQ 朋友提供的图片
14915415-0e81-48e2-86a4-9f0141ddb98a.jpg![518c8e745d4e0fdeb19065f1a1e54ce5
.jpg](https://cdn.nlark.com/yuque/0/2022/jpeg/12575048/1645109608597-9959da6a-f302-4b28-ba30-99134a1968b6.jpeg#clientId=u4c30818a-962b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=252&id=ud134cfea&margin=%5Bobject%20Object%5D&name=518c8e745d4e0fdeb19065f1a1e54ce5_.jpg&originHeight=416&originWidth=800&originalType=binary&ratio=1&rotation=0&showTitle=false&size=28466&status=done&style=none&taskId=ubed35871-6612-412b-87a6-072093c7b81&title=&width=484)
https://mp.weixin.qq.com/s/7yNV8S-Sfztw89ucmZtOqQ

2. Window窗口包含哪几种?

  1. 土哥的、大数据技术交流(4群)-云落CD :

    window 窗口包含 滚动窗口,滑动窗口,会话窗口 根据time划分:time-tumbling-window , time-sliding-window 根据count 划分包含count-tumbling-windowcount-sliding-window

https://mp.weixin.qq.com/s/Vf-wU2wcrMmsTz13lsTWwg

3. Flink如何实现exactly-once语义?

  1. 土哥、王了个博、大数据技术交流(4群)-云落CD:

    source: 支持可回放。使用执行ExactlyOnce的数据源,比如kafka等内部使用KafakConsumer(flink1.14版本 kafka连接器使用 kafkaSource,kafkaSink,废除掉原先的FlinkKafkaConsunmer等),并开启CheckPoint,偏移量会保存到StateBackend中,并且默认会将偏移量写入到topic中去,即_consumer_offsets Flink设置CheckepointingModel.EXACTLY_ONCE,checkpiont下发机制保证处理过程中的一致性 sink: 1.存储系统支持覆盖也即幂等性:如Redis,Hbase,ES等; 2.存储系统不支持覆:需要支持事务(预写式日志或者两阶段提交),两阶段提交可参考Flink集成的kafka sink的实现。

https://mp.weixin.qq.com/s/6Ox7lEQivwG9IuVAbWZT6A

2022-02-18 Flink 系列

1 Flink 调度策略有哪些?

以下答案由土哥贡献:
Flink 1.14 版本以前 决定 task 的调度策略有两种,region / legacy配置参数jobmanager.scheduler.scheduling-strategy:region/legacy。

  1. region(PIPELINED_REGION_SCHEDULING):管道区域调度,默认调度策略。实现类PipelinedRegionSchedulingStrategy。
  2. legacy(LEGACY_SCHEDULING):传统调度。实现类有两个:EagerSchedulingStrategy主要用于流场景,立即调度所有task; LazyFromSourcesSchedulingStrategy主要用于批作业,下游task只在输入数据准备完毕才开始调度。

在 1.14.0 版本后,默认只有一种调度策略,即 Region 调度策略。在 Flink 中,region 是任务调度和 Failover 的基本单位。在调度的过程中,同一 region 内的所有 Task 节点都会被同时调度,而整个拓扑中所有 region 会按照拓扑顺序逐一进行调度。
同时,Flink 的调度层面有两种 region:

  • 逻辑层面的 Logical Pipelined Region;
  • 执行调度层面的 Scheduling Pipelined Region。

逻辑 region 由逻辑拓扑 (JobGraph) 中的节点 JobVertex 构成,而执行 region 则由执行拓扑 (ExecutionGraph) 中的节点 ExecutionVertex 构成。类似于 ExecutionVertex 基于 JobVertex 计算产生,执行 region 是由逻辑 region 计算得到的。

2 Flink 分发模式有几种?

以下答案由土哥、🙃 ɹǝ nᴉx贡献:
分发模式 (Distribution Pattern) 描述了上游节点与下游节点连接的方式。上游节点计算的结果会按照连边分发到下游节点。目前 Flink 中有两种分发模式:点对点 (Pointwise) 和全连接 (All-to-all)。全连接:优化前时间复杂度为O(n2),全连接:优化后 时间复杂度为:O(n);点对点:时间复杂度O(n)。
今日话题:【2022-02-16 Flink 系列】 - 图2

3 Flink 节点间数据交换类型有几种?

以下答案由土哥贡献:
目前 Flink 中节点间有两种数据交换类型:pipelined 和 blocking。

  1. 对于 blocking 的数据交换方式,结果分区会在上游全部计算完成后再交由下游进行消费,数据会持久化到本地,支持多次消费。
  2. 对于 pipelined 数据交换,上游结果分区的产出和下游任务节点的消费是同时进行的,所有数据不会被持久化且只能读取一次。

4 以上答案都在下文中可以找到

微信公众号-Flink1.14 版本作业调度性能优化 68倍!!!(强烈推荐)

2022-02-21 数仓 系列

1. 数据仓库是如何分层的并且每层都承担什么作用。

大数据技术交流(1群)讨论(年年平安、夜里的那条路、吉西岛等):

  1. 可以分为四层:

ods:原始数据层,db数据,log数据
dwd:数据明细层 和 dim:维度层
dm/dws:数据宽表
app:这层基本上很少用到了

  1. 可以分为三层:

ods:贴源层 大家都一样
dw:报表数据,log数据,部分产品表数据
dm:集市层根据业务划分提供给不同的业务系统
大数据技术交流(2群)讨论(绝域时空、才不是天下第一大笨蛋、啊呀丶卖枸杞的张三皮、苏家小草、张家锋等):

  1. 可以分为五层:

ODS: 原始层
DWD: 标准明细层
DWS: 主题明细
DWT: 主题汇总
DWM: 业务集市针对部门提供数据
大数据技术交流(4群)讨论(噼里、八华幸❗、云落CD、natural等):

  1. 可以分为六层:

ODS: 原始层
DWD: 明细数据层,对ODS进行数据清洗
DIM:维度层,保存维度数据
DWS: 服务数据层,按天进行数据汇总
DWT: 数据主题层,对数据进行累计汇总
ADS: 数据应用层,为统计报表提供数据

  1. 可以分为六层:

ODS(原始数据层)
DWD(明细数据层)
DWS(轻度汇总层)
DM(数据集市层)
ADS(数据应用层)
DIM(维度表)

  1. 可以分为六层:

ods 、dwd、eds、app、 dw、bi

  1. 数仓分层没有严格标准,根据业务情况进行适当分层,完成维度建模,之后重点设计ETL架构,否则后期运行起来,天天报数据更新不及时。

大数据技术交流(5群)讨论(浮生 等):
传统三层 ods dw dm,后面根据业务和需求可以继续细化。
DW也可以继续分 总的来说 我的理解中 dw就是就去清洗和转化 建立了标准数据的层 也可以说是维度建模体现的层 DM就根据主题域进行划分,简单理解就是数据可直接拿来用的那一层。
FLINK群 讨论(特略、谢帮桂、吴杰、皓、学不动了、blue、blueblueblue 等):

  1. 不分层
  2. 分四层:源表-明细-汇总-输出

    2.数据仓库为什么要分层。

    大数据技术交流(4群)讨论(噼里、八华幸❗、云落CD、natural等):

  3. 解耦,以空间换时间

  4. 把复杂的问题简单化
  5. 减少重复开发
  6. 隔离原始数据

大数据技术交流(5群)讨论(浮生 等):
不同的分层只是表达上不一样没必要为了分层而分层 , 主要是为了能解决ETL中各类问题。

3.Lambda架构和Kappa架构的对比。

大数据技术交流(4群)讨论(云落CD)
Lamdba架构
是批流混合,历史按批处理,实时一套流处理,批处理做流处理的校验,总的数据以批处理(T-1)+流处理(当日)的为统计窗口;当有更新时,需维护两套代码。
Kappa架构
只有一套流处理,维护一套代码即可,需要考虑重算的场景。

4.土哥公众号相关链接

实时数仓之 Kappa 架构与 Lambda 架构(建议收藏!)

2022-02-23 Kafka 系列

1.kafka 如何实现消息的有序的?

由大数据交流1群谢帮桂和5群y提供:

kafka的顺序读写特性每条消息自带offset偏移量来保证消息有序性,在单一分区中可以保证一条消息被有序消费,多分区全局下无法保证有序消费。

2.kafka 如何做到高吞吐量和性能的?

由大数据交流1群谢帮桂和5群y提供:

(1)Kafka本身就是分布式集群,且多分区存储提高了并发能力 (2)Kafka在读数据时采用了稀疏索引加快了定位数据的速度 (3)Kafka在写数据的数据采用了顺序写磁盘,最快可以达到600M/s (4)Kafka采用了页缓存 + 零拷贝技术 加快了读写性能 (5)高效的NIO通讯机制

3.土哥公众号相关链接

干货总结!Kafka 面试大全(万字长文,37 张图,28 个知识点)