【CDH国产化替代案例】全面简化架构,降低成本,大幅提升数据处理效率

友情链接:

前言

随着市场快速变化,大数据平台也面临着诸多挑战和变革。对于依赖CDH构建大数据平台的企业来说当前正在面临以下多重挑战:

  • **技术升级:**CDH过往版本在大数据生态服务支持上相对有限,用户在应对新需求和数据处理场景变化时,需要自行扩展技术生态,这将涉及到技术复杂性、兼容性问题以及后续维护挑战,增加了额外的时间和人力投入;
  • **数据安全与挑战:**随着CDH停止更新,其管理面的漏洞和各大数据组件的漏洞修复可能得不到Cloudera官方支持,导致未修复漏洞、遗留代码风险、合规性问题、依赖关系问题以及供应链攻击等安全风险大幅增加;
  • **系统维护挑战:**CDH免费版官方支持的结束意味着企业需要自行维护系统,管理面的漏洞和大数据组件的漏洞修复将无法得到官方支持,导致安全风险大幅增加,增加了运维压力。对于企业来说需要自行应对这些挑战,比如招聘具备大数据维护能力的专业工程师或与第三方服务提供商合作,以便于后续的运维管理;
  • **合规性:**在"十四五"规划中,国家对企业数字化转型升级提出了明确的政策要求,鼓励国内企业积极采用国产技术和产品。然而,CDH大数据技术和生态系统在兼容国产软硬件方面难以满足合规性要求;
  • **本地化服务与稳定性挑战:**随着大数据技术在企业中的应用不断深化,对平台服务的连续性和稳定性保障需求日益凸显。本地化服务供应商能更好地理解企业需求和业务流程,提供定制化解决方案。然而,CDH在本地化服务方面的不足,不利于企业大数据平台的长期稳定运营;
  • ....

综上,CDH国产化替代已迫在眉睫,不仅关乎技术升级和数据安全,也涉及合规性和本地化服务的稳定性。企业需要积极寻求新的技术平台和合作伙伴,以确保在数字经济时代保持竞争力和业务连续性。

项目背景

为了应对数据量的日益增长,在早期,该企业构建了一个基于MPP技术架构的数据仓库。但是在企业日常生产运行过程中,伴随着业务的持续发展以及金融科技基础能力的不断提升,各个信息系统数据量日渐增长,数据应用场景更加复杂化,对于数据的实效性实时性要求更高。

原有的数据仓库架构对于实时场景与多模数据湖场景支持较差 ,并且应金融科技规划的重要举措,急需构建一个**全行级的数据中台服务体系来满足数据应用、数据服务以及数据共享等中台场景,**助力实现完善的客户管理及服务,持续产品创新,极致化的渠道服务体验,科学的决策管理,全面的数字化运营,不断促进企业数字化转型。

因此,该行于近两年着手计划建设一个统一的数据中台体系,数据类系统共享计算和存储资源,使用统一的开发和管理工具,避免系统、功能、应用的重复性建设。

建设目标

  • 搭建数据中台,基于大数据分布式存储与计算的能力,具有可界面化操作,快速引入内部或外部、离线或实时的异构数据,并规范化地构建数据;
  • 可以通过规范建模开发数据,构建指标库,沉淀业务数据知识和数据资产,支持API等多种类型的数据服务;
  • 实现企业级业务能力复用和不同业务板块能力的联通和融合,核心是建设跨域融合数据+数据服务能力开放,从而达到反向业务赋能。

建设成果

基于以上项目背景及建设目标,星环助力该企业打造云原生数据湖+统一数据资产管理整体解决方案,完成了原有开源大数据平台替换,对接企业现有应用与其他平台,助力该企业整体的数字化建设,各项指标性能均超额完成预期目标实现数据处理效率的性能突破:

  • 基于 Rowkey 表(性能增强版)和 ArgoDB Sink API 实现数据高效实时入库,单表数据量达 14 亿+ ,每日增量千万级;
  • 采用 物化视图 2.0快速加工增量数据供加速下游查询,提升数据处理效率;
  • 核心实时报表有160多个登记簿场景报表,每个场景涉及1至10多个复杂SQL的串行查询。采用Gateway 缓存 + Localfast 等技术,指标查询响应时间低至秒级(1-3秒) ,并发能力提升至200+;

技术点实现介绍

Rowkey 表

Rowkey 表是一种优化的数据存储表,通过指定唯一主键来避免数据重复,专为提高数据写入和读取性能而设计。通过设置 rowkey,ArgoDB 实现了高性能的 UPSERT 能力,即在写入时能够直接定位数据行,避免全表扫描,实现快速的整行或部分列更新,确保数据的唯一性。

推出背景

在传统的数据存储方案中,读时合并(MOR)被广泛应用于实现快速数据写入的场景,其原理是通过将新数据追加到 Delta 文件中,而不是直接修改基础数据文件(Base 文件),从而大幅提高了写入速度,有效避免写入过程中对现有数据的直接修改,减少写入锁定和资源争用。

然而,在读取数据时,MOR 机制需要将 Base 文件和 Delta 文件进行合并。这种读时合并操作会显著增加读取时的计算开销,导致查询性能下降,尤其是在数据频繁变更和大量查询请求的场景下。这种高开销的合并操作会拖慢系统响应时间,不利于实时数据访问需求。

为克服传统 MOR 机制的不足,在 ArgoDB 6.0 版本中,星环引入了 Rowkey 表(性能增强版),通过优化数据组织和管理方式,实现了快速写入和高效读取:

Rowkey 分层原理

  • **快速写入:**通过 Slipstream 或 ArgoDB API 等方式将实时数据写入至 Rowkey 表,写入时仅将基础数据文件写入慢读层,无需立即进行去重和合并操作,从而实现实时数据的极速写入;
  • **高效读取:**系统后台自动执行合并操作,将写入的基础数据文件合并去重后转移至快读层。这种分层机制确保读取时无需额外的合并处理,同时结合向量化引擎加速查询,大幅提升查询效率;
  • **一致性选择:**根据业务需求选择不同的读取层来平衡数据一致性和读取性能。例如需要获取最新数据,可以选择从慢读层读取(采用 MOR 策略,可能会有一些合并开销);如果需要读取速度优先,则可以选择从快读层读取,这样可以提供稳定的高性能查询,但数据的最新状态可能存在轻微的延迟,取决于后台合并操作的策略配置。

更多有关建表使用方法详见官方使用手册:Rowkey 表介绍

基于 API 实时入库

ArgoDB Data Sink是一种针对实时数据处理需求而设计的高效数据入库解决方案,通过 API 直接操作物理文件的方式,结合微批处理的逻辑,为复杂的实时数据流和第三方数据源接入提供了高性能和灵活的数据写入方案。

推出背景

在实时数据处理场景中,数据源常常是分布式消息队列(如 Kafka),它能够支持高吞吐量的数据传输。传统的数据处理流程通常涉及将消息队列中的数据消费出来,经过一系列的处理后,转换成 SQL 语句,然后通过数据库的 SQL 引擎执行,将数据最终写入到物理存储中。这种流程虽然通用,但在处理高吞吐量的实时数据时,SQL 引擎的转换和执行可能会成为瓶颈,导致数据处理的延迟。

此外,对某些第三方数据源而言,其数据格式可能并不适合直接转换为 SQL 语句,或者转换的实现较为复杂,甚至有数据损失的风险。在这种情况下,传统的数据处理流程可能无法满足需求。

为了解决这些问题,ArgoDB 推出了 ArgoDB Data Sink,它允许用户绕过传统的 SQL 引擎,直接将数据以 API 的形式写入到 ArgoDB 的物理文件中,并通过微批处理的方式进行数据写入,极大地提升了数据处理的效率和灵活性,适用于下述场景:

  • **高吞吐数据流:**设计用于处理高速数据流,通过微批处理确保数据的快速稳定写入,非常适合实时或近实时的场景;
  • **复杂数据源接入:**提供直接操作物理文件的能力,简化了从复杂数据源到数据库的接入过程,特别是对于难以转换为SQL的数据源;
  • **实时分析:**凭借高效的写入性能和微批处理特性,非常适用于需要快速处理并写入大量数据的实时或近实时数据分析场景,为上层应用提供及时的数据支持;

更多示例代码以及使用注意事项详见官方使用手册:基于 API 实时入库

物化视图 2.0

全新的物化视图 2.0 突破了传统方案的语法限制和 MBO 改写限制,为复杂查询提供了更快、更精准的加速能力。

视图(VIEW)用于保存复杂的 SQL 查询,以便简化后续操作,但其本质仍是执行保存的 SQL 语句,因此无法提升查询性能。为了解决这一问题,ArgoDB 推出了物化视图 2.0,突破了传统物化视图的 MBO 改写限制和对复杂语法支持有限的问题,显著提高数据同步效率,为您提供更快速、更精准的数据查询加速能力。

对比项 物化视图 2.0 传统物化视图
创建支持 无限制 创建语法受限
语法支持 无限制 仅简单语法
查询原理 基于视图查询,系统自动替换为关联的物化表 基于源表查询,系统基于 MBO 改写
更新原理 基于源表最新数据创建新物化表并自动关联,随后删除旧物化表 原地更新(清空表+写入新数据)
结果集匹配 在编译前匹配视图的结果集与其对应的物化表 在执行计划阶段匹配 SQL 查询语句的结果集与物化视图
数据过期表现 不会读到过期数据(自动转查基表) 可能会读到过期数据

更多语法介绍以及使用注意事项详见官方使用手册:物化视图 2.0

Gateway 结果集缓存

Quark Gateway 是连接客户端与 Quark 服务的一个中间件,可帮助均衡 Quark 服务的业务流量,便捷实现查询入口的高可用、自定义路由转发和负载均衡能力。

Gateway 缓存

为提升查询性能,Quark Gateway 引入了结果集缓存功能,通过缓存常用查询结果,显著减少重复查询对 Quark 服务的影响,加快相同查询的响应速度。此外,Quark Gateway 还提供了 TTL(缓存过期时间)、定时刷新等多种缓存更新策略,用户可根据具体任务需求灵活选择最优方案。核心优势:

  • **提升查询效率:**对重复或常规的查询请求进行缓存,显著减少数据处理时间,提升查询响应速率;
  • **降低系统负担:**有效减轻 Quark 服务的处理压力,减少对后端服务的重复查询,系统能够将更多资源集中用于处理更多更复杂的查询请求;

有关如何通过其缓存功能,进一步提升查询性能的使用说明请参考:Gateway 结果集缓存

相关推荐
mmsx1 小时前
android sqlite 数据库简单封装示例(java)
android·java·数据库
武子康1 小时前
大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
java·大数据·数据仓库·hive·hadoop·架构
zpjing~.~2 小时前
Mongo 分页判断是否有下一页
数据库
2401_857600952 小时前
技术与教育的融合:构建现代成绩管理系统
数据库·oracle
秋恬意2 小时前
Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
java·数据库·mybatis
潇湘秦3 小时前
一文了解Oracle数据库如何连接(1)
数据库·oracle
雅冰石3 小时前
oracle怎样使用logmnr恢复误删除的数据
数据库·oracle
web前端神器3 小时前
mongodb给不同的库设置不同的密码进行连接
数据库·mongodb
从以前3 小时前
Berlandesk 注册系统算法实现与解析
数据库·oracle
Muko_0x7d23 小时前
Mongodb
数据库·mongodb