华为突破分布式数据库和存储技术,打通数字化转型“雄关漫道”

华为突破分布式数据库和存储技术,打通数字化转型“雄关漫道”,第1张

2019年,我们将进入数字化转型的攻关期。所谓“攻关期”即数字化转型2.0阶段,需要攻坚企业关键业务上云和数字化转型改造的课题。在一份市场调查公司IDC的报告中指出:IDC自2014年提出数字化转型以来,看到企业在数字化转型层面已经投入了大量人力物力,但是效果并不理想,有一些企业已经成功屹立在潮头,有一些企业在向上游进发,还有一些企业只能在浪潮的挟裹中被动前行。

对于企业来说,数字化转型是“雄关漫道”。IDC认为,目前阶段来看,企业亟待解决的是数字化能力提升,包括:与业务的深入结合能力;数据处理和挖掘能力;以及IT技术运营和管理能力。特别是数据处理和挖掘能力,因为数字化转型推进企业从以流程为核心向以数据为核心转型,对海量、异构、多类型的数据处理和挖掘能力是释放数据价值的前提,对数据全生命周期的管控治理是释放数据价值的保障。而随着数字化转型引入大量新技术而导致IT复杂度变高,企业IT技术运营和管理能力是提升企业“IT生产力”的关键。

攻关数字化转型的“雄关漫道”,需要一个具备融合、智能、可传承三大特性的数字平台。这是2019年3月华为与IDC联合推出的《拥抱变化,智胜未来—数字平台破局企业数字化转型》白皮书所提出的观点。融合主要指把传统技术和创新技术相结合;智能主要指平台智能化和智能化能力输出;可传承主要指解耦、功能复用、可配置等理念打造的架构。而承载这三大观点的,就是新一代分布式企业级技术。

2019年5月15日,华为发布了业界首款支持ARM架构的新一代智能分布式数据库GaussDB以及分布式存储FusionStorage 8.0,作为新一代数据基础设施,诠释了具备融合、智能、可传承三大特性的数字平台。华为常务董事、ICT战略与Marketing总裁汪涛在发布会上表示,千行百业正在加速智能化进程,越来越多的企业已经意识到数据基础设施是智能化成功的关键。华为围绕计算、存储和数据处理三个领域重定义数据基础设施,加速迈向智能时代。

今天所讨论云和工业互联网等概念的背后是一个新时代的到来,这就是体系架构大迁徙。传统企业级技术是在单体应用和单机环境中,保证数据存储、调用等 *** 作的高可靠、高可用、高稳定,特别是满足金融级事物处理的ACID(原子性、一致性、隔离性和耐久性)要求,为企业关键业务提供数据管理支撑。随着企业技术向云架构迁移,数据库技术也面临转型。

2018年,基于云计算技术的分布式数据库成为了业界的热点。简单理解,云计算技术就是把“单机”环境替换为由X86服务器机群所组成的分布式计算环境。原先由几台小型机完成的计算任务,要分散到上百甚至上千台X86服务器上,而且还可能跨数据中心 *** 作,挑战可想而之。特别是在线支付等金融级业务,不能在断网或网络连接有问题时出错,也不能因响应速度慢而影响用户体验。

2018年8月,中国支付清算协会与中国信息通信研究院联合举办了“金融分布式事务数据库研讨会”,与业界厂商和用户共商核心数据库分布式转型之路,同时发布了《金融分布式事务数据库》白皮书。金融分布式事务数据库的工作推进,为分布式数据库进入企业关键业务系统,提供了产业化支撑。而华为作为企业ICT解决方案供应商,早在2012年就开始研发面向大数据分析的数据仓库,在基于传统关系型数据库SQL引擎和事务强一致性等基础上,进行了分布式、并行计算的改造,历时6年打造了面向PB级海量数据分析的分布式数据库。

在OLAP数据仓库之外,华为与行业用户合作了面向OLTP的分布式事务型数据库研发。2017年,华为与招商银行合作成立了分布式数据库联合创新实验室,研发具有高性能企业级内核、完整支持分布式事物、满足金融行业对数据强一致要求、单机事物处理能力要达到每分钟百万级别等的OLTP分布式数据库。

本次发布的GaussDB数据库新品包括:联机事务处理OLTP数据库、联机分析处理OLAP数据库、事务和分析混合处理HTAP数据库。而华为GaussDB数据库将AI技术融入数据库设计、开发、验证、调优、运维等环节,可实现基于AI的自调优、自诊断自愈、自运维,让数据库更高效、更智能,引领数据库架构的发展。

更进一步,本次发布的GaussDB系列数据库是业界首款支持ARM芯片的分布式数据库。华为推动计算架构从以X86+GPU为主的单一计算架构到以X86+GPU+ARM64+NPU为主的异构计算架构快速发展。基于X86架构,华为引入AI管理和智能加速能力,率先推出了智能服务器FusionServer Pro;基于ARM64打造了业界性能最强的TaiShan服务器;基于Ascend芯片的Atlas智能计算,实现了业界首个端边云协同的人工智能平台。而GaussDB可充分利用并融合ARM、X86、GPU、NPU等多种异构算力组合,大幅提升数据库性能。

汪涛强调,作为全球首款AI-Native数据库,GaussDB有两大革命性突破:第一,首次将人工智能技术引入数据库的全生命周期流程,实现自运维、自管理、自调优和故障自诊断。在交易、分析和混合负载场景下,基于最优化理论,首创深度强化学习自调优算法,把业界平均性能提升60%。第二,支持异构计算,充分发挥X86/ARM/GPU/NPU多样性算力优势,最大化数据库性能,在权威标准测试集TPC-DS上,华为GaussDB排名第一。GaussDB还支持本地部署、私有云、公有云等多种场景。

在以云计算为代表的分布式计算环境中,数据管理解决方案除了需要分布式数据库外,为了更好的扩缩容以及满足多样化数据存储需求,计算与存储分离已经成为分布式数据库设计的主要架构。分布式云化架构,就是要支持计算、存储分离和多租户等架构设计要求。

GaussDB已经从数据库层面实现了高可用、高可靠、高稳定的分布式数据库,本次发布的FusionStorage 8.0则是分布式存储架构,创新地实现一套系统同时支持块、文件、对象、HDFS协议,1套存储支持4类存储能力,适用于全业务场景混合负载,最终让“一个数据中心一套存储”成为可能。

IDC发布的《中国软件定义存储(SDS)及超融合存储(HCI)系统市场季度跟踪报告,2018年第四季度》显示,2018年,软件定义存储市场达到了54.9%的同比增长。软件定义存储在中国整体存储市场的占有率稳步上升,分别达到了22.1%的市场占有率。华为凭借文件解决方案在政府、广电和电信等行业得到认可,在2018年中国软件定义存储市场排名第一。

FusionStorage 8.0采用华为ARM-based处理器鲲鹏920加速,使IOPS提升 20%,结合华为AI Fabric无损网络,时延进一步降低15%。基于华为在计算、网络和存储领域多年的芯片和算法积累,FusionStorage 8.0在SPC-1的性能测试中,单节点性能达到了16.8万IOPS以及1ms以内时延,成为承载企业关键应用的新选择。

此外,通过华为云的云上训练及本地AI芯片,FusionStorage 8.0将智能管理贯穿业务使用的全生命周期,如业务上线前对存储资源的规划,使用过程中的风险预判及故障定位,大幅提升存储效率,帮助行业客户应对智能时代的数据新挑战。

汪涛在发布会上强调,新一代智能分布式存储FusionStorage 8.0通过重定义存储架构,从“Storage for AI”和“AI in Storage”两个维度实现效率大幅提升,引领存储智能化。首先,“Storage for AI”通过融合共享,让AI分析更高效。其次,“AI in Storage”率先将AI融入存储全生命周期管理,从资源规划、业务发放、系统调优、风险预测、故障定位等方面实现智能运维。

辽宁移动就采用了华为FusionStorage。作为辽宁省内最大的移动通信运营商,辽宁移动一直在 探索 先进的存储方案在自身IT系统的应用。由于5G的快速发展,辽宁移动关键数据库的应用也向云化方向发展,分布式存储也要满足其可靠性和高性能要求。华为在深入分析辽宁移动需求后,首先在边缘开发测试业务小规模试点分布式存储,进行了大量的实验和测试后性能和可靠性都达到了预期,最终决定将全部业务迁移至FusionStorage。该方案通过采用双活、可写快照、端到端DIF等特性,顺利完成Billing、经营分析、B2B等系统从老旧存储至FusionStorage的搬迁工作,助力辽宁移动的存储架构迈入新的 历史 阶段。

值得一提的是,华为分布式数据库与华为分布式存储深度结合,把数据库的 *** 作下沉到存储节点,极大提升了分布式数据库的性能。利用新的网络技术和人工智能技术,华为帮助用户提升数据中心的吞吐量,提升网络应用的可伸缩性,并且能自动调优。

除了推出新一代突破性的分布式数据库和存储技术外,华为也积极与客户、伙伴在数据库与存储领域,从行业应用、平台工具、标准组织和社区等多个层面共建开放、合作、共赢的产业生态。在行业应用层面,华为与软通智慧、神州信息、东华软件、易华录、用友政务、亚信国际等独立软件开发商长期合作;在平台和工具层面,华为与Tableau、帆软、ARM、Veritas等合作伙伴联合创新;在标准组织和社区层面,华为深度参与OpenSDS、中国人工智能产业联盟、OCP、OpenStack、CNCF基金会等组织和社区的建设。

总结来说,华为全线分布式数据库和分布式存储产品的发布,是华为具备融合、智能、可传承三大特性数字平台的最新成果。华为分布式数据库与分布式存储结合,能消除企业各业务系统数据孤岛,构建面向行业场景的数据建模、分析和价值挖掘能力,对多源异构的数据进行汇聚、整合和分析,形成统一的全量数据和数据底座,实现数据价值挖掘和共享。而基于AI的智能化,可对基础设施进行高效的管理,为行业应用开发和迭代赋能,全面帮助企业突破关键应用上云的“雄关漫道”。(文/宁川)

很多组织机构慢慢的在不同的服务器和地点部署SQL Server数据库——为各种应用和目的——开始考虑通过SQL Server集群的方式来合并。

将SQL Server实例和数据库合并到一个中心的地点可以减低成本,尤其是维护和软硬件许可证。此外,在合并之后,可以减低所需机器的数量,这些机器就可以用于备用。

当寻找一个备用,比如高可用性的环境,企业常常决定部署Microsoft的集群架构。我常常被问到小的集群(由较少的节点组成)SQL Server实例和作为中心解决方案的大的集群哪一种更好。在我们比较了这两个集群架构之后,我让你们自己做决定。

什么是Microsoft集群服务器

MSCS是一个Windows Server企业版中的内建功能。这个软件支持两个或者更多服务器节点连接起来形成一个“集群”,来获得更高的可用性和对数据和应用更简便的管理。MSCS可以自动的检查到服务器或者应用的失效,并从中恢复。你也可以使用它来(手动)移动服务器之间的负载来平衡利用率以及无需停机时间来调度计划中的维护任务。

这种集群设计使用软件“心跳”来检测应用或者服务器的失效。在服务器失效的事件中,它会自动将资源(比如磁盘和IP地址)的所有权从失效的服务器转移到活动的服务器。注意还有方法可以保持心跳连接的更高的可用性,比如站点全面失效的情况下。

MSCS不要求在客户计算机上安装任何特殊软件,因此用户在灾难恢复的经历依赖于客户-服务器应用中客户一方的本质。客户的重新连接常常是透明的,因为MSCS在相同的IP地址上重启应用、文件共享等等。进一步,为了灾难恢复,集群的节点可以处于分离的、遥远的地点。

在集群服务器上的SQL Server

SQL Server 2000可以配置为最多4个节点的集群,而SQL Server 2005可以配置为最多8个节点的集群。当一个SQL Server实例被配置为集群之后,它的磁盘资源、IP地址和服务就形成了集群组来实现灾难恢复。

SQL Server 2000允许在一个集群上安装16个实例。根据在线帮助,“SQL Server 2005在一个服务器或者处理器上可以支持最多50个SQL Server实例,”但是,“只能使用25个硬盘驱动器符,因此如果你需要更多的实例,那么需要预先规划。”

注意SQL Server实例的灾难恢复阶段是指SQL Server服务开始所需要的时间,这可能从几秒钟到几分钟。如果你需要更高的可用性,考虑使用其他的方法,比如log shipping和数据库镜像。

单个的大的SQL Server集群还是小的集群

下面是大的、由更多的节点组成的集群的优点:

◆更高的可用新(更多的节点来灾难恢复)。

◆更多的负载均衡选择(更多的节点)。

◆更低廉的维护成本。

◆增长的敏捷性。多达4个或者8个节点,依赖于SQL版本。

◆增强的管理性和简化环境(需要管理的少了)。

◆更少的停机时间(灾难恢复更多的选择)。

◆灾难恢复性能不受集群中的节点数目影响。

下面是单个大的集群的缺点:

◆集群节点数目有限(如果需要第9个节点怎么办)。

◆在集群中SQL实例数目有限。

◆没有对失效的防护——如果磁盘阵列失效了,就不会发生灾难恢复。

◆使用灾难恢复集群,无法在数据库级别或者数据库对象级别,比如表,创建灾难恢复集群。

虚拟化和集群

虚拟机也可以参与到集群中,虚拟和物理机器可以集群在一起,不会发生问题。SQL Server实例可以在虚拟机上,但是性能可能会受用影响,这依赖于实例所消耗的资源。在虚拟机上安装SQL Server实例之前,你需要进行压力测试来验证它是否可以承受必要的负载。

在这种灵活的架构中,如果虚拟机和物理机器集群在一起,你可以在虚拟机和物理机器之间对SQL Server进行负载均衡。比如,使用虚拟机上的SQL Server实例开发应用。然后在你需要对开发实例进行压力测试的时候,将它灾难恢复到集群中更强的物理机器上。

集群服务器可以用于SQL Server的高可用性、灾难恢复、可扩展性和负载均衡。单个更大的、由更多的节点组成的集群往往比小的、只有少数节点的集群更好。大个集群允许更灵活环境,为了负载均衡和维护,实例可以从一个节点移动到另外的节点。

大约10年前,我加入了Amazon Web Services,在那里我第一次看到了在分布式系统中进行权衡的重要性。在大学里,我已经了解了一致性和可用性之间的权衡(CAP定理),但实际上,频谱要比这深得多。任何设计决策都可能涉及延迟,并发性,可伸缩性,耐用性,可维护性,功能性, *** 作简便性以及系统其他方面之间的权衡,而这些权衡会对应用程序的功能和用户体验产生有意义的影响,并且即使是业务本身的有效性。

也许在权衡需求最明显的分布式系统中最具挑战性的问题是构建分布式数据库。当应用程序开始需要可以在许多服务器上扩展的数据库时,数据库开发人员开始做出极端的权衡。为了在许多节点上实现可伸缩性,分布式键值存储(NoSQL)抛弃了传统关系数据库管理系统(RDBMS)提供的丰富功能集,包括SQL,联接,外键和ACID保证。由于每个人都想要可伸缩性,因此RDBMS消失只是时间问题,对吗?实际上,关系数据库继续主导着数据库领域。这就是为什么:

在分布式系统(或任何系统)中进行权衡时,要考虑的最重要方面是开发成本。

数据库软件所做出的权衡将对应用程序的开发成本产生重大影响。在高级应用程序中处理需要可用性,可靠性和性能的数据是一个固有地需要解决的问题。成功解决每个小问题所需的工时数量可能很大。幸运的是,数据库可以解决许多这些子问题,但是数据库开发人员也面临成本问题。实际上,要使数据库足以满足大多数应用程序的功能,保证和性能,就需要数十年的时间。那就是建立关系数据库如PostgreSQL和MySQL的地方。

在Citus Data,我们从不同角度解决了数据库可伸缩性的需求。我和我的团队在过去的几年中花费了很多时间将已建立的RDBMS转换为分布式数据库,而又不会失去其强大功能或从基础项目中分叉。通过这样做,我们发现RDBMS是构建分布式数据库的理想基础。

使RDBMS对开发应用程序(尤其是开源RDBMS,尤其是云RDBMS)如此吸引人的原因在于,您可以有效地利用数十年来对RDBMS进行的工程投资,并利用这些RDBMS功能。您的应用,降低了开发成本。

RDBMS为您提供:

这些功能几乎对任何非平凡的应用都很重要,但是要花很长时间才能开发。另一方面,某些应用程序的工作量对于单台计算机来说太过苛刻,因此需要水平可伸缩性。

许多新的分布式数据库正在开发中,并且正在分布式键值存储(“ NewSQL”)之上实现RDBMS功能,例如SQL。尽管这些较新的数据库可以使用多台计算机的资源,但是在SQL支持,查询性能,并发性,索引,外键,事务,存储过程等方面,它们仍远未建立在关系数据库系统上。您遇到许多要在应用程序中解决的复杂问题。

许多大型互联网公司采用的替代方法是RDBMS的手动,应用程序层分片(通常是PostgreSQL或MySQL)。手动分片意味着有许多RDBMS节点,并且应用程序会根据某种条件(例如,用户ID)决定连接到哪个节点。应用程序本身负责如何处理数据放置,架构更改,查询多个节点,复制表等,因此,如果执行手动分片,最终将在应用程序中实现自己的分布式数据库,这可能甚至更多。昂贵。

幸运的是,有一种方法可以解决开发成本难题。

PostgreSQL已有数十年的发展 历史 ,其令人难以置信的重点是代码质量,模块化和可扩展性。这种可扩展性提供了一个独特的机会:无需分叉就可以将PostgreSQL转换为分布式数据库。这就是我们构建Citus的方式。

大约5年前,当我加入一家名为Citus Data的初创公司时,我为在竞争激烈的市场中建立高级分布式数据库而无任何现有基础架构,品牌知名度,进入市场,资本或大量工程师的挑战感到沮丧 。 仅开发成本就似乎是无法克服的。 但是,就像应用程序开发人员利用PostgreSQL来构建复杂的应用程序一样,我们利用PostgreSQL来构建……分布式PostgreSQL。

我们创建了Citus,这是开源的PostgreSQL扩展,而不是从头开始创建分布式数据库,它以提供水平扩展的方式透明地分发表和查询,但是应用程序开发人员需要具备所有PostgreSQL功能才能成功。

通过使用在计划查询时Postgres调用的内部挂钩,我们能够将分布式表的概念添加到Postgres。

分布式表的分片存储在具有所有现有功能的常规PostgreSQL节点中,Citus发送常规SQL命令以查询分片,然后合并结果。 我们还添加了参考表的概念,该参考表可在所有节点上复制,因此可以通过任何列与分布式表连接。 通过进一步增加对分布式事务,查询路由,分布式子查询和CTE,序列,更新等的支持,我们达到了最先进的PostgreSQL功能可以使用的规模,但现在已经可以大规模使用。

Citus相对来说还很年轻,但是已经建立在PostgreSQL之上,已经成为世界上最先进的分布式数据库之一。与PostgreSQL的完整功能集相比,这令人毛骨悚然,还有许多工作要做,Citus现在提供的功能及其扩展方式使其在分布式数据库环境中具有很大的独特性。许多当前的Citus用户最初使用Postgres中的许多高级功能在单节点PostgreSQL服务器上建立业务,然后仅用几周的开发工作就迁移到Citus,以将其数据库模式转换为分布式表和引用表。对于任何其他数据库,从单节点数据库到分布式数据库的这种迁移可能要花费数月甚至数年的时间。

像PostgreSQL这样的RDBMS具有几乎无限的功能和成熟的SQL引擎,可让您以多种方式查询数据。当然,这些功能只有在速度很快时才对应用程序有用。幸运的是,PostgreSQL很快,并且通过诸如实时查询编译之类的新功能不断提高,但是当您拥有大量数据或流量以至于一台机器速度太慢时,那些强大的功能就不再那么有用了……除非您可以结合许多计算机的计算能力。这就是功能成为超级大国的地方。

通过采用PostgreSQL功能并进行扩展,Citus具有许多超级功能,这些功能使用户可以将数据库扩展到任意大小,同时保持高性能及其所有功能。

尽管大多数这些功能对于开发需要扩展的复杂应用程序来说似乎都是必不可少的,但并不是所有分布式数据库都支持它们。下面我们根据公开提供的文档对一些流行的分布式数据库进行比较。

与在分布式数据库中拥有超级功能相比,更重要的是能够组合数据库超级功能来解决复杂的用例。

由于支持查询路由,参考表,索引,分布式事务和存储过程,因此即使最先进的多租户OLTP应用程序(例如Copper)也可以使用Citus扩展到单个PostgreSQL节点之外,而不会在应用程序中做出任何牺牲。

如果将子查询下推与并行的分布式DML结合使用,则可以在数据库内部转换大量数据。一个常见的示例是使用INSERT…SELECT构建汇总表,该表可以并行化以适应任何类型的数据量。结合通过COPY,索引,联接和分区进行的批量加载,您将拥有一个非常适合时间序列数据和实时分析应用程序(如Algolia仪表板)的数据库。

正如Microsoft的Min Wei在谈到Microsoft如何使用Citus和PostgreSQL分析Windows数据时指出的那样:Citus使您能够使用分布式OLTP解决大规模OLAP问题。

Citus与其他分布式数据库有些不同,后者通常是从头开始开发的。 Citus没有引入PostgreSQL中尚未提供的任何功能。 Citus数据库以满足需要扩展的用例的方式扩展了现有功能。重要的是,大多数PostgreSQL功能已经针对各种用例进行了数十年的开发和测试,而当今用例的功能要求最终并没有太大不同;主要是数据的规模和大小不同。因此,在构建现代应用程序时,基于世界上最先进的开源RDBMS(PostgreSQL!)构建的分布式数据库(如Citus)可以成为您的武器库中最强大的工具。

原文:https://www.citusdata.com/blog/2018/11/30/why-rdbms-is-the-future-of-distributed-databases/

本文:http://jiagoushi.pro/node/929

讨论:请加入知识星球或者微信圈子【首席架构师圈】


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6657825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存