粉丝124获赞389

大家好,我是重庆邮电大学的雷大江老师,今天呢我带大家学习弗林克牛皮一体分布式呢实时处理引擎。 学完本章的内容之后呢,你将能够呢掌握了如下一些的知识点,首先呢是掌握了弗林克的核心技术,集齐了架构,其实呢是掌握弗林克的时间以及窗口机制。最后呢是弗林克的容错机制。 接下来呢,我们对弗林克的原理进行价格呢进行介绍。首先呢对弗林克呢进行简单的介绍,弗林克呢是一种呢分布式高性能的呢牛处理了引擎, 他不光能够的提供了高吞吐量以及高并发的了有处理的计算,他还提供的一这个的官司予以的实施计算, 他还能够来提供的批量数据处理,也就是了批处理的计算。那福宁可呢,与市面上的其他处理引擎,比如说是 buck, 他最大的区别呢,他是呢可以同时 支持了牛批一体了计算,并且了弗林克他是一种的有状态的牛处理了计算方式斯巴克了并非是一种的纯粹的牛计算呢引擎,他是用的批处理了来磨 你了牛计算,而弗林克呢,完全相反,他是一种呢纯粹的牛计算引擎他是拘留的方式呢来模拟呢批处理计算。我们呢需要给大家提一提的是,弗林克他是一种呢就是 真正的实时级别的呢,由处理计算以前他可以达到了好秒机的响应,而十八克呢,只是一种呢准时时的,一般的难以达到好秒机的响应。 接下来呢给大家介绍了弗林克中的最重要的了四种的机制,弗林克中的有四种的最重要的关键机制, 这关键机制呢在后面呢我们也会来进行详细的介绍,这里呢我们主要介绍他的基本概念以及呢主要用途。首先呢,弗林克中 最重要的一个呢机子呢是状态机制,弗林克呢是一种有状态的流计算引擎,那么状态的作用呢,主要是呢,我们弗林克是一种流计算,他需要了存储节点的中间计算结果, 另外呢,状态的保存还有利于了弗林克的进行容错恢复,那与状态呢有密切关系的是弗林克的呢切割破印的也就是了检查点的机制, 切割破音的呢,他能够去把弗林克的状态进行的存储,相当于是做一次的快照,方便的弗林克呢进行容错恢复。另外呢,因为弗林克呢他是一种 牛计算引擎,他的数据呢是不间断的产生的,是没有界限的,因此呢,我们需要有一种机制呢,能够对数据呢进行切分,我们会采用的时间作为呢切分点。 另外呢,弗林克进行容错性的恢复,他也需要了知道从哪个时间点来进行恢复,所以说呢,时间也是了弗林克中一种很重要的机制。 最后呢是窗口, window 在辅令壳中呢,他需要呢使用的窗口呢对数据进行切分,也方便呢对数据进行 聚合计算。接下来呢我们看一看呢,弗林克的核心概念,弗林克与其他 由计算引擎最大的区别呢就是呢能够进行的状态管理, 那状态的作用呢,我们刚才也给大家呢提提过这个概念,就是说我们踏回了存储,那么节点的呢,中间计算结果以及了一些了配置, 那这些状态呢,他是呢存储在弗林克的内部,存储在弗林克内部的好处呢是他部署运维了更加简单。第二个呢,他可以带来了性能上的一个极大的提升。 接下来我们看一看呢,弗林克的运行时的整体架构。弗林克的运行时架构呢,从下至上可以分为了三层,在最下层呢 是弗林克的一些了配置方式,弗林克呢可以采用的单机的方式安装,也可以采用的集群的方式安装,另外呢也可以采用云的方式部署。那么在大多数情况下呢,弗林克呢都是采用的集群的方式呢进行配置和安装的。 呃,其中的他支持了两种集群模式,一种呢是是单的漏,这种方式呢是采用的弗林克自身提供的资源调度管理器。另外一种方式呢是基于压的方式呢进行的配置安装 亚呢提供了专用的资源管理器。在中间层次呢是弗林克的呢计算引擎,这个计算引擎呢,他同时呢能够支持牛处理和批处理。 他可以结束了上层的 api 提交给他的了作业,那么这个作业呢是 run time。 这个引擎上面呢可以分为了两个模块,一个模块呢是 data stream api, 一个是 data set api。 弗林克呢将 data sit 和 data stream 也就是了批数据级以及了油数据级了,是分分开处理了, 但是呢,他们都是公用。下面的了计算引擎 基于了两种类型的 api 了,弗林克呢又提供了更多的上层的抽象的 api, 那么 api 呢,越抽象,他的表达能力呢越弱,但是呢,他对数据的 处理能力抽象性也越强,在针对于了上层 table api 和 circle 踏实了,主要是针对了关系运算了, 那针对关系关系数据的查询,弗林克呢,提供了统一的了接口,那给予了牛数据 api, 同时呢, 他提供了复杂事件处理了 api, 复杂事件呢,指的呢,就是说对不能够用时间去表示了事件的开始 次序以及了结束这样的事件呢进行处理的呢 api 接口,另外呢,针对于了数据以及 api 呢,他提供了积极学习了 api 以及了图计算的 api。 接下来呢,我们看一看弗林克中的 data stream 的概念,弗林克勒用 data stream 来表示程序中的流数据, 用户呢,可以认为他们呢是含有的元素是不可以修改的,并且呢其中的呢数量是无限的,大家可以呢,从这个图图中呢发现我们对对他是什么呢?可以使用一些算子, 例如呢 k 拜这样的呢算子对他进行处理,进行处理转换之后呢,他会转换成另外一种呢 数据流,也称为了 k 的 stream, 那么基于 k s jim 呢,我们进一步的可以使用的窗口算子,这主要是呢, 弗林克程序设计中对数据流的一些的处理方式,在后面呢,我们讲弗林克的程序结构以及了编程模式的时候呢,会具体的给大家介绍。 接下来呢,我们说一说弗林克中的核心概念,对它设置,弗林克呢系统的可以对数据级进行的转换,通常的转换的方式有了,比如说过滤, 映射,连接以及分组这些呢,转换操作与数据流的转换操作呢部分是相同的,但是有很多操作呢也不一样,这个大家需要呢在学习数据流以及呢数据及 api 的时候呢进行 的区分,还有呢我们的数据集可以从本地文件以及了本地的集合中呢进行创建,那最后呢结果 可以通过接受其呢返回,接受其呢可以把最后处理的结果呢输出到分布式文件系统以及呢其他的一些呢由处理了组建,比如 fling 卡,副卡。 下面呢我们介绍弗林克的程序的结构。弗林克中的程序呢主要由三个部分,硕士, transformation 以及 sink 组成。 那硕士呢,它主要是用于了从文件以及了本地集合中呢 读取数据。川师傅微型呢对读取到的数据或者是数据流或者是呢数据级进行的转换, sink 呢是复制了结果的最终输出,他可以输出到 hdfs 或者是卡夫卡这样的一切呢,呃输出中单中 在各个部分之间扭转的数据呢称为牛。事实上呢,我们一个标准的弗林克程序,他可以分为了 五个部分,那么第一个部分呢是创建环境,那么这里呢没有给出,在后面呢,我们介绍具体的程序结构的时候呢会给大家来讲解。再就是三个部分,对他说是传说每 以及 date, sink, 那未来呢是卡弗林克的程序呢能够运行,我们最后呢还需要调用一个执行语句。 这里呢介绍的是弗林克的数据员,弗林克呢针对的数据主要有了批处理和刘处理两种呢模式,那批处理呢,他支持的文件有 hd fs, local face system 以及 mapper r 这样的文件系统。它支持的格式呢,也是各种各样的,像 tax 类型的 csv 以及 avo, 还有了哈多坡 input for maths。 另外他支持了从 jtbc 以及 hbax 中呢,直接去读取了数据。再者呢,弗林克也可以从集合 中的读取数据。弗林克的牛处理数据员呢,也包含文件,但文件呢,可以是本地的文件以及呢分布式系统中的文件。还有呢,他支持了 so kids trim, 另外呢,支持从卡副卡中的直接读取数据。弗林可乐不光支持了一些已经定义好的了,呃,就是数据员, 他也支持了你自己定自己资深定义的一些数据员,比如说说是方可信克拉克这个接口的呢实现。

dt 的话呢,它是一个开源的这样的一个工具啊,然后在那个 gtop 上面它是开源的,也是呃中国的那个工程师开发的他这个,那么目前的话呢,他的呃呃信息数也是蛮高的,呃一点五 k 就一千五百个,然后他是 呃他是一个那个开箱即用的这样一个弗令克 c 口开发的这样一个工具啊。嗯,那么我今天的话呢,就跟大家再来介绍一下,详细介绍一下这个这个这个工具的作用。然后他的整个一个架构啊,我们先看一下他的架构啊, 他的整体架构的话,那个 dk 的话呢,他是主要是做那个 flinksico 的一个 stayli 就是开发啊,他有的一个功能的话呢,主要是把那个呃那个 cico 能够呃检查他的这个代码的这种错误啊,包括他能够提交一些任务,我们可以看一下他 这一部分,就是 franksico stadio, 你可以看到他可以可以提示一些命令啊,然后的话他也有一些呃,就是语语法的检查啊,他也有一些那个在开发过程当中的这个版本的控制管理啊, 然后他这个也可以进行一个叫做 cco 的这个血血缘的这个一个追溯啊,他这个功能也是蛮强的。当然他也有些简单的那个比亚埃的一些爆表展现的功能啊,然后他也有些 manta data 的一些 carry, 就是一些 呃,一些一些呃类似于数据库里面的这种 sigma 的这些呃自断呐表啊,它的这个 manta data 的这个 carry, 它可以存在 michael 数据库,或者存在那个 heavy 那个 manta data 里面,他等于是这样。另外的话,他也有一些那个任务任务的这个呃监控啊,包括一些呃教部的这些 英波 v 型,它其实都是可以去做的。这个是它那个 dk 的,它的最核心的一些功能啊,它是一个图形化的界面,然后让我们的工程师呃用那个弗令克进行开发的时候会比较容易啊。好的, 那么我再来给大家讲一下他的整体的一个甲构啊,他这个项目的话呢,他主要是依赖于这个呃阿帕奇的弗林克啊,弗林克 cdc, 然后弗林克的这个 tabel stone, 包括他也呃依赖于这样一个呃, 呃,这样,呃这个这个项目是阿帕奇的一个大数据的这样的一个执行的一个 sca 九,就是他是一个呃,就是一个那个, 呃开源的一个 dag 的一个工。呃工作流任务的这样一个调度的这样分布式的一个开源的一个系系统,他也是依赖于这个那个阿帕奇。 记得多瑞是我们原来是呃介绍过的,他是一个开源的一个实时的数据仓库啊,他主要是依赖于这些大的组建啊,他等于是这样啊。 好的,那么呃他的这个 dk 的这个平台的话呢,他是可以独立部署的,他是基于 springbook 加瓦开发的啊,然后他是要。呃如果你要用这个 manta data 的话呢?他可能是依赖于 mycicle 的数据库啊,他等于是这样, 然后他的前端的界面是用呃前端的界面,他是用这个啊,叫 他的前端界面是依赖于这个的,呃叫 reextges, 而是依赖于 reactress 开发的。嗯,好的。然后他跟弗令克之间,呃集群之间 那关联的话呢?它是通过这个 flink rest for the api, 然后它可以提交一些任务, debug cancer save 那个 point 啊,然后那个管理 啊,他都是通过这个来做的,那么他当中还有一些那个,呃, morning 啊,包括一些那个那个告警啊,包括有一些那个计划的任务啊,他都是可以通过他的这个平台来进行调度的啊,他等于是这样来做。那么他的那个大数据的话呢?他是 啊通过 flink 的那个 cdc 和 flink 的 connect, 然后做一些,呃数据上面的一些那个同步啊,呃,那个包括数据上面的一些那个, 呃处理啊,啊?他主要是通过这个来处理的,然后他的整些一些任务计算处理的话呢?他是通过 flink 的集群啊,然后通过 flink the rest for the api, 然后来来做啊,他这个是 是他的整体的架构啊。好的啊,然后我们也可以看一下他的整个一个啊,这个是 有一个文档,我们也可以看一下啊,那么它主要是解决的是弗林克的用户在进行弗林克 c 口开发的时候啊,怎么样?呃,在线的进行调试开发的这样的一个任务啊,当然他也可以呃做 u u d f 的开发啊,就是用户的这个样的自定义的函数,他也可以基于这个 平台去开发的,他是等于是这样。另外一个的话呢,他就是可以简化整个一个弗林克的开发任务和运维啊,他主要是做这样一件事。嗯,这个就是我前面讲啊,一体这样的一个开源的这样的一个 工具啊,然后他开箱就可以用啊,这个是他的整体的一个架构,我前面也是介绍过啊,那么他的主要功能的话呢,就是前面讲的就是弗林克的 cdc 一的功能, flink table store 的功能,包括他有一个大数据调度的这样一些功能,他都是能够支持的。然后另外呢,他也支持那个多瑞士的那个数据仓库,直接的可以连多瑞士的数据仓库进行 c 库的成这个这个开发,他等于是这样啊, 呃,那么他在呃 mycicle 上面做了一些表的封装,然后可以支持多用户角色权限的管理和命名的空间,他等于是这样,他的本质任务的话呢,他主要是做数据开发的啊,然后呢,他也可以做一些运维和资源的管理啊,他主要做这部分,嗯,那么 开发的他的核心优势的话呢,他主要是兼容那个多个弗林克的版本,然后 c 库于于于法的增强,然后他也易于做一些扩展啊,然后他也是可以做一站式的那个弗林克的这种开发的任务,包括弗林克 c 口,包括弗林克的价 提交,包括那个 u d f 的这样的一个开发用户自定义函数啊,包括那个 c q 的调试啊,他这个都能够支持啊。另外的话呢,他有一个好处是在于,呃,他可以 呃他用 react 加上 speaking 布置开发的,所以的话呢,呃,他也非常容易能够集成在我们的一些业务系统当中,他等于是这样啊,呃,容易二开,他等于是这个是他的一些功能。 好的。嗯,第二部分的话呢,他主要是介绍了一下弗林克 c 口的开发和调试啊, 任务的提交啊,这个我就不讲啊,他是基于他的话呢,是基于这个框架, 他基于这个框架有 momoco 的这个一个编辑器啊,他基于这个编辑器,然后做了一个在选 的这样的一个不宁可随口开发的这样一个工具。 任务的提交啊,任务的提交的话呢,他也做了一些增强啊,他主要是用到了一些,你可以自己定一些变量,或者全局变量啊,或者你自定一些函数,然后他可以做一些计划,然后直接提交到这个这个叫本里面去,弗林克的这个叫本里面去,然后让他去运行,他是通过这种方式去做的 调试。辅助开发啊,辅助开发里面的话呢,它有三大功能,第一个的话呢,就是呃自动的提示和补 股权,然后自断的血源分析。还有一个呢,就是原数据的管理,这个是它的核心功能啊,这是弗令克的这个原数据的这个管理啊,它是可以呃用 用作 flinksicle 环境的这样全局的管理,或者基于啊,他的这个 flinkmasico 的这个 catalog 的这样一个管理啊,也可以基于 table store 的这样的一个集成的一个管理,他支持这三种方式 啊,那么因为他这个工具啊,呃 gt。 他也是整合了弗林克的 cdc 的这样的一个功能,所以的话呢,他是非常容易把整个一个呃数据库能够实时的入到那个数据壶里面去,他等于是这样啊,这个是他的自带的一些功能, 这个是他是基于这个弗令科的 cdc 的这些功能。那么如果我们要创建一些弗令科的那个 cdc 的一些任务的话呢,就会比较容易。那当然他也可以是基于这个整个一个数据库的这样的一个同步, 也可以支持就是说,呃,某些数据库表结构的这样的一个实施的同步。 所以这个工具的话呢,它是方便我们,就是方便我,我们就是在弗林克这个平台上进行开发的。这个时间啊,这个工具还是挺有用的,挺有用的哈。呃,我大概就介绍到这啊。

啊,真正做到一套 api 啊,一套存储体系啊,一套放马路,那我们将这套新的里面我们叫做流逝速腾啊,也就叫 streamy house, 这里大家能看到这是一个非常经典的主流的实时一线一体化的收藏的架构, 那这里面呃大家绝大部分的迷糊场景都会使弗林肯家卡夫卡去做实时数据流的处理啊,比如说我们的实时数仓,我们先看一下在刚才这个新的价格中,我们的结构是不是更简单了,因为我们引入了一个叫傣南美可 table 的这个一个概念啊, 弗林克的动态表,那弗林克的 c 扣呢?其实是可以呃流失的,也可以批示的去读写这个短暂的一个推广,也就是说呃,我们 将速速仓的分层数据全部放到弗林克,等他们给退步之中,也就是实现了实时树仓,实时树仓的处理和离线树仓是天然的一体化,因为 api 是一套,都是弗林克 c 口,所有的数据也是一套啊,这样的话实现的是实时离线一体化的这个效果。 同时还有一个新的亮点,比如说我们可以让仔仔那个 table 中的数据实时的被分析到啊,所以可以看到啊,这个价格是真正的做到了一体化啊,真正做到一套 api 啊,一套存储体系啊,一套方法论。 那我们将这套新的里面我们叫做流逝收藏啊,有一句叫 stream white house 啊,大家可能听说过 stream bb 啊,在这里面还是有一些的不同, 那通过我们这个 streamy house 的这个呃呃价格,我们可以看到我们其实是有呃起到我们 我们可以有三个优势出现,那第一个优势就是说我们实现了全链路数据的实时流动啊,这点我要强调一下,我们这个架构是可以在中态上实现数据的完整,真正的实时流,而不是明明白使流动是完全的实时流,秒级和好秒级的流动。 那第二点是说我们所有流动中的数据都可以被分析到啊,这里没有任何的数据盲点,任何数据只要他在流动,他在变化,我们都可以实时的去宽锐去分析到。 这两个因素决定了数据从他的产生开始,我们就可以实时的开始进行处理,而且他在任何环节中我们都可以进行实时的分析,两个实时同时做到。第三点,我们可以做到实时离线分析的一体化啊,这也是我们弗林克 c 扣,呃,弗林克很大的一个特点,因为我们可以 一套 api 完成所有的数据分析,用户不需要用两套 api, 不需要用两套 c 口啊,这个整个对开发者来说是非常简洁的,对运尾者来说整个架构也是非常紧急。 那刘诗书汤也是弗林克社区未来新的一年中社区的一个重点的方向,我们也是希望弗林克从啊 string processing 啊走向 stringy house, 去覆盖更大的场景,去帮助开发者解决更多的问题。


嗯,先简单介绍一下,然后我叫徐板江,或者来自阿里,在阿里的花名是雪静, 然后我是弗宁克 cdc 的明登任,也是长安阿坝旗弗宁克的卡密特,嗯,最近两年一直专注在弗宁克斯入口,然后弗宁克 cdc 还有这个数据集成这个领域 啊,今天是也是特别开心,能够在这里有一个专门为宁可 ctc 准备的一个 mitapu。 那今天的话,我在这里想跟大家分享一下,就是基于福宁的 cdc 实现海量数据的一个实时同步和一个转换。 那今这是我今天分享的一个大纲,大概分成四个部分,然后一个会讲一下福宁可 cdc 技术, 第二个会分析一下当前,嗯,传统的一些数据集成方案的一些痛点。第三部分会讲一下我们这个分定格 cdc, 嗯,针对这些痛点带来的一种实现海量数据的实时同步和转换的一个方案。 第四部分,因为咱们福建的 cdc 大家都知道是一个啊,时下啊成长非常快的一个开源社区, 然后我在社区里面啊也会负责蛮多的工作,所以说我就想给大家分享一下这个社区的一个发展。那首先第一部分我会跟大家说一下这个啊,福宁可 cdc c 技术,其实 c d c, 嗯, c d c 这个技术并不是什么啊,时下才涌涌现出来的技术,这个反而相反,这个技术其实是非常古老,或者说历史非常悠久,到发展到现在的话,这个业界的 c d c 的技术方案是非常多的, 但我们可以从原理上把它们分成两大类,一类是基于查询的 cdc, 一类是嗯基于日制的 cdc, 比如说基于这个查询的 cdc, 像石固虎、点点叉,基本上就是这种 cdc 方案。 这种方案呢,其实在当今这个实对实施性要求越来越高的,不管是舒畅啊,还是一些欧纳普场景,其实他慢慢的嗯发现,嗯用户会嗯发现他的一些缺陷,比如说他是离线调度, 然后他是 p 处理的模式,注定了这个颜值会比较高。然后就是没有保没,没有办法保障那个数据的一致性,因为他是基于离线调度,然后做一些切片,然后另外的话他也不保障那个实质性,毕竟他还是批的模,批的模型。 然后另外一种就是基于那个日制的 cdc, 像现在的那个可耐奥啊,国内的可耐奥,然后国外的逮不胜,以及我们的福宁的 cdc, 都会基于这个日制的 cdc 技术。 这种方式呢,他可以实施的消费嗯数据库的日子,比如说买收购的宾诺格,然后像那些嗯 pg 的 wil 的诺格,然后它是一种流失处理的模式,然后它可以保障那个数据的一致性,然后提供的是一种实施的数据,比较符合大家对这个 越来越实时的一个需求。那常见的开源的 cdc 的方案的一些对比,我们把这个基于查询的,基于那个啊,日制的,我们啊市面上主流的一些开源 cdc 方案,包括那个 ogg, 它是一个商业化的,我们也做了一个对比, 大家可以看到在弗尼克 cdc 里面,在这个图里面,弗尼克 cdc 在这个 cdc 的机制,以及他这个增量同步啊,断点续传全量同步表现都是很好,同时他也支持这个全量加增量一体化同步。这里的话在 啊其他很多的这些开源方案是不支持这个全全车辆一一体化同步的。同时我们的这个架构值得一提,我们是那个分布式的架构,就是说在这种海量数据的场景,你必须是一个分 出色的价格才能扛,然后你这种单机的,这种单机只靠增加这个机器的性能,是不太能够适应那种海量数据的场景。还有就是这个全是红霉线,宁可 ctc 因为 依依依靠弗林格的这个巨大的这个生态的一个红利吧。然后他在弗林格的这些算子,第二是捐纹的算子以及收购上,他能够有啊非常强大的全是分类性的能力,就是我们的数据清洗、数据加工。同时的话弗林格 cdc 这个生态以及 包括弗宁格的这个开源生态都是非常完善的,就我们都是呃走一个开源的路线,所以说这个社区的用户啊,包括各个公司的一些共建,都是有很多可以参考借鉴的东西。那 好,我接,抱歉,我接一下,他有个动画,我给大家,嗯,演示一下这个弗林格 c d c, 他的这个 这样的一个全质量一体化的一一啊一个模型,就是说我们在这个啊分那个 cdc 里面,他其实是把全量跟增量数据做一个一体化的同步, 就是说一张表里面我们有历史的全量数据,还有增量的这个啊,宾诺格的数据,增量的数据不断的在往这个, 比如说买三个啊,他在往他的这个宾诺格里面不断的去写,如果说他是有一些嗯新增的数据,他就会新增到这个实时一次性的快。在后面如果说他是更新的数据,他就会在 在已有的这些历史数据里面做一个更新,从而的话通过另个 cdc 提供的就是你相当于一个实时的雾化仕途,你得到的是一个实时的一致性快捷。 那你拿到这个实施的一次性快照,你在弗宁克里面,比如说在弗宁克收口里面,你可以做这个快照,做一些进一步的加工加工,比如说啊聚合过滤等等,然后再写入到你的下游。 所以说整体来说另个 cdc 他就是做了一个啊全增量一体化的一个同步,来提供一个实时一次性快照这样的一个技术。 那我们第二部分会来分享一下这个传统数据集成方案的里面的一些痛点,因为另个 cdc 作为一个时下比较火的一个开源的啊实施的数据集成方案, 那我们对比一下传统的一些数据集成方案。首先我给大家看的这个图是一个传统的那个数据的啊数仓架构一点零,就一个数据入仓架构一点零。 然后这里面的话,其实在早期的时候,我的理解就是包括在现在很多公司里面都在用这个 dale x 跟是固步做全量的一个同步同步到啊 igdfs 里面,然后再去再围绕着这个害物做速仓,因为害物做速仓特别是在国内还是非常主流的, 虽然时下有很多数据壶的方案,但是大部分的这个用户并还没有迁移过去,那么这种入仓价格其实缺陷还是蛮多的。一个是他会影响业务的稳定性,因为他是每天都会去你业务表里面买烧烤表里面去查询那个 数据,然后它是天级别的产出,因为注定你每天都是去查,你不可能这个啊时效性特别高,如果说你把这个调度间隔搞成每五分钟一次,那么你对这个缘故的压力会非常非常大。 然后另外的话就是这个性能瓶颈明显,你业务规模扩大了,那么你来要查询的表就会越来越多这种的他这个这种方案的痛点就是他比较影响业务,然后延迟也比较高,扩展性的话就会比较差。 那么到了啊,大家还知道有一个栏目的价格,就是在我们叫做数据入仓啊,数据仓库的二点零价格,就是这样的话,他会分成两条链路,就是说我 实时我走一条练路,离线我走一条练路,那么实时这条练路就是做一个增量的同步,比如说用克莱尔做一些同步到卡夫卡, 然后再做一些实时回流,然后跟这个全量同步,全量同步一般只做一次,然后再跟实时每天的这个增量在这个 hdf 上做做一些定时的合并,合并了再去导入到我们的害捕出仓里面。 这种有个方式就是他基本不影响业务稳定性,因为他全量同步只做一次,不是每天都去查。但是呢他这种增量同步,因为他会有一个定时回流,一般只能到小时和天,然后他的这个时效性还是比较低的。 同时大家可以看到他全量跟增量是两条链路割裂,就意味着你这个链路比较长,组建比较多,我们需要维护啊,维护更多的组建,所以说他的可维护性是比较差的。嗯,那么并且,呃还有一部分就是 是我们的 cdc 数据,很多时候我们不是就是说把这个数据原始数据从买三股,从 p 金里面直接就打到我们的这个下游的速仓,或者说下游的一些 olape 引擎里面去。那么其实我们还是中间会有一些 etl 的一些分析的,对吧?我们还有一些 etl 的分析,那么在传统的 cdc etl 的分析里面一般都会啊,有一些采集,比如说用德不胜,当 claire 采集,采集了之后我们再写到一个消息堆里里里面去,比如说卡付卡, 然后再去用一些计算引擎做一些计算清洗,最终再去漏得到我们下游的一些存储啊,消息对列啊,或是消息对列,这里就是去构建实施速仓,或者说数据壶,或者说你一些啊 ola 引擎里面去。那么在这个,在这个 传统的呃 cdc etl 分析里面,我们可以看到,其实的话我们还是引用了蛮多的一些集群,比如说 davidson, clear, 这些都要有集群,对吧?我们都要去部署,需要维护,然后卡副卡,我们这个消息对面集群也需要去维护。 那么德不胜其实他也有自己的缺陷,就他支持全量加增量,但是他是一个单并发的模型,注定跟我们主题所讲的这个海量数据啊,不,不能很好的这个卡位,然后对于这个可奈尔他只只能读增量,那全量他需要 deco 叉跟这个使固步做一个配合,那么 你如果说你需要做一个配合的话,就相当于你有两条链路,其实你需要维护的主见也就变多了。所以说这里的传统 cdcetf 分析里面的痛点就是要么就是单并发性能差,要么就是全辆车辆比较 割裂,迎来的逐渐比较多啊。那么我们看一下基于福宁可 ctc 这这套方案,嗯,能够给我们的海量数据的实时同步和转换带来一些什么的啊改善呢? 那首先就是宁可 cdc, 其实啊大家应该都知道,就是在 cdc 二点零的时候,我这边嗯实现了一个增量快照读取的算法,当然这个在我们最新的二点二版本里面,我们已经把这个增量快照算法抽抽成了一个框架, 框架之后呢就是说让其他的啊,卡耐克的不只是买烧烤,其他的数据库也能够附用这个增量快速算法。这个增量快速算法其实就是解决了嗯,之前像 davrdson 这种全车辆一体化同步,嗯,里面的一些痛点,比如说 早期的时候,他在实现全增量一体化同步的时候,他会使用锁,并且他是一个单并发的模型,然后他失败了,重做,失败重做,就是说他在那个全量阶段,比如说有一张大表,他要同步两天, 然后如果说失败了,你同步了一天,失败了,然后他又要从头开始,那他就不能在那个全量的阶段实现一个断点续传。 那我们的那个增量快车算法,或者说现在说这个增量快车况足球框架解决的问题就是我们用了一个无所算法 啊,不再使用锁,这个的话其实对那个业务库是非常友好,友好的使用锁我之前早期的时候分享过,其实对业务库的那个伤害或者说风险是特别高的。另外的话我们是支持了一个并发读取,就是说并发读取就对于一个海量数据的一个处理, 另外的话我们支持了一个断点续传,断点续传就对应的那个失败重做,这样的话能够极大的提高我们的这个啊数据同步的一个效率跟这个用户体验。 那这个全增量一体化的这个框架是大概的原理,这是一个示意图,就是说我们这个数据库里面有很多,有一些表,对吧?那我们按表,比如说我们按一些 pk 或者说 uk, 我们把它 一一个一个的切成一个一个一个创口切成一个一个创口了,然后我们分给多个的踏实口做一个定型的读取。 在全量阶段我们就实现了一个并行读取,那么全量跟增量我们是做了一个自动切换,切换的时候我们通过那个无所算法来做一个无所一致性的切换,切换 完到了这个增量阶段的时候,增量阶段的时候我们只需要单独的一个踏实卡去负责那个增量部分的数据解析,这样就实现了一个全增量化,全增量一体化的一个框架。并且在在这个过程当中,然后再进入增量阶段了之后, 如果说你的那个作业啊不再需要资源,其实你这些资源是可以很轻松的释放出来,比如说你做一个资源的调整,就可以把这些资源给释放出来。 那么我们这里我们也做了一个跟戴布森应该是一点六版本的一个对比。然后就是在那个戴布森,因为他当时是单品发读局,所以说他读取那个 tbcds 一张喀什传统单表,我记得是遗体的数据,大概他这张表有六千 五百万。其实他的吞吐在我们弗林克 cdc 用八个并发的情况下,他是提升了那个六点八倍左右,就我们这里是搞了八个并发去读嘛,八个并发读,其实他提升了六点八倍,基本上是一个线线的关系, 耗时十三分钟。如果说你假设你这里是十六个并发,这里预计的时间应该是能够提升对应的十四倍的样子,这就是,嗯,用资源来换取这个速度吗?就在这种海量数据的场景,其实我们想尽快的同步其实是可以做到的。 那么我们在弗宁克 cdc 设计的时候,其实我们也不只倾向于就是说面向这个硕士,单单设计这个硕士,其实我们在整个弗宁克收口的一些框角, 或者说下游的这些数据壶里面我们都考虑了很多,然后在数据壶这块我们会考虑一些面向存出友好的一些设计。 就是在早期的时候,如果说我们想做到啊,一个扎克头的万事,其实我们是要配合否定可提供的这个切克罐头的机制。那如果说我们没有做这个啊, 做这个切片的话,当时的话就是这个全量阶段,他只能在一个切克破的那里完成,然后在一个切克破那里完成,就有个问题,就是说每一个切克破的中间要把这一张表的全量数据啊吐给下游下游,比如说这是一个呼地,呼地的 rat 去洗, 那么他在这个 rat 里面会把这整张表全量数据八份在他的内存里面,然后对这个 rat 的话,其实内存的压力是非常大的,稳定性也是特别差的。那么到了 这个,嗯,福利给 cdc 二点零之后,那么我们提出了那个增量快速算法,做了一个切片,那切片了之后,我们能够把这个切割罐头的力度降到一个创可啊,一个一个的创可,并且这个创可是用户可以配置的, 默认的话是八零九六八千多条,那么对于这个户地的一个 rat 来说,他只需要保存就是八千多条数据,你觉得这个户的 rat 你还可以调,比如说调成八百条,那么这个 rat 的话,他就比较压力就比较小,从而提升了这种下游写存储的时候的一个稳定性。 那弗林格 cdc 的入股架构,通过这个全车量化一体化了之后,其实他会变得非常简单,他就一个炼入,就是啊弗林克 cdc 这一个组建,只要你有个弗林格集群,用上弗林克 cdc, 那么你要去做一个啊数据库数据的一个全增量一的话,实时入股这个亮度变得非常简单,并且他不会影响业务的稳定性,能够做到分钟级的产出, 三中级的产出,就意味着你结合呼地这些去在呼地里面围绕你购一些进实时分析,或者说实时的这个数据股成为可能, 然后并且他是并发读取,有更高的吞吐在海量数据的这种场景他是有较好的表现的。然后这个念录短,逐渐少,就对那种韵味的同学,或者说我们平台的同学是非常友好的。 那么我们之前还讲了传统 cdc etf 分析里面的一些痛点,那么有了福宁可 cdc 之后呢?其实在这里的话也有极大的改善,就是说我们这里我们不再需要什么,可能要得不, 然后卡夫卡消息队列的这些主见呢?对吧?最起码在我们这个 etl 过程当中,我们只需要分定卡,对吧?然后分定的 cdc 作为里面的一个呃,一个卡耐克头,或者说一个主见, 那么我们只需要这一个依赖,那么我呢还能实现全车辆一体化。我们这个 etl 的加工其实是在实时加工,我可以并发读取,年度短,逐渐少,相比如传统的 cdc 的 etl 分析,其实大大的啊啊,简化并且提升了啊很多,带来了很多优势 啊。依依托我们的这个 flink, 嗯,得知时间,我们的一些 api, 或者说我们常用的一些 c 客的 api, 其实我们是有非常强大或者说完善的全是妩媚型的能力的。并且我们在这个全是妩媚型的过程当中,我们是 能够保证这个千吉洛格的羽翼的,因为你在这个买三个 pg, 这些数据库里面过来的数据一般都是千吉洛格,对吧?全量部分我们都是隐身的,但增量部分我们是有阿布队的根蒂利特的这些千吉洛格, 那这些清洁洛葛在宁可收获里面做这些清洗聚合打官的时候,我们是能保证清洁洛葛的羽翼,然后保证这个羽翼我们还能给他写入到各种下游, 然后在这些全是佛门行的时候,比如说你清洗有一些 vr 骆驼印聚合,像这种狗肉不拜托不安历史的你做一些聚合,对吧? 还有做一些嗯,打宽为表的一些构建,做一些大宽表,然后你在一些传统的一些方案里面,你想要在千吉洛格上去做一些传世和 man 型,并且来保证一个千吉洛格的羽翼是非常难做到的。 所以说这也得益于 flink circle 对前期 logo 的一个完善的一个支持。 那么我们看一下几个场景,就是福宁可 ctc 讲了这么多一些技术原理,一些价格,那其实我们举几个嗯,常见的一些场景会让大家更有体感。一个是福宁可 cdc 实现那个易购数据源的集成, 比如说我有一些业务表,然后比如说我们这里举的例子,我们的产品表跟订单表都在买收购的这个数据库里,那么我这个物流表我存在的是 pg 的数据库里面,那我现在要对它实现一个一个数据源的一个基层, 那么并且在集成的过程当中我会做一些啊打宽,那么我要把这个产品表、订单表跟这个物流表做一个时间命交易,交易完了之后把这个结果表再 写入壶底,他整个过程你会发现我们只需要用分拎个 stopper, 大概就是在五行分定,只需要五行分定个 stopo 就能够实现你一个一个数据源的集成,并且在集成过程当中我们是能够做一个宽表的构建,然后再写入你的 十字的数据壶,我们这里用的是一个呼地,然后你在呼地里面你可以得到啊分钟级的一个产出,甚至是更低,然后分中间,这样你就去围绕你的呼地做一个进食的分析,就成为了一个可能。 另外一个就是在业务规模比较大了之后,其实在不管是在国内外啊,这种分布分表,然后都是非常火热的一些中间键嘛,啊这种分布分表非常常见在我们业务上,那另个 cdc 对这种做了非常完善的 知识,就是说我可以在这个声明这张 cdc 这张表的时候,我可以声明这个 dairbase 内蒙跟 tube 内蒙可以是一个正的表达式,那么正的表达式就意味着我可以匹配多个库啊,然后以及这多个库下的多张表 啊。我在声明这个收购的时候也非常简单,同时我们提供了 mater 呆特的支持,就是说这条数据来自于哪个 db, 来自于哪张表,每行数据来自哪个 db, 哪张表,这样的话我们在写入下游这个呼地的时候,那么我们可以把这个 mater 呆特声明的这两个列给带上, 我们把这个 db 内蒙特布内蒙跟以及原始表中的那个 id, 这个比如说是 pk 拿来作为一个新的一个 pk, 这样的话在蝴蝶里面作为蝴蝶表里面的一个 pk, 然后整个过程 大家会发现我们就写了三行那个 c 口,就实现了一个分库分表的一个数据的一个实施集成啊,实施集成到我们这个数据户的这个数据壶里面,对于用户来说变得非常简单。

大家好,我是元一,来自中国工商银行大数据平台团队。 我们团队从二零一零年开始引入海度的技术,以提升面对海量数据时的处理能力。二零一七年开始研究并引入弗林克相关技术以提升数据处理时效。 目前,我们团队支持了工商银行内近三百个总分行应用大数据分析挖掘的需求,通过技术创新不断促进技术向业务赋能。 在工行大数据平台中,弗林克引擎支撑了实时数据、 etl 实时计算和计算结果导出三方面的技术场景。相比于金融行业早期 使用的基于文件交换、批量数据处理的方式,基于弗林克的实施计算处理能力,将数据处理时效从 t 加一提升到了秒级,甚至可以支撑交易、反欺诈这类适中干预类业务, 使数据能够更快的在多个业务系统之间进行流动、汇聚以及反馈。而在业务场景方面,工行基于弗林克实现了诸如实时营销大屏、运为监控大屏以及基于多路数据汇集后的实时营销类模型, 比如 vip 客户到店提醒客户挽留入账营销等场景。同时部分模型也会与 nlp 自然语言处理平台对接,在某些特定事件发生后的短时间内快速的触达到用户,从而在当前激烈的市场化竞争的大背景下把握住机遇。 本次 flingfold asian 给大家分享的题目是工商银行实时大数据平台建设历程及展望。 我会围绕时效、易用、可靠、降本增效这四个方面来展开全面介绍工商银行近二十年来大数据体系的建设历程,以及近几年在生化、数字化转型过程中,面对业务册持续提高数据时效性方面的要求, 工商银行大数据团队以阿帕吉 fling 为核心,建立了一套实时大数据平台,形成从业务系统数据实时产生、采集、计算、入库,最终实时的将数据返回给业务系统, 形成业务册端到端实时数据闭环。本次分享将围绕这套端到端实时数据处理链路,介绍多个金融行业可参考的实践案例, 如年终损于预测、反欺诈事件是营销等,并着重介绍 fink 引擎在这条实时数据处理列录中所起到的关键作用。同时也会和大家聊一聊工商银行在大数据平台安全加固、研发效率提升、降本增效等方面所开展的一系列工作。 希望通过和大家的交流,进一步推进 flink 在金融行业的落地、实践、实时及未来。我在 flink forward asian 等你!

finic cdc 连接器,主要用于对不同数据库进行变更数据的补货,他支持的数据源,嗯,比如说像芒果 db 以及我们 mac 扣,还有其他的 oracle 一些常见的一些数据源。 下面我们来演示一下如何去实现 mac 口的变革。数据补货,嗯,他的使用比较简单,就是引入相关的依赖,以及我们在这里去进行一个配置即可。我们这里来本地来看一下吧。在加号里面我们需要去配置 mac 口的连接地址,以及我们要获取的数据库相应的一个表信息, 然后我们就可以去获取他的增量数据或者说全量数据,在这里有一个选项,我们可以进行相关的选择,我们在这里来测试一下,我们可以去鉴定相关的数据,然后我们打开我们的数据库,然后这里是我去获取他的测试表, 嗯,这里我们比如说修改一条数据,我们保存一下,然后回到我们的代码中,这里就会拿到我们相应的一个断点,在这里我们可以拿到相应的一个数据,在这里我们是更新数据,然后可以拿到更新前的数据以及更新后的数据,这是他相应的库和表, 然后我们把断点放开,在这里我们再到数据库来测试一下,嗯,相应的一个删除,比如说我把这条数据给删除掉,然后在这里删除记录,让我们选择好 这里数据库就会识别出我们是鼎力的操作,然后删除前的一个数据以及删除后是空的,可以看到还是比较简单的,这里也能去拿到其他的一些信息,比如说我们来看一下他的一个数据源,我们在这里去 第八个一下,然后我们在这里去再进行更新,操作一下这里保存,然后回到我们的代码中,在这里我们能读取到他相关的一个,比如说他是哪个库下面的表,然后以及其他的一些数据,比如说我们看一下, 嗯,在这里我们也能读取到他是从哪一个 bindog 日志文件读取的数据,比如说我们是从这个 bindog 这个零零五三这个文件读取的数据,可以看到通过弗林克 cdc 去进行变更数据的捕获还是非常简单的。

flink 窗口是什么?在 aparty flink 中,窗口是一种对无线数据流进行切割、分组以及聚合的机制窗口允许在一段时间内对数据进行计算,这对于实时数据流的分析和聚合是非常有用的。 flink 提供了多种窗口类型, 其中包括滚动窗口、滑动窗口、绘画窗口等。以下是一些常见的窗口概念。一、滚动窗口滚动窗口是一种固定大小的窗口, 根据事件时间或处理时间进行划分,每个窗口的大小是固定的,且窗口之间没有重叠。例如, 每五秒生成一个包含五秒数据的滚动窗口。二、滑动窗口滑动窗口是一种具有固定大小和固定滑动不长的窗口。滑动窗口允许窗口之间有重叠,可以更灵活的捕获流中的模式。例如,每五秒生成一个包 包含十秒数据的滑动窗口,滑动步长为五秒。三、绘画窗口绘画窗口是一种动态的窗口,根据事件之间的间隔时间划分,绘画窗口可以自适应地捕获不规则的数据窗口。例如,在用户活动之间的时间间隔内创建一个窗口。 四、全局窗口全局窗口是一个包含所有数据的窗口,通常用于全局聚合操作。全局窗口在流处理中是一个特殊的情况,窗口大小和滑动不长都是无穷大。 五、时间窗口时间窗口是根据事件时间或处理时间进行划分的窗口。时间窗口允许在一定时间范围内对数据进行聚合操作。在复印刻中,窗口操作通常与键控流结合使用,以便按照某个键对数据进行分组, 然后在每个组内应用窗口操作。窗口的使用使得 flink 可以有效地处理基于时间的聚合操作,如实时统计、滚动平均等。

快手直播啊,他们到底是怎么样利用这个 flink 做实时数据仓库的?然后帮他们解决了一些什么样的业问题啊?他们的整体解决方案到底是怎么样子的?嗯, 那么我们可以看一下那个快手实施数据仓库的这个发展过程啊,他们公司的话呢,也大概分了三个、四个阶段啊,他做这个实时的这样的一个速仓的这样的一个发展啊。刚开始的话呢,第一阶段的话呢,他主要还是 一些呃,春节、国庆大型的这个活动啊场景,然后活动通用的一些数据,然后它主要是做一些呃实施的这样的一个数据仓库的这样的一个分析啊。 那么随着业务的发展的话呢,他们发现就是公司的一些核心指标啊,非常重要,需要持长期的进行监控的,所以他们也在这个上面做了很多的这个高效的开发啊,因为他要满足各种各样,包括用户的一些数据啊,业务设备、预数据,他都要做一些实时的这个数仓的这样的一些技术 啊,这是第二阶段。那么到了第三阶段的话呢,他的业务就发展起来了,之后的他各个业务的这个核心数据看板啊,包括他各个场景的数据, 那么他就要去做一些实时数仓的这样的一些分析。那么现在的话呢,他这个实时的数据仓库要业务赋能啊,通过数据去驱动他们整个一个快手的业务的一个发展啊,他称之为这数据赋能业务啊这种方式。那么他的硬场景的话呢,就非常复杂,但是呃,因为经过了这个四个阶段的发展,所以的话呢,他们的这个 那个实施数据仓库的话呢,就很这个,这个就是呃技术比较成熟,然后发展也是比较快。那么我们可以看一下那个 快手这边呃数仓的建设的这个核心的思路,他等于是这样啊,那么他也是分了几个阶段啊?三四个阶段,我们前面讲过的刚开始的话呢,他主要是呃基于这个数据量大啊,因为国庆啊,对吧?第一阶段那么他主要是要求的 是这个数据质量比较高,然后呢任务计算数据质量有保证啊,它主要的挑战在这啊,那么它这边的话呢,它的用也是用 flink 的整个一个 技术架构来做的,那么他也是多机方的融灾哎,双链路的方案,缩短指标产出的链路啊,自定义窗口的这样的一个数据口追溯,他主要是在这个方面,第一阶段他主要是在这个方面去解决这个数据质量保证和那个呃数据的 是可用性的这样的一个问题啊。那么后面的话呢,他主要是在业务核心看板上面啊,那么主要是他要跟随着业务不断的去迭代啊,因为业务发展非常快,需求非常多,那么这样的话呢,就要求他能够进高效的进行开发啊,这个是对他们来讲是非常重要的,那么他要对整个一个 数据仓库,整个一个架构,包括在这个 flink 基础上,再去开发自己公司的一些可视化的一些工具,那么 在这个上面他们花了很多的精力啊,总结了很多的经验啊,他等于是这样。那么到了第三阶段的话呢,他主要还是应用在这个,让那个数据去赋能,那么主要是应用在 ai 推荐啊,线上推荐上面,那么数据的话呢,要更加实时,对吧?然后的话呢,因为 ai 的话呢,牵涉到线呃 这个 app 的实时的这个应用场景,所以的话呢,他会非常要求可高可用性,他等于是这样,所以的话,他们就是做了更多的这个本地恢复啊,异地融灾啊,对,对吧?是,是那个对这个一个弗林克的整个一个架构底层的一个实施性的要求啊,都做了一些,在这个上面在做了一些不断的这个深入和改进,他等于 这个是他们整体的一个方法论啊。那么他的这个实施仓库的技术架构的话呢,它主要还是因为他们这种互联网公司基本上都是要用 mecco 的,所以通过 blog 啊,实时的把这个数据呃采集到卡夫卡的这个 消息对列里面,当然它也有一些 a p p 的一些采集的数据,用户的日志啊,然后实时的入到卡夫卡对列里面去,然后作为 o d s 的这一层啊,那么在 o d s 这一层的话呢,它整体都是用 flink 的,它等于是这样,那么在呃 d d w d 层就是数据的汇总,把这个宽表计算, 它包括 d w s 产大都是用这个 flink 来算的,包括有些实时的话呢,他们也应应用到的那个 redis, 把有些数据缓存在 redis 里面啊, 那等于是这样,那么在 a d s 就是在应用的这个数据层和这个 d d w s 这一层呢,他们也用到了 click house, 呃,他会把这个 通过 flink 卡不卡的这个数据直接写到 click house 里面,然后作为这个实时数据仓库计算的这样一个引擎,它等于是这样,那么在 click house 里面它分了各种各样的数据集啊,数据集,然后作为这些看版啊,呃,平台的一些推荐的一些实施的一些特征啊,啊, 包括一些核心那些指标的这个报表的计算呢,它都是放在这个上面来做的。嗯,好啊,我们可以看一下它的整体架构,整体架构的话呢,它快速有 pc 版啊,有快速极速版,有快速 a p p, 对吧?就是它有各种各样的应用,然后呢都是通过 那个前面讲的,他有 log 日志和那个 mysco 的冰冰 log, 对吧?然后录到这个卡夫卡作为这个 o o d s 原始的数据,然后进行 o d s 的这个拆分,然后呢他就分了很很多的玉啊,有视频播放的,有直播的,有搜索的,有电商的,他就会分多分了很多的 绿和表啊,分到不同的这个卡夫卡的消息对列里面去。然后的话在 d w d 层上面,他在会把这些宽表,呃扩展表,把它可以生成出来啊,那么就建立了不同主题不同维度的这种关联啊。那么在这个 d w d 层上面的话呢,那么他在做一些核心指标 核心场景的这种计算啊,包括在不同的这个主题数据里面,他采集了各种各样多维度的这样的一个特征,然后再进行推荐啊,他等于是这样啊,他做一些呃垂直化的、个性化的场景,都是基于这个主题的 dwd 层,这这这部分这个数据啊, 那么他的这个实时数数据仓库的话呢,他核心的话呢,还是要想办法就是统一的这个数据架构,然后呢他的这个数据量会比较大,然后尽可能的话要复用啊,不要重复计算,然后的话配置的话可拆分。他等于是这样,然后呃分成不同的域来算啊,然后有视频曝光啊,直播啊,活动曝光等等啊,他有非常多的这些域啊。 那么 d w d 层的话呢,它把这个 o o o d s 这一层的原始数据在呃 d w d 这一层的话呢,再进进行这个汇总和聚合,它等于是这样实时的产生各种各样的指标,然后它这边也使用了 click house 啊,然后做了多维表的 这样的 injure 的一些操作,它等于是这样啊,啊,它这部分是这样的啊,那么实时数据仓库的话呢,因为它入到这个 click house 里面去,有实施的表,也有离离线的历史表,那么它就可以通过 click house 非常快速的把这些指标图形化, 实时的把它给计计算出来啊,它是等于是通过这种方式来做的,所以它这个 a d s 的话呢,它主要是放在 click house 里面来进行计算的,那么有些数据量比较大的,那么它也会用到 click house 里面的全量的雾化视图,我们之前在 click house 里面也也是讲过的,那它能够非常快的能够愈 据预计算,他等于是这样非常快速的能把这个给查查询出来啊。呃,他举了一些呃业务场景单直播间的累计的这个指标啊,他等于是这样,那么他有可能是单场跨天的累计啊,他等于那么他也有些离线的,也有些实时的,再把他给 拼接起来。那么他们在实施数据仓库资源治理上面也碰到了一些挑战啊,因为他的 呃,因为他流量非常大,对吧?呃使用的这个资源也是超饱和,而任务和任务之间有可能会抢资源,所以的话,他们也要分不同的优先级的队列啊,然后来进行计算, 新增的任务要有这个集群的队列,然后也要把这个任务要分成优先集。那么有些任务的话呢,存量任务的话,有可能也要想办法要去合并啊,复用他,等于是这样,所以的话呢,他们这个挑战还是非常大的,挑战还是非常大的 好,我们再来看一下他们实时数据仓库场景化的这个实战啊,具体他们在用些什么样的场景啊?他们用的最多的话呢,主要是 s 级别,就是超大这个级别的活动的大屏啊,他主要是分析的是呃大盘的指指指标,因为他的这个数据量非常大啊,每秒钟可能有百万级的 q p s 啊,要算的准对吧?要算的快啊,要算的稳,要有可能有故有故障的话,他要想办法要能够分钟级的恢复啊,他是这个是核心场景的保障的一些问题,开开发生命周期正向保障方案,模拟故障注入的反向保障方案,他们也经常会做一些模拟演练啊, 把一些故障注入进去,然后看看我们的这个系统的健壮性的情况是怎么样啊,所以他们这个要求还是非常高的啊,这是一种业务场景,那么第二种业务场景的话,主要是 a b 测试, a b 实验, 那么这个在互联网公公司当中的话是非常多的,因为他们有各种各样的推荐算法,各种各样的引擎和运营的策略,那么他要抽一定的样进行分析啊,进行 看最终这个效果,如果这个效果这个策略比较好的话,那么他再会把这个实验推广到更多的用户,更多的样本啊,他等于是这样啊,所以这个的话呢,他对这个单实验的多维指标这个计算啊,也是 是非常重要的,包括性能啊,对吧?扩展性啊啊,他有各种各样的指标啊,这个诉求也是非常大,那么具体我们就啊就这个就不讲了。场景一啊,他这个就是呃到三十分钟内啊,他必须要能够恢复出来, 他们还是碰到了很多的挑战,这个是 a b 测试的整体的方案。嗯, 好,我们最后的话再来看一下他们这个,呃快手未来这个实时数据仓库的这个规划啊, 呃,他的主要的话呢,就是还是要夯实自建啊,他在这个弗 link 上要继续做一些清晰化的配置,实施数据资产的管理,主要是数据的这个学员呐,包括有一些呃数据字典的稳定呐,他这个都是非常重要,有新的 任务要足够的灵活啊,对吧?当然还有一个呢,就是实施任务发生异常阻断的时候,又能够及时恢复啊,他等于是这样。嗯,那么另外一个的话呢,就是呃降本奇效,因为他们的数据量会非常大,呃, flink 分布时的节点非常多,那么他们就要尽可能 啊,这个任务的动态的扩扩容或者缩容啊,这个对他们来讲是非常重要的,包括单台节点的这个智能作业的这个调度啊,性能问题,这个也是非常重要 啊。最后的话呢,他们也是考虑就是将来就是胡仓一体化,就实时和离线的放在一起啊,增量的进行计算啊,这个就是他们目目前在二零二三年,目前是需要进一步去考虑的 啊。行啊,今天的话呢,就是我跟大家就交流到这,然后主要还是介绍一下快手,再试试数据仓库上面的一些应用的典型的场景和他们到底用怎么用 flink 去解决他们的业务的一些问题。好吧,好,谢谢各位。