从Apache Kafka的传统发布订阅系统,到相关的流处理框架,例如Apache Samza,Apache Storm,Apache Flink,都适用于大多数工作在基本决策能力、运行效率、支撑的数据规模和稳定性方面的需求。

然而,Apache这类开源项目,并不能够满足于大多数的行业需求,比如在金融、广告技术、医疗物联、电信等行业。

那使用内存NewSQL数据平台来处理实时数据流有哪些好处呢?

1、复杂的机器学习运算

对于现代程序来说,拥有一个具备实时决策能力的引擎至关重要。虽然传统的流数据处理平台拥有一些基本的机器学习和模式识别能力,但还是缺乏一些重要的场景特性:

  • 以毫秒为单位来实时决策复杂的、有大量参数变量和上下文状态的场景
  • 从历史数据和实时数据流中,动态训练和更新机器学习模型的场景

基于内存的NewSQL关系数据库管理系统,简称(RDBMS),是为了快速处理复杂的数据而建立。

RDBMS的核心功能,比如:用户自定义函数和存储过程等,可用来用作自定义的机器学习模型,方便嵌入到数据库系统中,进行数据流的实时决策。PMML模型会被自动转化成UDF并运用于生产。

只有基于内存的NewSQL RDBMS可以为现代大规模应用提供可执行的复杂决策+低延迟+高效率等一系列组合需求。

2、目前SQL还是王道
SQL是一个具有悠久历史并被公认的数据查询标准,所有尝试替代SQL的工具最后都以失败告终,其中也包括了像是Apache Hadoop框架下的MapReduce和其他多数NoSQL工具。

带有讽刺的是目前多数NoSQL把重心放在添加SQL或是SQL类似的查询语言。就连Apache Kafka也在顺应SQL的时代,并为了流处理而加入KSQL。

然而,目前KSQL标准离SQL还是相差甚远。

在另一方面,作为一个参照与NewSQL RDBMS而创立的系统,VoltDB在流数据上提供了全面的ANSI适用型SQL,实现更广的查询和操作复杂的事件处理。

此外,ANSI适用型SQL也能给开发者们提供对于快速流处理所需要的熟悉度,灵活度和标准化。NewSQL在给HTAP提供相同的NoSQL可扩展性平台的同时,也不会影响到ACID语义保障。

3、ACID保障很重要
一个优秀的NewSQL RDBMS不仅仅是一个快速、可扩展、容易部署的系统,在简化开发和部署的同时,它还需要提供ACID保障。

从开发者的角度,ACID可理解为:

  1. 简化的查询过程。把复杂的单个数据表查询语句简化成多个查询语句,通过引入事务的概念确保他们有相同的执行结果,严格的ACID要求确保了这些查询语句是可以独立执行的。
  2. 更容易的数据测试。对于数据库的数据变更,都可以通过事务操作来完成,在完成数据测试之前回滚事务状态即可。隔离性确保了多个数据测试可以并行执行,不会导致数据在不确定状态下被修改。
  3. 更快的并发。ACID保障每个事务的隔离性前提下,并发的程序可以运行地更加快,也不需要开发者们在自己应用逻辑中考虑不同事务操作的并发时序。

简单来说,传统的流处理技术已经不能够像NewSQL RDBMS一样符合ACID保障。它们最多只能包含能提供最终一致性的NoSQL数据库。

对于企业来说,数据的准确性和一致性是至关重要的。不完整的资料不仅仅会让企业损失惨重,还会严重影响到企业品牌形象。更多关于NewSQL流处理信息,请参考以下文件:

图片
或复制下方链接下载