写点什么

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

用户头像
VoltDB
关注
发布于: 2021 年 03 月 03 日

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 解决方案通常可以提高数据存储速度,但无法提供大规模的强一致的事务支持。

需要快速,可扩展的交易性应用程序包括:

  • 在验证用户余额的同时允许移动电话连接

  • 以最优惠的价格进行交易

  • 向潜在的数千个用户展示移动广告,而不会超出客户的广告投放预算

  • 为电信服务商提供严格的 SLA 在批准交易之前检测是否存在信用卡盗刷行为

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

NewSQL

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

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

NoSQL 和 NewSQL 都提供了构建高度可扩展的应用程序的数据存储能力。NoSQL 数据存储是高可用性应用场景的理想选择。NewSQL 系统则提供强大的一致性和事务交互性能力,即便在出现故障时,一致性比可用性更受青睐的场景中,NewSQL 是最佳选择。

尽管几乎所有 NoSQL 解决方案都提供了可扩展性,但 VoltDB 却提供了可扩展性并添加了强一致性的事务支持。

VoltDB 具备极高的响应速度、强一致性和可扩展性。在所有 NewSQL 解决方案,面对集群故障的情景中,VoltDB 都是最强大和最灵活的,我们针对可用性进行了独立验证,见证了许多客户在生产环境集群中稳定运行数年。

VoltDB 在需要强一致性的应用场景中表现出色,包括:

  • 处理电信 BSS 和网络中日益复杂的策略和计费规则问题

  • 从呼叫后欺诈检测到防止欺诈性呼叫发生

  • 向电信客户提供即时优惠,以改善订户体验和 ARPU 应用机器学习规则来检测和防止工业物联网的入侵行为

  • 测量、监视和检测性能下降,避免意外宕机

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

如果您希望集成 VoltDB 到您的技术栈中,或者想和更多小伙伴一起交流

请私信与我们联系。

关于 VoltDB

VoltDB 支持强 ACID 和实时智能决策的应用程序,以实现互联世界。没有其它数据库产品可以像 VoltDB 这样,可以同时需要低延时、大规模、高并发数和准确性相结合的应用程序加油。

VoltDB 由 2014 年图灵奖获得者 Mike Stonebraker 博士创建,他对关系数据库进行了重新设计,以应对当今不断增长的实时操作和机器学习挑战。Stonebraker 博士对数据库技术研究已有 40 多年,在快速数据,流数据和内存数据库方面带来了众多创新理念。

在 VoltDB 的研发过程中,他意识到了利用内存事务数据库技术挖掘流数据的全部潜力,不但可以满足处理数据的延迟和并发需求,还能提供实时分析和决策。VoltDB 是业界可信赖的名称,在诺基亚、金融时报、三菱电机、HPE、巴克莱、华为等领先组织合作有实际场景落地案例。


用户头像

VoltDB

关注

VoltDB以及数据库应用场景知识库 2020.11.02 加入

VOLTDB诞生作为支持云端部署的内存数据库,并在持续增强流计算能力,原生分布式架构提供了可伸缩性,同时完全满足ACID要求,数据安全可靠,是由2014图灵奖得主Mike Stonebraker博士领导全新设计的架构。

评论

发布
暂无评论
5G时代,为什么NoSQL和SQL存在短板?