从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践

2023 年 3 月,在阿里云瑶池数据库峰会上,阿里云与飞轮科技正式达成战略合作协议,双方旨在共同研发名为“阿里云数据库 SelectDB 版”的新一代实时数据仓库,为用户提供在阿里云上的全托管服务。
SelectDB 是飞轮科技基于 Apache Doris 内核打造的聚焦于企业大数据实时分析需求的企业级产品。因此阿里云数据库 SelectDB 版也延续了 Apache Doris 性能优异、架构精简、稳定可靠、生态丰富等核心特性,同时还融入了云服务随需而用的特性,通过云原生存算分离的创新架构,为企业带来分钟级弹性伸缩、高性价比、简单易用、安全稳定的一键式云上实时分析体验。
为了更深度的了解阿里云数据库 SelectDB 版,我们可以全面多角度的了解 Apache Doris 的应用实践和经验。

导读:为实现数据资产的价值转化以及全面数字化、智能化的风险管理,无锡锡商银行大数据平台经历从 Hive 离线数据仓库到 Apache Doris 实时数据仓库的演进,目前已接入数百张实时表、上百数据服务接口 ,接口 QPS 达到数百万级别,解决了离线数据仓库时效性不足、成本高昂、效率低下等问题,查询提速超 10 倍,为用户提供及时、有效、安全的数据服务及使用体验。

面对大数据、物联网、人工智能等新兴技术给金融行业带来的变革,无锡锡商银行将科技能力和大数据能力的发展放在重要位置。为实现数据资产的价值转化以及全面数字化、智能化的风险管理,基于“业务线上化、风控数据化、架构平台化”三翼一体的科技布局,无锡锡商银行建立了大数据平台,以管理每日流入的海量交易记录与信贷申请数据,借助用户画像、实时报表、实时风控等应用,为用户提供更加及时、有效、安全的数据服务及使用体验。

无锡锡商银行大数据平台经历了基于 Hive 离线数据仓库到基于 Apache Doris 的实时数据仓库演进。通过架构的升级,解决了离线数据仓库时效性不足、成本高昂、效率低下等问题,实现查询速度 10 倍提升,使得银行能够更快感知客户行为,及时洞察异常交易行为、识别和预防潜在的风险。本文将详细介绍无锡锡商银行大数据平台演进历程以及 Apache Doris 在实时查询、营销服务、风控服务等场景的落地实践。

基于 Hive 的大数据离线数据仓库

01 需求场景

无锡锡商银行早期建设了大数据离线数据仓库,主要服务于数据报送、数据风控、数据运营、即席查询及日常取数等场景,需求场景包括且不限于:

  • 数据报送:客户风险、EAST 报送、1104、大集中、征信报送、利率报备、反洗钱、金融基础数据报送等。
  • 数据风控:包含对贷款类风控指标、用户行为指标、反欺诈、贷后预警、贷后管理等风险控制。
  • 数据运营:对 BI 业务报表、管理驾驶舱、行外渠道和行内各系统进行定时批量供数。
  • 即席查询及日常取数:根据业务需求进行数据分析、数据开发及数据提取。

02 架构及痛点

在早期离线数据仓库中,数据主要来源于 Oracle、MySQL、MongoDB、Elasticsearch 以及文件。通过使用 Sqoop、Spark、外部数据源和 Shell 等工具,将数据离线抽取到 Hive 离线数据仓库中,并在 Hive 中通过 ODS、DWD、DWS 和 ADS 分层处理,最终输出结果为应用服务层提供支持。

架构及痛点.PNG

近些年,随着无锡锡商银行业务的发展与扩张,相关业务部门对数据处理的要求也越来越高,离线数据仓库已无法满足新的需求,主要体现在:

  • 数据时效性不足:离线数据仓库使用离线抽取的方案,数据时效性为 T+1,而报表、数据大盘、营销指标、风控变量要求数据实时更新,当前架构无法满足。
  • 数据查询效率低:需满足秒级别、毫秒级的查询响应。离线数据仓库执行引擎主要是 Hive 及 Spark,Hive 执行时会将查询分解为多个 MapReduce 任务,并需读取和写入 HDFS 中的数据,执行时长一般为分钟级别,严重影响查询效率。
  • 维护成本高:离线数据仓库底层涉及技术栈繁多 ,包括 LDAP、Ranger、ZooKeeper、HDFS、YARN、Hive、Spark 等多个系统,这将导致较高的系统维护成本。虽然线上也有 HBase + Phoenix 的实时存储与服务,但由于其组件比较“重”、社区不活跃,且某些特性无法满足实时场景需求,仍然不能完全解决当前的问题。

技术选型

面对离线数据仓库时效性不足、查询效率不高,多个技术栈带来的维护成本高等痛点,实时数据仓库的构建势在必行。在对多个 MPP 数据库进行深入的调研后,无锡锡商银行决定以 Apache Doris 为核心构建实时数据仓库平台。这一技术选型旨在确保平台在数据写入、查询及服务层面均能满足实时业务分析的高要求。选择 Apache Doris 的理由如下:

  • 高效数据更新: Apache Doris Unique Key 支持大批量数据更新、小批量数据实时写入以及轻量化表结构的修改。尤其在处理大量数据和分区时,能够有效避免庞大的修改量和修改不准确的问题,从而提供更加便捷实时的数据更新。
  • 低延时实时写入: 支持秒级别的数据实时写入、更新和删除;支持主键表模型写时合并,可实现微批高频实时写入;并且支持主键模型 Sequence 列设置,可保证数据导入过程中的有序性。
  • 查询性能优异: Apache Doris 多表 Join 能力强大,依托向量化执行引擎、CBO 查询优化器、MPP 架构、智能物化视图等功能,能够实现海量数据的毫秒级查询响应,满足即查即走的数据查询要求。同时 Apache Doris 2.0 版本支持行列混存,在点查询场景可以实现数万并发的毫秒级响应。
  • 平台极简易用: 兼容 MySQL 协议,并提供丰富的 API 接口,能够降低上层应用的使用难度。同时,Apache Doris 架构精简,只有 FE 和 BE 两进程,节点扩缩容简单、集群管理和数据副本管理均支持自动化,具备部署简单、使用成本及运维成本低的特点。

引入 Apache Doris 搭建大数据实时数据仓库

2022 年 4 月,无锡锡商银行引入 Apache Doris 构建实时数据仓库平台。考虑到银行数据规模非常庞大,接入实时数据的同时,再从业务库同步全量历史数据难度较大,因此,初期实时数据搭建主要依托于离线数据。

首先,采用 HDFS Broker 方式高效初始化历史实时数据;同时,借助采集工具 DataPipeline 将数据实时采集至 Kafka 集群中,再由 Flink 写硬编码模式将数据实时写入 Apache Doris 中。最后,借助飞流平台的接口服务能力,将 Apache Doris 作为统一存储与查询引擎,为各业务线提供服务。

飞流平台是无锡锡商银行为应对未来实时业务场景而构建的统一综合平台,主要包含实时采集、实时同步工具、实时数据仓库、实时计算以及数据服务。

引入 Apache Doris 搭建大数据实时数据仓库.png

01 完善数据流转链路

从银行数据特性出发,结合 Apache Doris 功能优势,无锡锡商银行重新思考并完善了数据流转链路:

  • 从离线数据仓库同步历史数据,风险最小化: 文提到,由于银行数据的庞大规模,如果直接从 Oracle 与 MySQL 同步全量历史数据,会导致大量数据流经过防火墙和交换机,引发其他业务请求阻塞和服务超时等问题。为了避免这些潜在的风险和问题,首先基于 Oracle 与 MySQL 批量构建 Doris 表结构,然后使用 HDFS Broker 从离线数仓 Hive ODS 层同步 T-1 全量数据到 Doris 中,从而实现风险最小化。
  • 实时增量抽取,更安全抽取模式: 实时抽取会产生极少量的磁盘 IO、内存、CPU 消耗,为了避免对业务主库有影响,默认认情况下,一般会选择从业务从库或同城灾备库实时抽取。而针对时效性要求较高的业务需求,需要充分评估才能从业务主库抽取数据。
  • 构建 Kafka 层,保证数据一致性: 建立 Kafka 层作为数据中间传输层,以确保数据的有序性和一致性。通过将 Datapipeline 发送的数据的 Key 配置为 Database-Table-PK,并按照同一个维度有序地发送到 Kafka Topic 的某个分区(Partition)。由于 Kafka Topic 各自分区内部是有序存储的,因此下游的消费者可以按照顺序处理数据,避免乱序情况对实时数据仓库数据准确性的影响。此外,Kafka 层可作为数据公共层可开放给营销类、风控类业务等场景使用。
  • 数据实时写入,保证数据不丢不重: 在实际应用场景中,离线链路在 T-1 日的晚上 11 点至早上 6 点进行数据离线跑批,在 T 日 10 点借助 HDFS Broker 方式进行表历史数据初始化。实时链路使用 Flink 直接指向 T-1 的晚上 10 点消费 Kafka Topic ,进行实时数据同步,而在实时消费过程中会出现部分重叠数据。为应对该问题,选用 Apache Doris 的 Unique Key 模型(该模型支持数据幂等性),该模型可快速覆盖重叠数据;并使用 Flink-Doris-Connector 完善实时数据仓库链路,以保证实时数据同步不丢不重。

02 灵活的数据服务

为了提供精准、高效的查询响应,无锡锡商银行采取了以下三种方式来实现数据服务:

  • 离线数据查询:针对离线需求,需要对数据进行快速查询。无锡锡商银行将数据定期从离线数据仓库导入到实时数据仓库 Doris 表中。这样可以在实时数据仓库中快速查询,满足离线数据分析和决策的需求。
  • 简单实时需求:对于不复杂的实时需求,无锡锡商银行利用 Apache Doris 的高效查询能力,在"飞流"平台上提供了直接配置数据服务接口的能力,用户可基于实时数据仓库 ODS 层的 SQL 进行手动配置。通过这种方式,可以快速满足简单实时数据查询的需求。
  • 复杂实时需求:对于复杂的实时需求,无锡锡商银行采用实时 Kafka 数据流和 Flink 轻度计算的方式,将数据流写入实时数据仓库的 DWD 层表中,在"飞流"平台上基于明细表的 SQL 进行再次聚合,并手动配置数据服务接口,以满足复杂实时数据查询的需求。

面向更多样化的服务场景

01 BI 报表秒级查询响应

无锡锡商银行基于 Apache Doris 满足了当日数据分析、日常取数以及 BI 实时报表等多种场景需求,查询响应时间大大缩短,能够在 1 秒内返回查询结果,极大降低了数据分析师的等待成本和服务器资源的消耗。

比如,在 BI 实时报表方面,无锡锡商银行建立实时贷款数据表、实时存款数据表、账户时点余额表等多种报表。这些报表平均 SQL 代码行数为 253 行,平均响应时间为 1.5 秒。另外,通过优化查询性能和数据模型设计,无锡锡商银行能够在较短的时间内生成准确的实时报表,为业务决策提供及时的数据支持。

02 支持个性化营销方案

在营销类数据服务方面,无锡锡商银行基于 Apache Doris 丰富客户标签、完善客户精准画像,开展了资产净增活动、艺术家盲盒活动等多种营销活动。通过实时数据的分析,银行能够及时观察活动用户的转化情况,并及时调整运营圈选策略,实现从“千人一面”到“千人千面”的个性化营销。

比如,在资产净增活动和艺术家盲盒活动等营销活动中,无锡锡商银行利用 Apache Doris 实时数据仓库的能力,不断收集、分析和反馈活动数据。通过实时观察用户的转化情况,及时调整运营圈选策略,确保人员和活动之间的匹配度。这种个性化的营销策略使得银行能够更好地满足客户的需求,提升参与度、响应率以及用户粘性。

03 高效的风险识别与控制

Apache Doris 的引入,使得无锡锡商银行能够更快计算出风控特征变量、异常交易行为。以新用户注册为例,当用户填写资料时,系统可以基于实时的风控特征变量,快速判断审批策略结果,及时优化策略模型,保证审批的质量和准确性。

无锡锡商银行还能够及时识别和预防潜在的风险。例如,对于短时间内大量交易、异常交易金额等交易数据,银行可以实时收集并进行监测,以及时发现异常交易行为和欺诈行为。通过实时数据分析,银行可以快速识别潜在的风险,并采取相应的措施进行预防和应对。

另外,无锡锡商银行还利用 Apache Doris 实时数据仓库对客户的信用历史和信贷申请信息进行实时分析。通过快速判断客户申请金额是否符合其还款能力,银行可以及时作出风险评估和决策,从而有效控制信贷风险。

04 七日交易流水表的数据自动更新

在实际应用场景中,交易流水表的数据量非常庞大,涉及交易序号、交易日期、交易类型、交易金额等数据。为确保数据的及时更新,无锡锡商银行选择采用 Apache Doris 动态分区表的特性。该特性可以自动创建分区,并自动删除超过七天的交易流水数据,以实现七日交易流水表的数据自动更新。具体的操作包括以下步骤:

  • 以业务日期构建伪列作为联合主键;
  • 当 ID 数据进行tran_date跨天更新时,代码进行回表操作;
  • 找到数据在 Insert 与分区表中对应的 Date 值,并拼接成 Update Json 更新入库。

七日交易流水表的数据自动更新.png

借助 Apache Doris 动态分区分表特性,不仅能够保证底层主键和服务器稳定运行,还能够自动更新并只保留七天流水交易数据以供分析师查询,并满足百万 QPS 下 1.5 秒查询响应需求

05 高并发点查询

早期营销类与风控类应用场景主要依赖两套 HBase 集群以支持点查服务,然而在实际应用中,会遇到诸如 Master / Regionserver 异常退出、RIT 等问题。为避免该问题,可利用 Apache Doris 高并发点查能力,并在创建 Unique Key 表时,启用 Merge-on-Write 策略,使得主键点查能够经由简化的 SQL 执行路径完成,仅需一次 RPC 即可完成快速的查询响应。

最终通过在三台节点上进行压力测试,在为每台节点配置了 8C、10GB 的情况下,获得了以下显著收益:

  • 在单表包含 5000 万数据的查询场景中,QPS 高达 2.5 万;
  • 在涉及 5000 万数据的多表读写场景中,QPS 同样达到 2 万;
  • 复杂 SQL 查询的稳定性也保持在 QPS 2.5 万的高水平;
  • 在多表实时读写场景中,QPS 亦能稳定在 2.5 万。

结束语

目前 Apache Doris 在无锡锡商银行已经接入数百张实时表、上百数据服务接口 、接口 QPS 达到数百万级别。此外,Apache Doris 作为统一查询网关,显著提升了历史数据分析的效率,与原来分钟级响应时间相比,查询提速超 10 倍。

未来,无锡锡商银行将持续发掘 Apache Doris 优势,并推进其在实时场景中更深度的应用。

  • 在性能表现上:进一步优化高并发点查询、自动分区分桶、执行引擎等能力,以提升数据的查询响应效率;
  • 在负载均衡上:构建双集群,实现架构负载均衡;同时,将完善架构预警与熔断机制,保障业务运行不间断;
  • 在集群稳定性上:实现 Apache Doris 集群的“分工协作”,使其各自承担实时数据仓库的计算与存储、数据服务加速查询等任务,进一步提高系统的稳定性及可靠性。
相关文章
|
3月前
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
132 4
|
10天前
|
存储 运维 监控
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
中信银行信用卡中心每日新增日志数据 140 亿条(80TB),全量归档日志量超 40PB,早期基于 Elasticsearch 构建的日志云平台,面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此使用 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
|
2月前
|
存储 SQL Apache
Apache Doris 创始人:何为“现代化”的数据仓库?
3.0 版本是 Apache Doris 研发路程中的重要里程碑,他将这一进展总结为“实时之路”、“统一之路”和“弹性之路”,详细介绍了所对应的核心特性的设计思考与应用价值,揭晓了 2025 年社区发展蓝图
Apache Doris 创始人:何为“现代化”的数据仓库?
|
6月前
|
消息中间件 运维 Kafka
Apache Flink 实践问题之达到网卡的最大速度如何解决
Apache Flink 实践问题之达到网卡的最大速度如何解决
66 2
|
3月前
|
存储 数据挖掘 数据处理
巴别时代使用 Apache Paimon 构建 Streaming Lakehouse 的实践
随着数据湖技术的发展,企业纷纷探索其优化潜力。本文分享了巴别时代使用 Apache Paimon 构建 Streaming Lakehouse 的实践。Paimon 支持流式和批处理,提供高性能、统一的数据访问和流批一体的优势。通过示例代码和实践经验,展示了如何高效处理实时数据,解决了数据一致性和故障恢复等挑战。
143 61
|
3月前
|
存储 消息中间件 分布式计算
Cisco WebEx 数据平台:统一 Trino、Pinot、Iceberg 及 Kyuubi,探索 Apache Doris 在 Cisco 的改造实践
Cisco WebEx 早期数据平台采用了多系统架构(包括 Trino、Pinot、Iceberg 、 Kyuubi 等),面临架构复杂、数据冗余存储、运维困难、资源利用率低、数据时效性差等问题。因此,引入 Apache Doris 替换了 Trino、Pinot 、 Iceberg 及 Kyuubi 技术栈,依赖于 Doris 的实时数据湖能力及高性能 OLAP 分析能力,统一数据湖仓及查询分析引擎,显著提升了查询性能及系统稳定性,同时实现资源成本降低 30%。
Cisco WebEx 数据平台:统一 Trino、Pinot、Iceberg 及 Kyuubi,探索 Apache Doris 在 Cisco 的改造实践
|
3月前
|
存储 SQL NoSQL
Doris数据仓库介绍
Doris数据仓库介绍
1214 14
|
4月前
|
存储 小程序 Apache
10月26日@杭州,飞轮科技 x 阿里云举办 Apache Doris Meetup,探索保险、游戏、制造及电信领域数据仓库建设实践
10月26日,由飞轮科技与阿里云联手发起的 Apache Doris 杭州站 Meetup 即将开启!
87 0
|
6月前
|
数据采集 分布式计算 Kubernetes
Apache Flink 实践问题之ZooKeeper 网络瞬断时如何解决
Apache Flink 实践问题之ZooKeeper 网络瞬断时如何解决
145 4
|
2月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
363 33
The Past, Present and Future of Apache Flink

热门文章

最新文章

推荐镜像

更多