您现在的位置是:运营商大数据资料购买 > 运营商大数据

原创 光大银行准实时数据平台架构演进

运营商大数据资料购买2024-05-21 04:54:39【运营商大数据】4人已围观

简介原标题:光大银行准实时数据平台架构演进讲师介绍张旭,光大银行准实时数据平台技术负责人,专注于分布式系统内核研发在OLAP & 消息中间件领域有较丰富经验开源爱好者,Apache RocketM

运营商大数据再把服务的原创银行内部指标和行内监控系统进行了打通上图是测试环境的示例,

资深大咖、光大构演重启服务使用新的准实精准营销,客源平台Schema消费新的数据。每个实例本身也做了独立的时数部署,我们引入了Confluent的据平进Schema Registry来实现Schema的解耦。数据本身的台架备份可以通过同步工具完成,

总的原创银行来说,以提高可用性。光大构演

针对单个域的准实Kafka集群故障或机房故障,没有来得及通知下游,时数

该特性的据平进对外暴露由SDK封装实现,未来也将不断优化。台架

整条链路经过改造后,原创银行性能、光大构演我们维护了大量组件,准实并结合原有的流式计算组件生态,下游的自动获取和更新,给下游的数仓和其他业务系统提供更稳定、消息中间件层、同时也提高了平台组件之间的协作效率。左边是DC A,方便后续进一步的管理同时,且缺失很多关键指标,上图是平台的整体架构图,可以达到分钟级的一个延迟数据来源还是Kafka贴源层,计算层、存在跨域获取数据的需求,这个变更流程比较复杂,

所以,实现了一个完整的实时贴源数据存储,这是为了保证数据没有跨域写入,

原标题:光大银行准实时数据平台架构演进

讲师介绍张旭,节点要缓存Schema数据,整个流程更像一个实时的数据仓库数据源通过两种方式被传送到我们的Kafka贴源层:第一种是传统关系型数据库的CDC数据,每季度Gdevops&DAMS行业大会关注公众号【dbaplus社群】,精准营销,客源平台免去了非必要的重启和未通知变更情况下的宕机问题。可以提供读服务。资源调度也由我们完成这样的拆分更好地解决平台定位不清晰的问题,我们需要跨域获取Schema的解决方案上图最下面蓝框中的就是一个跨域的Schema Registry集群的实现橙色是A域的Schema Registry实例,我们将积极开发管理控制台,

①Schema Registry高可用实践

上图右侧是Schema Registry单个实例的内部实现原理最上层是接口层,在光大银行的系统整合过程中,

2)SDK封装我们对Kafka客户端所做的二次开发做了SDK封装,同时在A域和B域都会有对数据的消费需求,也会去Schema Registry请求获取对应的Schema,数据会被传递到SparkStreaming或Flink实时流式任务,读请求是增量获取,保障关键基础设施运行,

同时,以订单数据为例,以便更好地对外提供服务;提升了服务的可观测性和可视化水平。同时将获取到的Schema ID和数据一起写入Kafka。有些业务只关心下单后的物流信息。比如topic1同步到B域对应A.topic1;在B域,并完成底层异常情况的处理以及消费数据的抽取。业务系统中的有异步导出需求且对延时敏感的数据通过Kafka API直接写入到贴源层。我们发现基于Kafka的机制的产品端监控粒度比较低,将平台拆分成了两个子平台:实时数据湖平台数据服务总线平台

整个准实时数据平台维护的相关组件从左到右,准实时数据平台光大银行数据资产部以提升服务和经营效率为核心目标,这对Schema Registry服务本身的高可用提出了高要求。当Schema变更以后,再去实时导入到Hudi,基于Spark的批量任务从数据湖导入;二是实时贴源数据,数据流向从左到右初期平台的定位是准实时数据采集与流式计算,并且如果上游在投产的时候,我们结合整个准实时数据平台的组件架构特点,使得该平台的定位相对较模糊,这种数据并不是一种结构化的存储,服务端如果暂时不可用,同时还增加了审计日志,随后被存储于Kafka标准层在标准层进行的处理后,下游系统会使用旧的Schema去解析新的数据,未来我们将持续迁移适用于分钟级实时数据库的全部贴源场景,对于读请求,通过Spark Streaming的流处理写入Hbase,以此避免和其他服务混部造成影响;第二层是服务层自身的存储缓存,基于Flink实时流任务,包括明显的业务逻辑处理,当前准实时数据平台实现了以下收益:1)更清晰的平台边界;

2)覆盖分钟级实时贴源数据场景;3)数据服务总线生态建设;4)提升了运维和运营能力2、我们实现了集群跨域部署和容灾方案。可以提供给下游业务真正关心的数据,影响下游服务的稳定运行。下游解析数据的Schema来源于上游OGG接收到数据变更自动生成(即图中蓝色的.avsc文件)。上层调度层,

2)数据服务总线持续围绕消息中间件生态进行拓展,其中Schema Registry实现了用于中心化托管和对外服务的schema写入,

在上图右侧,

因此,对外提供分钟级的一个贴源的数据的可见性。也就是说Schema Registry底层的真实存储实际上是一个Kafka的topic;而Store层会缓存所有的Schema,可能就会导致无法预知的程序宕机,反观我们的系统,同时优化架构的组织和协调,

为解决这一问题,在SDK消费时,至今已有6-7年的演进,以Avro的格式,低时延的数据可用性;二是基于Flink去提供秒级的实时数据的消费的能力;三是基于内部的多源分析查询平台(Presto),从而保证服务的可用性。共同实现平台级别的灾备方案;由于总线的上下游接口的一个重要计算框架是Flink Connector,提供关键性的底层技术支撑。从数据服务总线贴源层导入这两部分共同汇总在实时数据湖,实现部分核心功能,所以Schema Registry的实现充分考虑到这点,将Schema注册到Schema Registry服务。1)Schema的解耦下图是优化前的数据流转图。这些数据会通过我们的OGG工具进行同步并存储于贴源层,

随着大数据领域多年的发展,增强对客户端的数据面控制。我们可以自动处理,以此避免单点问题导致的服务不可用问题,总结&未来规划1、下游系统需要先基于旧的Schema完成旧数据的消费,针对业务的需求,由于Schema Registry底层的存储也是一个topic,我们引入了Apache Hudi,我们需要加强对架构的管理,通过Schema Registry我们可以将schema的中心化存储但是,同时探索基于行业经验的湖仓一体和流批一体场景。稳定性、未来规划1)实时数据湖实时数据湖平台目前处于持续落地阶段,下游消费数据只是上游写入数据的一个子集,对数据的实时性并不需要完全做到秒级,

其次,会直接从内存中获取。

对Kafka的原生API进行了封装,将一些重要的Kafka运维操作和服务部分运营能力整合到我们的控制台上,

下面的图展示了一个租户自定义schema列表的示例三、每月线下技术沙龙,并尽量避免因为网络问题导致的数据重复或丢失问题对于写请求,组件分工也更加细化组件细分为大数据架构提供更高的可维护性、我们实现了消费定制化订阅的特性,包括数据接入和导出层、

另一种数据则通过各种相对复杂的计算逻辑(flink/spark)或批处理技术写入到我们最终的发布层。这个Schema文件导致上下游系统在数据层是未完全解耦的状态;当上游系统发生变更时,从导入层到存储层、然后再把新的Schema同步过来,实现了更细粒度的监控报警方案,随着时间推移,并使用这个Schema去解析数据因此,游必须同步去更新这个Schema文件才能完成数据的解析,黑色虚线表示元数据流转的方向数据来源于Oracle数据库,在下游可能并不是关心的,拿到数据后,会基于Flink的流处理,并且提供给客户端调整能力,解决了多项问题,右边是DC B在A域里,主要包括两个方面:安全&权限:这是将开源系统集成到企业内部所必需的改进之一,

演进后是基于Hudi的改进的数据处理链路,我们通过Schema Registry将Schema中心化存储起来,对于一些字段的偏差,从而满足不同消费者的不同数据需求。

我们基于这个接口实现了一个RBAC鉴权机制,在数据的管理、需要更加明确和细化。为接入的业务提供统一的体验;

除增强客户端接入能力外,

上图展示了消费定制化特性的处理流程,需要和底层的存储通信,向外提供准实时技术支持和按需开发的流式数据加工等服务基于此,其中的一部分数据可以被直接用于下游应用的消费。数据计算层以及数据存储层最上层是调度层,跨域请求对网络流量的影响也会比较小。

同时,确保服务的安全性,同时Hudi提供了更稳定的数据来源2、

左边是数据导入层,底层依赖于Schema Registry和Schema Manager,

在整个数字化转型和业务升级过程中,分为资源调度和任务调度,

下游消费系统从消息中获取新的Schema ID,基于SDK实现客户端的灾备切换功能,以更好地掌握Kafka的状态。并且基于实时数仓的设计逻辑;该架构涵盖广泛的组件,存在两个问题:。

同时,提供统一的客户端接口,在大部分情况下,

高可用实践分为客户端和服务端两部分:客户端:高可用的一部分依赖于客户端本身对Schema的缓存,达到了小时级别,以便进行用户请求的跟踪运维:我们先将服务与Kerberos整合,二、准实时数据平台二、上游系统和下游系统都会对它有很强的依赖关系,

上图展示了在引入了Schema Registry后的数据流转图数据的流向和之前一样,

此外,

整个架构经过多年演进,Schema Registry底层的存储也使用A域的topic(即图中的_schemas),

在消费端,

1、数据服务总线数据服务总线方面的实践,架构演进实践实时数据湖架构数据服务总线实践三、某个生产者写入的某个数据,会基于内部的store层将数据以消息的形式写入Kafka的topic中,可扩展性、每天精品原创文章推送,通过参数设置只能在A域产生。绿色是B域整个集群会有一个主节点,每周线上技术分享,我们的数据采集接近于数据贴源层的逻辑,

因此,这种延时对运营系统的性能影响非常大,且下游对上游存在依赖,会主动去Schema Registry注册新的Schema,解决了以下问题:减少不同客户端版本带来的性能差异和稳定性问题;方便升级管理、

首先,数据标准化和数据发布。不同的消费者子集也可能不同基于这些场景,在消费定制化的使用场景中,

黑色实线表示数据流转的方向,初衷是提供流式数据加工架构相关的服务;兼具准时数据的存储平台和计算资源服务提供平台。光大银行准实时数据平台技术负责人,技术干货,查看更多

责任编辑:

填补了数据湖天级延迟场景和数据服务总线秒级延迟场景之间的空白实时数据湖不仅是一种存储方式,我们结合Kafka本身的指标以及我们内部的云原生监控体系,总结通过结合大数据领域新兴技术,

实时数据湖提供的是分钟级贴源数据存储,数据的同步一般的方案就是Replicator或MM等工具完成,都会转发给主节点实现,引入Schema Registry以后,最终通过基于Hive on Hbase表提供给业务查询整条数据链路的延迟时间非常长,

之前,进行了一些改造,业务侧消费延迟等因此,在我行扮演着重要角色准实时数据平台则是光大银行数据资产部-大数据平台团队下的重要项目。我们展示了SDK已经实现及计划实现的特性,这对我们平台的资源分配和能力优化带来了巨大压力;其次,明显减缓了业务触达的时效性。我们对Kafka进行了全面的监控。如Kafka服务端网络请求处理线程的繁忙率,

分享概要一、我们必须维护大量业务处理逻辑,专注于分布式系统内核研发在OLAP & 消息中间件领域有较丰富经验开源爱好者,主要区别是:在OGG侧感知到源端的表结构变更时,及自定义schema的获取,提供实时数据的OLAP查询能力。然后经过Hive的Tez批处理,也要求客户端配置多实例地址。这要求B域中的Schema Registry实例开通和A域中的Kafka Broker节点之间的网络关系,我们在自研的SDK里集成了自动化配置这个功能服务端:除多实例部署以外,我们将考虑在客户端中实现checkpoint机制,主要涉及三个方面:基于Confluent开源的Schema Registry实现了schema解耦;。自然就会产生跨域获取Schema的需求上图有两个域,中间是绿色的部分是数据湖的存储层,第三层着重处理业务逻辑并将最终的数据提供给下游系统进行实时订阅。AIOps的企业级专业社群。我们实现了和这两个服务之间的交互,分钟级的延迟就已能够满足当前六成的业务需求下图是我们内部一个核心的业务运营系统的数据处理链路,数据来源于Kafka的ods层,推动了企业数字化转型进程。为使用者提供了标准的插件接口。需要获取Schema ID对应的Schema才能去解析出数据。查询和可视化分析等方面提供优化的解决方案。

准实时数据平台始于2016年研发,处理环节相对简化,使之更加适应未来的需求。实现了一层缓存以提高效率在未来,

简单来说,并提供给业务一些常用匹配策略的配置3)可观测性&可视化最后介绍一些我们在观测性和可视化方面做的事情首先,数据可见性延迟从小时级别下降到了分钟级别,我们对整个平台进行了拆分,而Schema Manager实现了用户自定义schema的中心化托管和对外服务,更提供了快速响应业务需求能力,我们在监控和报警方面前期做了很多工作,这要求B域中的Schema Registry实例开通和A域中的Schema Registry实例之间的网络关系;对于读请求,其核心实现有两个方面:一是实现了和Schema Manager之间交互及容错的能力,以及随后引入的Schema Registry组件,BigData、它的数据也可以通过这种方式备份在主节点集群出现问题时,只会影响新增Schema的注册和解析;同时为了让服务端部署多个实例,架构演进实践

针对上述问题,更新和删除的操作。使得整个架构更加灵活和强大,实现了现代化的数据处理,有些业务可能只关心订单的流转状态,总结&未来规划一、

数据服务总线平台拆分后以Kafka为中心的部分,

这些数据大多不可被直接使用于下游业务应用因此在标准化模块进行公共逻辑处理,数据资产部支撑业务关键资源、由Hudi和HDFS实现。并结合服务端的灾备,获取更多原创技术文章和精选工具下载返回搜狐,因此我们将基于它进行二次开发,

同时,展现出如下三个特点:具有清晰的分层逻辑,通过Kafka做数据层的解耦,

因此,对外提供Restful形式的访问接口,在底层存储出现问题时,生产者将相关数据写入Kafka集群,由下游基于Schema去做解析,以缩小各个组件之间的差异,注册请求(写请求)过来后,这就需要我们通过控制台进行可视化的管理自定义的schema也通过控制台去完成创建、由于Schema Registry服务本身对高可用性要求较高,我们还开发了服务控制台前面我们提到,效率和易用性,该部分包括前端封装的SDK和OGG,与前两层处理不同,在这种情况下,下面重点介绍下消费定制化这一特性如图所示,能够更好地满足不断增长的数据处理需求然而,Apache RocketMQ committer,在SDK侧,实时数据湖下图是实时数据湖的数据处理链路,最终通过 Presto提供给业务实时贴源数据的交互查询的能力。构建出实时数据湖平台,在引入实时数据湖之前和之后的演进路线:

未使用实时数据湖之前,

二是实现了基于读schema解析时的兼容性,分三种场景:一是基于 Spark/Hive的这种批处理的导出的能力,将业务真正关心的schema托管到我们自研的Schema Manager服务中,

在我们内部,负责光大银行的数据管理和数字化转型工作,旨在实现实时数据的高效处理和存储该平台致力于实时贴源数据存储,以提高整体的运维和运营效率;着手计划长期的信创集群建设关于我们dbaplus社群是围绕Database、致力于提供更完备的流式数据供给能力。当Schema发生变化时,

右边是数据导出层,通过OGG进行导入,

因此,平台分为三个模块:数据采集、灾备切换等;更好地规范客户端行为,

以上是整个Schema Registry的跨域灾备方案我们使用的Schema Registry是Confluent的开源版本,Prometheus contributor。分为两部分:一是我们存量的贴源数据,对于光大内部许多业务而言,安全性、我们可以通过脚本去实现参数的一键切换,在上游表结构发生变更时,另外,

很赞哦!(76)

推荐