流批一体在京东的探索与实践
摘要:本文收拾自京东高级技能专家韩飞在 Flink Forward Asia 2021 流批一体专场的分享。首要内容包括:
- 全体考虑
- 技能计划及优化
- 落地案例
- 未来展望
点击检查直播回放 & 演讲PDF
一、全测试用例体考虑
提到流批一体,不得不数据处理活动不包括以下提传统的大数据渠道 —— Lambda 架构。它能够有效地支撑离线和实时的数据开发需求,但它流和批两条数数据处理英文据链路分裂所导致的高开发保护本钱以及数据口端到端是哪一层径不共同是无法忽视的缺陷。
经过一套数据链路来一起满意流和批的数据处理需端到端检测异常求是最抱负的状况,即流批一体。此外咱们以为流批一体还存在一些中心阶段,比方只完结核算的共同或许只完结存储的共同也是有重大意义消息队列的优缺点的。
以只完结核算共同为例,有一些数据运用的实消息队列的优缺点时性要求比较高,比方期望消息队列中间件端到端的数据处理延时不超越一秒钟,这对现在开源的、适宜作为流批共同的存储来说是一个很大的应战。以数据湖为例,它的数据可见性与 commit 的距离相关,进而与 Flink 做 checkpoint 的时刻距离相关,此特性结合数据处理链路的长度,可见做到端到端一秒钟的处理并大数据技术与应用不简单。因而关于这类需求,只完结核算共同也是可行的。经过核算共同去下降用户的开发及保护本钱,处理数据口径不共同的问题。
在流批一体技能落地的进程中,面对的应战能够总结为以下 4 个方面:
-
首要是数据实时性。怎么把端到端的数据时延下降到秒等级是一个很大的应战,由于它一起触及到核算引擎及存储技能。它本质上归于功用问题,也是一个长时刻目标。
-
第二个应战是怎么兼容好在数据处理领域现已数据处理工程师广泛运用的离线批处理才干。此处触及开发和调度两个层面的问题端到端,大数据与会计开发层面首要是复用的问题,比方怎么复用现已存在的离线表的数据模型,大数据是干什么的怎么复用用户现已在运用的自界说开测试手机是否被监控发的 Hive UDF 等。调度层面的问题首消息队列遥测传输要是怎么测试抑郁症的20道题合理地与调度体系进行集成。
-
第三个应战是资源及布置问题。大数据是干什么的比方经过不同类型的流、批运用的混合布置来进步资源利用率,以及怎么依据 metrics 来构建弹性伸缩才干,进一步进步资源数据处理能力利用率。
-
最终一个应战数据处理包括数据的收集存储使用也是最困难的一个:用户观念。大多数用户关于比较新的技能理念一般仅限于技能交流或许验证,即使验证之后觉得能够处理实践问题,也需求等待适端到端宜的事务来试水。这个问题也催生了一些考虑,渠道侧必定要多站在用户的视角看待问题,合理地评价对用户的现有技能架构的改动本钱以及用户收益、事务数据处理软件有哪些迁移的潜在风险等。
上图是京东实时核算渠道的全景图,也是咱们完结流批一体才干的载体。中心的 Flink 依据开源社区版别深度定制。依据该版别构建的集群,外部依靠包测试仪括三数据处理包括哪些内容个部分,JDOS测试抑郁症、HDFS/C测试抑郁症的20道题FS 和 Zo端到端是什么意思okeeper。
- JDOS 是京东的 Kubernetes消息队列的作用 渠道,现在咱们一测试切 Flink 核算使命容器化的,都运转在这套渠道之上;
- Flink 的状况后端有 HDFS 和 CFS 两种挑选,其间 CFS 是京东自研的对象存储;
- Flink 集群的高可用是依据 Zookeeper 构建的。
在运用开发方法方面,渠道供给 SQL 和 Jar 包两种方法,其间大数据技术 Jar 的方法支撑用户直接上传 Flink 运用 Jar 包或许供给 Git 地址由渠消息队列面试题道来担任打包。除此之外咱们渠道化的功用也相对比较完善,比方基础的元数据服务、SQL 调试功用,产品端支撑一数据处理方法切的参数装备,以及依据 metrics 的监控、使大数据与会计专业命日志查询等。
连接数据源方面,渠道经过 c消息队列的作用onnector 支撑了丰富的数据源类型,其间 JDQ 依据开源 Kafka 定制,首要运用于大数据场景的音讯行列;JMQ 是京东自研,首要运用于在线体系的音讯行列;JimDB 是京东自研的分布式 KV 存储。
在当时 L消息队列的使用场景ambda 架构数据处理活动不包括以下哪种情形中,假设实时链路的数据存储测试在 JDQ,离线链测试路的数据存在 Hive 表中,即使核算的是同一事务模型,元数据的界说也常常是存在差异的,因而咱们消息队列遥测传输引进共同的逻辑模型来兼容实时离线两头的元数据。
在核算环节,经过 FlinkSQL 结合 UDF 的方法来完结事务逻辑的流批共同核算,此外渠道会供给很多的测试抑郁症的20道题共用 U测试抑郁症DF,一起也支撑用户上传自界说 UDF。大数据与会计专业针对核大数据杀熟算成果的输出,咱们同样引进共同的逻辑模型来屏蔽流批两端的差异。关于只完结核算共同的场景,能够将核算成果别离写入流批各自对应的存储,以保证数据的实时性与从前保持共同。
关于一起完结核算共同和存储共同的场景,咱们大数据技术能够将核算的成果直接写入到流批共同的存储。咱们挑选了 Iceberg 作为流批共同的测试抑郁症存储,由于它具有杰出的架构规划,比方不会绑定到某一个特定的引擎等。
在兼容批处理才消息队列的使用场景干方面,咱们首要进行了以下三个方面的作业:
榜首,复用离线数仓中的 Hive 表。大数据修仙
以数据源端为例,为端到端是什么意思了屏蔽上图左边图中流、批两端元数数据处理方法据的差异,咱们界说了逻辑模型 gdm_order_m 表数据处理包括哪些内容,而且需求用户显示地指定 Hive 表和 Topic 中的字段与这张逻辑数据处理能力表中字段的映射联系。这里映射联系的界说十分重要,由于依据 FlinkSQL 的核算只需面向这张逻辑表,而无需关心实践的 Hive 表与 Topic 中的字段信息。在运转时经过 connector 创建流表和批表的时候,逻辑表中的字段会经过映射联系被替换成实践的字数据处理活动不包括以下哪种情形段。
在产品大数据与会计端,咱们能够给逻辑表别离绑定流表和批表,经过拖拽的方法来指定字段之间的映射联系。这种形式使得咱们的开发方法与之前有所差异,之前的方法大数据技术与应用专业是先新建一个使命并指定是流使命仍是批使命,然后进行 SQL 开发,再去大数据技术指定使命相关的装备,最终发布使命。而在流批一测试抑郁症的20道题体形式下,开端到端加密发形式变为了首要完结 SQL 的开发,其间包括逻辑的、物理的 DDL 的界说,以及它们之间的字段映射联系的指定,DML 的消息队列遥测传输编写等,然后别离指定流批使命相关的装备,最终发布成流批两个使命。
第二,与调度体系打通。
离线数仓的数据加工基本端到端是以 Hive/Spark 结合调度的形式,以上图中居中的图为例,数据的加工被分为 4 个阶段,别端到端是什么意思离对应数仓的 BDM、FDM、GDM 和 ADM 层。随着 Flink 才干的增强,用户期数据处理包括哪些内容望把 GDM 层的数据加工使命替换为 Fl消息队列的作用inkSQL 的批使命,这就需求把 FlinkSQL 批使命嵌入到当时的数据加工进程中,作为中心的一个环节。消息队列原理
为了处理这个问题,除了使命自身支撑装备调度规则,咱们还打消息队列mq通了调度体系,从中承继了父使命的依靠联系,并将使命自身的信息同步到调度体系中,支撑作为下流使命的父使命,然后消息队列mq完结了将 FlinkSQL 的批使命作为原数据加工的其间一个环节。
第三,对用数据处理活动不包括以下哪种情形户自端到端是什么意思界说的 Hive UDF、UDAF 及 UDTF 的复用。
关于现存的依据 Hive 的离线加工使命,假如用户现已开发了 UDF 函数,那么最抱负的方法是在迁移 Flink 时对这些 UDF 进行直接复用,而不是依照 Flink U端到端加密DF 界说重新完结。
在 UDF 的兼容问题上,针对运用 Hive 内置函数的场景,社区供给了 load hive modules 计划。假如用户期望运用端到端自己开发的 Hive UDF,能够经过运用 create catalog、use catalog、create function,最终在 DML 中调用测试你适合学心理学吗的方法来完结, 这个数据处理能力进程会将 Function 的信息注册到 Hive 的 Metastore 中。从渠道办理的视点,咱们期望用户的 UDF 具有必定的阻隔性,约束用户 Job 的粒度,削减与 Hive Metastore 交互以及发生脏函数元数据的风险。
此外,当元信息现已被注册过,大数据修仙期望下次能在 Flink端到端加密 渠道端正常运用,假如不运用 if not exist 语法,一般需求先 drop function,再进行 create 操大数据技术与应用专业作。可是这种方法不测试手机是否被监控够优雅,一起也对用户的运用方法有约束。另一种处理方法是用户能够注册暂时的 Hive UDF,在 Flink1大数据与会计.12 中注册暂时 UD端到端加密F 的方法是 create te端到端是什么意思mporar端到端检测异常y function,可是该 Function 需求完结 UserDefinedFunction 接口后才干经过后边的校测试抑郁症的20道题验,否则会注册失利。
所以咱们并没有运用 create temporary function,而是对 cr测试工程师eate function 做了一些调整,扩展了 ExtFunctionModule,将解析出来的 FunctionDefinition 注册到 ExtFunctionModule 中,做了一次 Job 等级的暂时注册。这样的好处便是不会污染 Hive Metastore,供给了杰出的阻隔性,测试你适合学心理学吗一起也没有对用户的运用习惯发生约束,供给了杰出的体验。
不过这个问题在社区 1.13 的版别现已得到了归纳数据处理活动不包括以下哪种情形的处理。经过引进 Hive 解析器等扩展,现已能够把完结 UDF、GenericUDF 接口的自界说 Hive 函数经过 create temporary function 语法进行注册和运用。
资源占用方面,流处理和批处理是天然错峰的。关于批处理,离线数仓每天 0 点开端核算过去一整天的数据,一切的离大数据技术与应用线报表的数据加工会在第二天上班前悉数完结,所以一般 00:00 到 8:00 是批核算使命很多占用资源的时刻数据处理活动不包括以下段,而这个时刻段一般在线的流量都比较低。流处理的负载与在线的流量是正相关的,端到端是什么意思所以这大数据个时刻段流处理的资源需求是比较低的。上午 8 点数据处理活动不包括以下到晚上 0 点,在线的流量比较高,而这个时刻段批处理的使命大部分都不会被触发履行。
依据这种天然的错峰,咱们数据处理英文能够经过在专属的 JDOS Zone 中进行不同类型的流批运用的端到端是什么意思混部来进步资源的运用率消息队列的作用,而且假如共同运用 Flink 引擎来处理流批数据处理包括哪些内容运用,资源的运用率会更高。
一起为了使运用能够依据流量进行动态调整,咱们还开发了自动弹性伸缩的服务 (Auto-Scali测试英文ng Se测试抑郁程度的问卷rvice)。它的作业测试工程师原理如下测试抑郁症:运转在渠道上的 Flink 使数据处理软件有哪些命上报 metrics 信息到 metrics 体系,Aut消息队列遥测传输o-Scaling Service 会依据 metr大数据查询ics 体系中的一些关键指标,比方 TaskMa大数据与会计专业nage测试英文r 的 CPU 运用率、使命的背压状况等来判定使命是否需求增减核算资源,并把调整的成果反馈给 JRC 渠道,JRC 渠道经过内嵌端到端是什么意思的 fabric 客户端将调整的成果同步到 JDOS 渠道,然后完结对 TaskManager Pod 个数的调整。此外,用户能够在 JRC 渠道上经过装备来决议是否为使命敞开此功用。
上图右侧图表是咱们在 JDOS Zone 中进行流批混部并结合弹性伸缩服务试点测试时的 CPU 运用状况。能够看到 0 点流使命进行了缩容,将资源释放给批使命。消息队列咱们设置的新使命在 2 点开端履行,所以从 2 点开端直到早上批数据处理活动不包括以下哪种情形使命结束这段时刻,CPU测试 的运用率都比较高,最高到 80%消息队列mq 以上。批使命运转结束后,在线流量开端增长时,流使命进端到端是什么意思行了扩容,CPU 的运用率也随之上升。
二、技能计划及优化
流批一体是以 FlinkSQL 为中心载体,所以咱们关于 FlinkSQL 的底层才干也做了一些优化,首要分为维表优化、join 优化、window 优化和 Iceberg c大数据是干什么的onnector 优化几个方面。
首要是维表相关的几个优化。现在社区版别的 FlinkSQL 只支撑部分数据源 sink 算子并行度的修正,并不支撑 source 以及中心处理算子的并行度修正。
假设一个 FlinkSQL 使命消费的 topic 有 5 个数据处理英文分区,那么下流算子的实践并行度是 5,算子之间是 forward 的联系。关于数据量比较大的维表 join 场景,数据处理方法为了进步效率,咱们期望并行度高一些,期望能够灵敏设置它的并行度而不与上游大数据技术的分区数绑定。
依据此,咱们开发了预览测试抑郁症的20道题拓扑的功用,不论是 Jar 包、SQL 使命消息队列遥测传输都能够解析并生成 StreamGraph测试你的自卑程度 进行预览,进一步还能支撑修正分组测试你的自卑程度、算子 chain 的战略、并行度、设置 uid 等。
凭借这个功用,咱们还能够调整维表 join 算子端到端和点到点的区别的并行度,而且将分区战略由 forward 调整为 rebalance,然后把这些调整后的信息更新到 StreamGraph。此外咱们还完结了动态 rebalance 战略数据处理活动不包括以下哪种情形,能够依据 backLog 去判别下流分区中的负载状况,然后挑选最优的分区进行数据分发。
为了进步维表 j数据处理方法oin 的功用,咱们对一切渠道支撑的维表数据源类测试抑郁症型都完结了异步 IO 并支撑在内消息队列mq存中做缓存。不论是原生的 forward 方法仍是 rebala消息队列遥测传输nce端到端是哪一层 方法,都存在缓存失效和替换的问题。那么,怎么进步维表缓存的测试抑郁症命中率以及怎么下降维表缓存淘汰的操作?
以原生的 forward 方法为例,forward 意味着每个 subtask 缓存着随机的维表数据,与 joinkey 的值有数据处理关。对维表的 joinkey 做哈希,就端到端是什么意思能保证下流每一个算子缓存着与 joinkey 相关的、不同的维表数据,然后有效地进步缓存的命中率。
在完结层面咱们新增了一条叫 StreamExecLookupHashJoinRule 的优化规则,而且把它添加到物理 rewrite 的阶段。在最底层的扫描数据 StreamExecTableSourceS大数据技术can 和维表 join StreamExecLookupJoin 之间增加了一个 StreamExecChange 节点,由它来完结对维表数据的哈希操作。能够经过在界说维表 DDL 时指定 lookup.h端到端ash.enable=true 来敞开这个功用。
咱们关于 for测试抑郁程度的问卷ward、rebalance、哈希三种方法敞开缓存,测试你适合学心理学吗进行了相同场景的功用测试。主表一亿条数据去测试英文 join 维表的 1 万条数据,在不同的核算资源下,rebalance 相较于原生的 forward 方法有数倍的功用进步,而哈希相较于 rebalance 的测试工程师方法又有数倍的功用进步,全体作用是比较可观的。
针对维表 join 单条查询效率比较低的问题,处理思路也很简单,便是攒批,依照微批的方法去访问 (mini-batch)。能够在 DDL 的界说中经过设置 lookup.async.batch.size 的值来指定批次的巨细。除此之外,咱们还在时刻维度上引进了 Linger 机制来做约束,避免极端场景呈现迟迟无法攒够一批数据而导致时延比较高的状况,能够经过在 DDL 的界说中设置 lookup.async.batch.数据处理工程师linger 的值来指定等待时刻。
经过测试,mini-batch 的方法能测试够带来 15% ~ 50% 的功用进步。
Interval join 也是出产上一个运用比较频繁的场景,数据处理包括哪些内容这类消息队列的优缺点事务的特色是流消息队列的作用量十分大,比数据处理英文方 10 分钟百 GB 等级。Interval join 两条流的数据都会缓存在内部 state 中,数据处理工程师任意一边的数据到达都会获取对面流相应时刻规模的数据去履行 join function,所以这种大数据处理能力流量的使命会有十分大的状况。
对此咱们选用了 RocksD端到端加密B 来做状况后端,可是进行了调参优化后作用仍不抱负,使命运转一段数据处理方法时刻之后会呈现背压,消息队列的作用导致 RocksDB 的功用下降,CPU 的运用率也比较高。
经过剖析咱们发现,根本原因与 Flink 底层扫描 RocksDB 是依据前缀的扫描方法有关。因而处理思路也很简单,依据查询条件,精确地构建查询的上下界,把前缀查询变为规模查询。测试用例查询条件依靠的详细上下界的 key 变为了 keyGroup+joinKey消息队列mq+namespace+timest大数据杀熟amp[lower,upper],能够精确地只查询某些 timestamp 之间的数据,使命的背压问题也得到了处理。端到端而且数据量越大,这种优化带来的功用进步越显着。
Regular join 运用状况来保存一切历史数据,所以假如流量大也会导致状况数据比较大。而它保数据处理能力存状况是依靠 table.exec.测试手机是否被监控state.ttl 参数,这个参数值比较大也会导致状况大测试抑郁症。
针对这种场景,咱们改为运用外部存储数据处理活动不包括以下哪种情形Ji数据处理mDB存储状况数据。现在只做了 in数据处理英文ner join 的完结,完结机制如下:两头的流对 join 到的数据进行下发的一起,将一切数据以 mini-batch 的方法写大数据专业学什么入到 JimDB,join 时会一起扫描内存中以及 JimDB 中对应的数据。此外,能够经过 JimDB ttl 的机制来完结 tab测试仪le.exec.state.ttl 功用,然后完结对过期数据的清理。
上述完结方法优缺点都比较显着,优点是能够支撑十分大的状况,缺点是现在无法被消息队列 Flin测试用例k checkpoint 掩盖到。
关测试手机是否被监控于 window 的优化,首要是窗口端到端偏移量。需求最早来源于一个线上场景,比方咱们想核算某个指标 2021 年 12 月 4 日 0 点 ~ 2021 年 12 月 5 日 0 点的成果, 但数据处理工程师由于线上集群是东 8 区时刻,所以实践核算的成果是 2021 年 12 月 4 日早上 8 点 ~ 2021 年 12 月 5 日早上 8 点的成果,这明显不契合预期。因而这个功用最早是为了修正非本地时区跨天等级的窗口核算过错的问题。
在咱们增大数据技术与应用加了窗口偏移量参数后,能够十分灵敏地设置窗口的起始时刻,能够支撑的需求也更广泛。
其次,还存在别的一个场景:虽然用户设定了窗口巨细,可是他期望更早看到窗口当时的核算成果,便于更早地去做决议计划。因而咱们新增了增量窗口的功用,它能够依据设置的增测试抑郁程度的问卷量距离,触发履行输出窗口的当时核算成果。
关于端到端实时性要求不高的运用,能够挑选 Iceberg 作为下流的共同存储。可是鉴于核算自身的特性、用户 checkpoint端到端检测异常 距离的装备等原因,或许导致大数据与会计发生很多的小文件。Iceberg 的底层咱们选大数据杀熟用 HDFS 作为存储,很端到端和点到点的区别多大数据杀熟的小文件会对 Namenode 发生较大的压力,所以就有了兼并小文件的消息队列的优缺点需求。
Flink 社区自身供给了依据 Flink batch job 的兼并小文件的工具能够处理这个问题,但这种方法有点重,所以咱们开发了算子等级的小文件兼消息队列重复消费怎么避免并的完结。思路是这样的,在原生的 global co大数据杀熟mmit 之后,咱们新增了三个算子 compactCoordinator、 compactOperator 和 co测试你的自卑程度mpactCommitter,其间 compactC数据处理活动不包括以下哪种情形oordinator 担数据处理包括数据的收集存储使用任获取待兼并的 snap消息队列shot 并下发,co消息队列面试题mpactOperator 担任 snapshot 的兼并操作的履行,而且能够多个 compactOperator 并发履行,compactCommitter 担任兼并后 dataf数据处理能力iles 的提交。
咱们在 DDL 的界说中新增了两个参数,auto-compact 指定是否敞开兼并文件的功用,compact.delta.commits 指定每提交多少次 commit 来触发一次 compaction。
在实践的事务需求中,用户或许会从 Iceberg 中读取嵌套数据,虽然能够在 SQL 中指定读取嵌套字段内部的数据,可是在实践读取数据时是会将包括当时嵌套字段的一切字段都读取到,再去获取用户需求的字段,而这会直接导大数据查询致 CPU 和网络带宽负载的增高,所以就发生了如下需求:怎么只读取到用户真实需求的字段?
处理这个问题,要满意大数据技术与应用两个条件,榜首个条件是读取 Iceberg 的数据结构 schema 只包括用户需求的字段,第二个条件测试抑郁程度的问卷是 Iceberg 支撑按列名去读取数据,而这个自身现已满意了,所以咱们只需求完结榜首消息队列中间件个条件即可。
如上图右侧所示,结合之前的 tableSchema 和 projectFields 信息重构,生成了一个只包括用户需求字段的新的数据结构 PruningTableSchema,而且作为 Iceberg schema 的输入,经过这样的操作完结了依据用户的实践运用状况对嵌套结构进行列裁剪。图中左下部的示例展现消息队列原理了用户优化前后读取嵌套字段的对比,能够看到依据 PruningTablesSchema 能够对无用的字段进行有端到端效的裁剪。
经过上述优化,CPU 运用率下降了 20%~30%。而且,在相同的数据量下,批使命的履行时刻缩短了 20%~30%。
此外,咱们还完结了一些其他优化,比方修正了 interval outer join 数据晚于 wate测试抑郁症rmark 下发、且下流有时刻算子时会导致的数据丢掉问题,UDF 的复用问题,FlinkSQL 扩展 KeyBy 语法,维表数据预加载消息队列mq以及 Iceberg connector 从指定的 snapshot 去读取等功用。
三、落地案例
京东现在 FlinkSQ端到端加密L 线上使命 700+,占Flink总使命数的 15数据处理包括哪些内容% 左右,FlinkSQL 使命累计峰值处理才干超越 1.1 亿条/秒。现在首要依据社区的 1.12 版别进行了一些定制优化。
3.1 案例一
实时通用数据层 RDDM 流批一体化的建设。RDDM数据处理方法 全称是 real-time detail data model – 实时明细数据模型,它触及订单、流量、商品、用户等,是京东实时数仓的重要一环,服务了十分多的中心事务,例如黄金眼/商智、JDV、广告算法、搜推算消息队列的作用法等。
RDDM 层的实时事务模型与离线数据中 ADM 和 GDM 层的事务加工逻辑共同。依据此,咱们期望经过 Flink数据处理包括哪些内容SQL 来完结事务模型的流批核算共同。一起这些事务也具有十分鲜明的特色,测试抑郁症比方订单相关的事务模型都触及大状况的处理,流量相关的事务模型关于端到端的实时性要求比较高。此外,某些特别场景也需求一些定制化的开发来支撑。
RDDM 的完结首要有两个中心诉求:首要它的核算需求相关的数据比较多的,很多的维度数据都存大数据是干什么的储在消息队列的作用 HBase 中;此外部分维度数据的查询存在二级索引,需求先查询索引表,从中测试英文取出契合条件的 key 再去维度表中获取真端到端是哪一层实的数据。
针对上述需求,咱们经过结合维表数大数据技术据预加载的功用与维表 keyby 的功用来进步 join 的效率。针对二级索引的查询需求,咱们定制了 connector 来完结。
维表数据预加载的功用指在初始化的阶段就将维大数据是干什么的表数据加载到内存中,这个功用结合 keyby 运用能够十分有效地削减缓存的数量,进步命中率。
部分事务模型相关的历史数据比较多,导端到端和点到点的区别致状况数据消息队列的使用场景比较大,现在咱们是依据场景进行定制的优化。咱们以为根本的处理计划是完结一套高效的依据 KV 的 statebackend,关于测试用例此功用的完结正在规划中。
3.2 案例二
流量生意黑产的舆情剖析。它的首要流程如下:源端经过爬虫获取相关信息并写入到 JMQ,数据同步到 JDQ 以后,经端到端是哪一层过 Fli端到端加密nk 处理然后持续写下流的测试抑郁症 JDQ。与此一起,经过 DTS 数据传输服务,将上游 JDQ 的数据同步到 HDFS,然后经过 Hive 表进行消息队列重复消费怎么避免离线的数据加工。
此事消息队列的作用务有两个特色:首要,端到端的实时性要求不高,能够接受分钟等级的延时;第二,离线和实时的加工逻辑共同。因而,能够直接把中心环节的存储从 JDQ 换成 Iceberg,然后经过 Flink 去增量读取,并经过 FlinkSQL 完结事务逻辑加工测试用例,即完结了流批两套链路的测试手机是否被监控完全共同。其间 Iceberg 表中的数据也能够消息队列的优缺点供 OLAP 查询或离线做进一步的加工。
上述链路端到端测试抑郁症的20道题的时延在一数据处理活动不包括以下哪种情形分钟左右,依据算子的小文件兼并功用有效地进步了功用,存储核算本钱有了明显的下降,归纳评价大数据是干什么的开发保护本钱下降了 30% 以上。
四、未来规划
未来规划首要分为以下两个方面:
首要,事务拓宽方面。咱们会加大 FlinkSQL 使命的推行,探究更多流批一体的事务场景,一起对端到端是哪一层产品形状进行打磨,加速用户向 SQL 的转型。一起,将渠道元数据与离线元数据做更深度的融合,供给更好的元数据服务。
其次,渠道才干方面。咱们会持续深挖 join 场景和大状况场景,一起探究高效 KV 类型的状况后端完结,并在共同核算和共同存储的结构下不断优化规划,以下降端到端时延。
点击检查直播回放 & 演讲PDF