5G时代,为什么NoSQL和SQL存在短板?


01 介绍

当今的通信服务提供商(CSP)需要能够在处理海量复杂的数据的同时,不会下降或者减慢网路响应速度和可靠性。5G时代,设备和用户数量呈指数级增长,这对业务支持服务(BSS)提出了新需求,也成为了一项特别艰巨的任务。
正如您目前所看到的现实情况,电信网络策略响应,个性化报价或防止欺诈交易等应用程序,必须能够在几毫秒内对数据事件做出反应,才能增加营收或防止亏损。
为了更好地满足这些日益复杂的需求,CSP需要知道如何在日益拥挤的数据库环境中进行最佳地数据管理,而且这类场景似乎每年都会出现新的类别。最新类别则是NewSQL,它为NoSQL和SQL数据库无法提供的电信公司提供了独特优势,尤其是在实时数据处理方面。当今的数据库需要遍历整个数据从获取到执行的整个生命周期,且必须在10毫秒或更短的时间完成。环顾四周,目前只有NewSQL数据平台才能实现这一目的。
本文阐述了SQL,NoSQL和NewSQL数据库之间的主要区别,并解释了为什么NewSQL数据库是电信行业顺应时代发展的关键,以及在5G时代,CSP如何充分利用各种数据库技术对其网络进行高效运维管理。

02 NewSQL缘起

NewSQL是451 Group的分析师Matt Aslett创造的一个术语,用来描述一组新的数据库特性,这些特性既继承了传统SQL关系数据库的许多功能,同时也提供NoSQL技术的某些优势。
NewSQL系统为现实提供了两全其美的方案:关系数据模型和传统数据库的ACID事务一致性;继承SQL的交互便利性以及NoSQL的可扩展性和速度。有些系统提供了比NoSQL解决方案更强的一致性保证,尽管有人认为“可调”的一致性是伪一致性,但也并不完全符合ACID。
当然,NewSQL解决方案之间也存在差异。SAP HANA可以处理少量的事务性工作负载,但是没有本地集群的优势。NuoDB是一个群集优先的SQL数据库,专注于云部署,但是吞吐量很差。MemSQL对于集群分析很有用,但是其可调整的一致性并非严格意义上的ACID事务。NuoDB和MemSQL都具有计算和存储分离的特点,因此它们可能会遇到数据传输和同步(尤其是围绕事务的同步)的问题。
ACID 原则
大多数关系数据库都遵循ACID(原子性、一致性、隔离性和持久性)原则,而大多数NoSQL数据库是BASE(基本可用、软状态、最终一致性)原则。
NewSQL数据库,如VoltDB,为联机事务处理(OLTP)工作提供了NoSQL系统的可扩展性,同时遵从了传统数据库系统的ACID保证。

03 电信业场景下的NewSQL与NoSQL

既然我们已经注意到了SQL、NoSQL和NewSQL的基本区别,以及他们各自的优缺点。接下来,就让我们深入了解下,电信业运营商和开发人员真正关心NoSQL和NewSQL的哪些特性,他们可以使用NoSQL解决哪些问题?

  • 我可以使用NoSQL解决哪些问题?
  • NoSQL在哪里使用不合适?
  • 如何利用NoSQL和NewSQL的优势?

我们不怀疑NoSQL数据库非常契合许多工作场景,但是在某些特定场景下,NoSQL技术可能并不是能选择的最佳的解决方案。
下一节会对比NewSQL和NoSQL在电信业数据管理的4个关键考量指标:可扩展性,可用性,数据一致性以及快速响应。

3.1 可扩展性

NoSQL
随着5G蓬勃发展以及通信设备的迅速增长,电信业企业需要升级扩展其现有的数据管理方式。
最初NoSQL因为在互联网行业中类似Google,Facebook和Twitter广泛采用,以解决他们海量规模化数据管理时,才开始引起人们的注意。这些平台处理大量非结构化数据流入:Web搜索、移动设备、用户状态更新、信息流等。
在这些场景中,最重要的考量因素是可扩展性。数据库必须大规模快速地扩展。关系模式和扩展传统SQL数据库无法应对海量数据增长和处理,在传统SQL数据库维护海量数据和多样化查询处理请求的成本和效率是很难接受的。
NoSQL系统最重要的特性是能够在通用的硬件设备上扩展应用程序的能力。对于需要水平无限制扩展的需求场景,NoSQL可能是正确的选择,NewSQL和NoSQL在扩展性上并没有太大区别。
但是,NoSQL数据库为了扩展性而在几乎所有其它方面折衷,这对于仅依靠NoSQL的电信业公司来说有很大问题。

NewSQL
尽管NoSQL关系数据库系统提供了可扩展性选项,但通常这一成本很高。NewSQL系统也在致力于应对系统扩展性的挑战,同时它继承了传统RDBMS的事务性和SQL标准。
在典型场景中,内存中的大规模并行SQL关系数据库,该数据库在通用硬件上可以线性扩展。与NoSQL解决方案一样,NewSQL数据库对云原生友好,并且可以随意扩展以满足超大数据规模下的应用程序需求。系统应设计为使用集群内无共享数据分块的架构,来实现云端环境下低延迟的读写性能。
NewSQL数据库提供了高可用、容错性以及物理数据冗余,在电信网络之类的场景也能够平稳运行,以便电信运营商能够从容应对大量涌入的数据。借助功能强大的NewSQL数据库,用户还可以针对实时数据流处理场景,构建面向实时事务的应用程序。

3.2 可用性

NoSQL
NoSQL系统专为CAP理论的可用性而设计,这意味着即使在分布式分区的情况下,数据库也始终会响应。
但是NoSQL系统在设计上优先考虑可用性,采用最终一致性,而不是强一致性(即始终提供最新最正确的数据集快照)方案,意味着NoSQL系统为了快速响应,然而可以返回的不是最新数据。
Apache Cassandra是最终一致性理念的践行者,即快速响应比始终返回最新数据更重要,确实对于许多应用程序而言,最终的一致性是可以接受的。
但是,需要根据确切数据才可以进行交易的场景,比如电信公司需要采取措施来打击欺诈等活动,最终一致性是不可接受的。
因此,NoSQL解决方案不适用于以下情况:

  • 决定是否拨打移动用户的电话
  • 跟踪(计数)并分配有限的稀缺资源
  • 交易事务决策

NewSQL
NewSQL系统优先考虑一致性而不是可用性。NewSQL系统将向所有客户返回相同的确切答案,从而使应用程序可以在通话费用,飞机座位分配和库存等方面做出实时决策,而不会发生冲突。

3.3 一致性

NoSQL
如前所述,NoSQL系统是为实现可扩展性和可用性而设计的,但要牺牲强一致性作为代价。因此,对于需要强一致性的场景而言,NoSQL系统并不是一个好的选择,比如计费和操作支持场景,而这两个场景对于电信运营又都很常见。
同样的还有欺诈行为,电信运营商尤其是发展中国家的电信运营商,承受着巨大的压力,被滥用的SIM卡甚至可以用集装箱计,从而造成每年数十亿美元的损失。解决电信欺诈问题需要大规模准确地实时计算查询呼叫方账户,这都是NoSQL数据库无法做到的。

NewSQL
NewSQL系统具有高度一致性,它们优先考虑一致性而不是可用性,与此同时,NewSQL也支持多分区,这对于电信公司及其提供不间断服务的能力至关重要,因为这意味着即使节点到节点的通信出现故障,集群仍可以继续工作。

3.4 快速响应事务性场景

NoSQL
快速响应的场景在现代场景中非常普遍。尽管NoSQL解决方案通常可以提高数据存储速度,但无法提供大规模的强一致的事务支持。
需要快速,可扩展的交易性应用程序包括:

  1. 在验证用户余额的同时允许移动电话连接
  2. 以最优惠的价格进行交易
  3. 向潜在的数千个用户展示移动广告,而不会超出客户的广告投放预算
  4. 为电信服务商提供严格的SLA 在批准交易之前检测是否存在信用卡盗刷行为

对于这类应用程序,由于处理事件每小时每分钟都可能会发生数百万次,因此NoSQL数据库通常不是最佳选择。电信、金融服务、在线游戏、广告技术和其他行业的业务需要能够应对事件处理的并发和延迟。因此,可扩展的强一致性事务解决方案是必备的。

NewSQL
NewSQL系统为现代应用程序提供了高可扩展性和强一致性的特性,即使在海量数据处理时,多分区冗余支持也可以使得系统线性扩展,助力应用程序精确快速响应客户请求。

04 使用NewSQL构建可扩展的现代应用程序

NoSQL和NewSQL都提供了构建高度可扩展的应用程序的数据存储能力。NoSQL数据存储是高可用性应用场景的理想选择。NewSQL系统则提供强大的一致性和事务交互性能力,即便在出现故障时,一致性比可用性更受青睐的场景中,NewSQL是最佳选择。
尽管几乎所有NoSQL解决方案都提供了可扩展性,但VoltDB却提供了可扩展性并添加了强一致性的事务支持。
VoltDB具备极高的响应速度、强一致性和可扩展性。在所有NewSQL解决方案,面对集群故障的情景中,VoltDB都是最强大和最灵活的,我们针对可用性进行了独立验证,见证了许多客户在生产环境集群中稳定运行数年。
VoltDB在需要强一致性的应用场景中表现出色,包括:

  1. 处理电信BSS和网络中日益复杂的策略和计费规则问题
  2. 从呼叫后欺诈检测到防止欺诈性呼叫发生
  3. 向电信客户提供即时优惠,以改善订户体验和ARPU 应用机器学习规则来检测和防止工业物联网的入侵行为
  4. 测量、监视和检测性能下降,避免意外宕机

VoltDB是目前市场上最成熟的NewSQL系统,也是云原生数据库。它支持实时数据流中的ACID事务处理,对本地集群和Hadoop生态支持也非常完备。除此之外,它同时集成了高吞吐量,低延迟的数据处理特性,是非常优秀的数据密集型应用程序系统, 在高性能、低延迟、强一致性需求场景中表现不俗,广泛应用于策略执行,个性化推荐,欺诈或异常检测等需要实时决策响应的数据流应用程序中。

如果您希望集成VoltDB到您的技术栈中,或者想和更多小伙伴一起交流
请私信与我们联系。

关于VoltDB
VoltDB支持强ACID和实时智能决策的应用程序,以实现互联世界。没有其它数据库产品可以像VoltDB这样,可以同时需要低延时、大规模、高并发数和准确性相结合的应用程序加油。
VoltDB由2014年图灵奖获得者Mike Stonebraker博士创建,他对关系数据库进行了重新设计,以应对当今不断增长的实时操作和机器学习挑战。Stonebraker博士对数据库技术研究已有40多年,在快速数据,流数据和内存数据库方面带来了众多创新理念。
在VoltDB的研发过程中,他意识到了利用内存事务数据库技术挖掘流数据的全部潜力,不但可以满足处理数据的延迟和并发需求,还能提供实时分析和决策。VoltDB是业界可信赖的名称,在诺基亚、金融时报、三菱电机、HPE、巴克莱、华为等领先组织合作有实际场景落地案例。