华为云数据库首席专家谈分布式数据应用挑战和发展建议

yizhihongxing

摘要:本文分析了分布式数据库发展情况、分布式数据库应用的主要问题,从行业应用的角度给出了分布式数据库发展的建议。

本文分享自华为云社区数字化转型下我国分布式数据库应用挑战及发展建议》,作者:数据库领域科学家、华为云数据库GaussDB首席专家 冯柯。

当前,金融等重点行业都在进行数字化转型,而分布式数据库作为数据承载工具,为数字化转型提供了有力的支撑。分布式数据库近年来发展迅猛,在产品成熟度上有了很大提升,但在行业应用和生态建设上仍有很多挑战。本文分析了分布式数据库发展情况、分布式数据库应用的主要问题,从行业应用的角度给出了分布式数据库发展的建议。

一、发展情况

过去三十年,以金融业为代表的核心信息系统架构依托IOE(即IBM、Oracle、EMC)技术,构建了一套集中、专用、封闭的稳态技术体系。但是,随着互联网及云化时代的到来,企业业务架构产生巨大变化,以银行为代表的金融业需加速构建敏态体系,推动底层数据库的分布式改造和互联网金融业务创新。分布式数据库具有满足行业关键应用的高扩展性、高性能、高可用性及软硬件解耦等特性,是金融等重点行业信息系统数字化转型的基石。

(一)产品成熟度提升

随着分布式数据库在金融等重点行业的不断应用,产品成熟度得到很大提升。一是新技术的不断发展使得分布式数据库在自身固有的优势领域,如扩展性、高可用等方面进一步强化,已有多个应用在重点行业核心业务中落地。二是国产分布式数据库的性能已经实现了与其他商业数据库持平甚至超越,这在多个大型企业机构产品准入测试及业内国际基准测试(如在线交易场景TPCC、在线分析场景TPCH等)中得到充分证明,可对行业核心业务起到重要的支撑作用。三是更多厂商开始提供对主流国产分布式数据库的功能支持,产品的兼容性取得显著进展。管理控制软件、迁移工具等配套设施逐渐完善,极大地降低了数据库的使用门槛和迁移成本。

(二)生态逐步完善

一是加快推动分布式数据库在重点行业落地,主流分布式数据库厂商纷纷与众多大型银行、企业等开展联合创新活动,取得了许多突破性的成果。以某厂商的分布式数据库为例,在与大型商业银行的联创过程中,已完成10个以上业务系统的分布式数据库替换,覆盖银行A类到C类全场景业务。二是通过一站式的迁移解决方案,实现以较小的业务改造工作量从传统数据库向分布式数据库转型,迁移成本相对较低。而且使用分布式数据库后,业务系统运行稳定,可靠性和扩展性有所增强,从各项指标看,已基本具备承接Oracle及DB2大机下移的能力。三是分布式数据库相关的行业标准和评价体系逐步健全,对产品发展起到较强的规范引领作用。

(三)总体发展情况向好

当前国产分布式数据库已经渡过了“能用”阶段,正在迈向“好用、易用”阶段。横向来看,我国分布式数据库的发展基本与国际同步,tpcc、sysbench等性能指标和RTO、RPO等可靠性指标甚至具有优势,在应用领域取得些许领先。纵向来看,以金融业为例,分布式数据库应用取得较大进展,不管是在互联网新核心业务,还是传统核心业务中,分布式数据库行业应用落地数量大幅增加,有逐步替代集中式数据库的趋势。

二、面临的主要问题

(一)主体改造意愿不强,行业实践尚不充分

一方面,原有数据库系统改造为分布式数据库,对用户及应用单位提出了较高的要求。改造所面临的成本问题,以及改造完成后分布式运维实施的复杂性,使得部分金融机构对于全面应用分布式还存在有一定的疑虑,主动改造意愿不强。另一方面,分布式数据库在行业典型应用场景中的落地仍处于摸索阶段。由于部分项目中存在一定的需求定制化,应用解决方案与产品的边界不够清晰,产品的规模化复制能力仍有待加强,行业最佳实践相对缺乏。这些因素也影响了金融机构对迁移采用分布式数据库技术的积极性。

(二)分布式数据库的生态建设仍需加强

生态建设是当前我国基础软件相对薄弱的一环,特别是对分布式数据库厂商而言,虽然在实现技术和产品方面实现突破,但在生态建设方面仍需积极应对投入转化慢、门槛高、市场接受程度低等挑战。一方面,部分产品的技术体系相对封闭,用户无法从市场快速获取合格的开发运维人员,导致业务改造及生产运维仍严重依赖原厂,规模化复制效应较差。另一方面,部分产品的开放性仍有待提升,与其他平台数据互联互通的能力不足在客观上造成了业务“上车容易下车难”的现实困境,增加了用户被锁定的风险。

(三)可持续发展的盈利模式需进一步探索

我国数据库的发展可以追溯到30多年前,在这样一个相对较长的发展周期内,技术和产品都取得了显著进展,但在产业化方面,知识产权的保护不够充分等诸多问题造成部分参与主体的市场化盈利能力较弱,产业整体规模难以做大。分布式数据库虽然已取得了一定进展,但“池子深才能养大鱼”,如何依托当前政策窗口,真正形成可持续发展的商业模式,还需进一步探讨。

三、行业的应用建议

尽管存在一些问题,但我们坚信分布式是数据库未来的发展趋势。如果将分布式数据库和单机数据库类比为“高铁”和“轿车”,因两者定位不同,期望“高铁”像“轿车”一样简单易用既不现实也不科学。所以应避免将分布式数据库的应用简单地理解为对单机或者集中式数据库的一对一替换,而要深入考虑如何充分发挥分布式数据库的技术优势。遵循以上思路,我们对于分布式数据库在金融等重点行业的应用提出以下几点建议:

(一)通过技术创新和最佳实践,推动行业应用不断深入

一方面,要探索利用人工智能等新技术提升产品服务效能。

人工智能技术可实现自动数据分区规划、故障自动诊断和自愈、自动负载均衡、面向混合负载的自调优等功能。目前人工智能技术在分布式场景已经有了一些单点突破,但距离全场景落地、实现整体成本的全面降低还有很长的一段路要走,需要继续加以积极的行业引导,推进技术交流和产业落地。

另一方面,需充分发挥好示范项目效应。

在金融等重点行业典型应用场景如分布式架构设计、多地多中心容灾等,形成最佳解决方案,并在行业推广落地。在此过程中,提炼出更适合分布式数据库的开发、运维、硬件建设等相关要求,研究制定数据库开发、运维、应用方面的标准规范,提高行业的标准化水平,引导各参与主体规范应用分布式数据库,推进行业转型。同时应约束不必要的定制化需求,减少无序竞争,实现技术聚焦。

(二)积极推进生态建设,发挥产业引领作用

从软件发展历史看,生态建设是基础软件产业化的重要一环。任何一款商业上真正成功的软件产品,无一不是生态建设上获得广泛认可的成功案例。

首先,充分发挥产业联盟桥梁纽带作用,推动产业发展。在行业内积极进行资源引流,逐步提升技术营运效率及影响力,搭建高端对话平台,促进分布式数据库应用方、应用开发方及厂商更好地交流,共同面对分布式转型下的业务及技术挑战,推进行业生态繁荣;加强与分布式中间件、分布式服务框架的合作与交流,通过开源、社区等形式建立广泛的赋能体系;鼓励应用软件厂商全面向分布式架构转型,建立相应的培训体系和检测认证体系。

其次,完善技术生态,鼓励引入第三方软件垂直提供商。在运维管控、工具端以及解决方案层面实现更多差异化的平台能力,加厚行业整体的技术底盘;鼓励第三方产品服务化和上下游集成,推进各产品的互联互通,打造良好技术生态,促进行业健康发展。

再次,建立基础软件开放生态体系,推动开源建设。应鼓励有研发实力的厂商基于国产开源数据库做发行商,有运维能力的厂商基于优质的国产数据库打造适用于自主可控要求的数据库解决方案。数据库厂商和合作伙伴应基于数据库代码开源、产品开放等形式,使数据库产业从封闭商业生态走向产业共赢的开放生态,共同打造开放的数据库生态体系。

最后,进一步推进政产学研合作,加强人才储备。明确人才发展战略,梳理多层次行业人才资源地图。加强厂商与各科研院所合作,推进高校在包括数据库在内的基础软件方面专业投入,鼓励有条件的厂商和高校开展课程共建、实践共建,为联合推进分布式数据库关键技术在理论和实践层面的难点问题攻关储备智力资源。

(三)全面拥抱云,开展行业可持续发展的尝试与探索

数据库上云已逐步成为产业共识。发展云数据库,不仅是对技术和产品的重要升级,更是对数据库良性健康发展的商业模式有益探索,对于实现主体可控、支撑行业长期稳定发展具有重要的现实意义。分布式数据库与单机数据库不同,需要更大的集群规模才能实现资源的更有效利用。分布式数据库与云计算是天然伴生关系,通过云化部署,能够帮助分布式数据库扬长避短,充分发挥分布式数据库在扩展性、资源调度方面的灵活性和优势,在提升资源利用效率同时,显著降低运维成本,实现真正业务价值。

一是云化基础设施可以通过智能调度、运维系统高效管理更为丰富的应用,并通过多云及边缘计算将应用扩展到多种场景中。

二是软硬协同可为应用提供更好的性能,提升应用隔离性等。

三是云数据库和云基础设施结合,如利用云基础设施本身的能力实现数据库的跨数据中心访问等,可使存储具备理解、预处理数据库语义的能力。

基于以上,一是建议扩大云数据库在金融行业的应用规模。

云数据库已经在互联网、电子政务等各行业得到了广泛应用,在金融行业的应用及推广也在稳步推进中。应引导重点用户单位与厂商尝试在行业落地云数据库及云平台,鼓励技术共创,共同探索基于现代云平台的分布式数据库运维及业务开发体系。

二是建议推进行业云发展以提高行业标准化程度。

在满足合规营运的前提下,应实现底层基础设施共享,降低中小用户对于分布式数据库的使用门槛和人才需求,减少重复投资,实现集约化营运,充分发挥分布式数据库的规模化优势。厘清各参与主体运营职责与边界,依托业内现有的成熟云平台技术,形成一个或若干个云技术底座,鼓励传统非云数据库厂商根据自身产品技术特点完成与云平台的对接,最终形成行业的云上产品集市,逐步简化并统一运维及交付界面,降低行业应用门槛,提高行业标准化程度。

 

点击关注,第一时间了解华为云新鲜技术~

原文链接:https://www.cnblogs.com/huaweiyun/p/17385617.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:华为云数据库首席专家谈分布式数据应用挑战和发展建议 - Python技术站

(0)
上一篇 2023年5月9日
下一篇 2023年5月10日

相关文章

  • mysql报错1033 Incorrect information in file: ‘xxx.frm’问题的解决方法

    当MySQL服务启动的时候,有可能会遇到一个报错“1033 Incorrect information in file: ‘xxx.frm’”,这个错误的原因是MySQL系统表文件出现了问题。这个错误的解决方法比较简单,下面我们详细讲解。 步骤一:删除表文件 首先,我们需要找到MySQL系统库保存表文件的目录,一般在 /var/lib/mysql/ 这个文件…

    MySQL 2023年5月18日
    00
  • MySQL系列之十一 日志记录

    关于“MySQL系列之十一 日志记录”的完整攻略,我会分享以下内容: 1. 什么是日志记录 MySQL的日志记录是指记录数据库的运行过程和操作行为。通过日志记录可以更好地了解数据库的运行状态、故障排查等功能。 MySQL主要有4种日志记录:- 错误日志(error log)- 查询日志(query log)- 慢查询日志(slow query log)- 二…

    MySQL 2023年5月18日
    00
  • C++使用MySQL-Connector/C++连接MySQL出现LNK2019错误的解决方法

    解决 “LNK2019” 错误需要了解该错误的含义。LNK2019意味着出现了未解析的外部符号,它指的是无法在链接阶段找到符号引用的实现。在使用MySQL-Connector/C++连接MySQL的过程中,可能会出现这种类型的错误。本文将介绍一些解决方法。 一、检查MySQL-Connector/C++的版本 在使用MySQL-Connector/C++连接…

    MySQL 2023年5月18日
    00
  • 关于 MySQL 嵌套子查询中,无法关联主表字段问题的折中解决方法

    今天在工作中写项目的时候,遇到了一个让我感到几乎无解的问题,在转换了思路后,想出了一个折中的解决方案,记录如下。 其实,问题的场景,非常简单: 就是需要查询出上图的数据,红框是从 项目产品表 中查询的2个字段,绿框是从与项目产品表关联的 文章表 中查询出的1个字段。我希望实现的效果是,获取到项目产品对应的文章提交人数,即该项目产品,有多少人提交了文章。看似很…

    MySQL 2023年4月12日
    00
  • Mysql怎么指定某个字符串字段前面几位排序查询

    今天小编给大家分享一下Mysql怎么指定某个字符串字段前面几位排序查询的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 指定某个字符串字段前面几位排序查询 数据样例 想要结果:  每个test_value 里面都包含 ORDER 关键字, 想根据…

    MySQL 2023年4月11日
    00
  • 解决MySQL5.1安装时出现Cannot create windows service for mysql.error:0

    当在Windows操作系统中安装MySQL 5.1时,有时会遇到“Cannot create windows service for mysql. error:0”的错误。这个错误通常是由于该计算机上已经存在mysql服务并且正在运行,或者是由于没有足够的权限来安装和创建服务引起的。为了解决这个问题,您可以尝试以下几个步骤: 步骤一:停止和删除现有的MySQ…

    MySQL 2023年5月18日
    00
  • MySql索引原理与操作

    MySql索引原理与操作 什么是索引? 在数据库中,索引是一种特殊的数据结构,它可以快速定位到需要查询或处理的数据行。可以理解为是书的目录,通过查看目录可以快速找到需要的内容,而不是逐一翻阅每一页。 索引的优点 提高查询效率:通过索引可以快速定位到需要的数据,降低查询时间复杂度,提高查询效率。 加速排序:对于排序操作,通过索引可以减少排序时间和过程中的IO调…

    MySQL 2023年5月19日
    00
  • Python 基于Python从mysql表读取千万数据实践

    基于Python 从mysql表读取千万数据实践   by:授客 QQ:1033553122 场景:   有以下两个表,两者都有一个表字段,名为waybill_no,我们需要从tl_waybill_bar_record表读取1000w条唯一的waybill_no,然后作为INSERT SQL语句的一部分,填充到ts_order_waybill的waybill…

    MySQL 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部