使用内存 NewSQL 数据平台来处理实时数据流的三个好处
从 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 可理解为:
简化的查询过程。把复杂的单个数据表查询语句简化成多个查询语句,通过引入事务的概念确保他们有相同的执行结果,严格的 ACID 要求确保了这些查询语句是可以独立执行的。
更容易的数据测试。对于数据库的数据变更,都可以通过事务操作来完成,在完成数据测试之前回滚事务状态即可。隔离性确保了多个数据测试可以并行执行,不会导致数据在不确定状态下被修改。
更快的并发。ACID 保障每个事务的隔离性前提下,并发的程序可以运行地更加快,也不需要开发者们在自己应用逻辑中考虑不同事务操作的并发时序。
简单来说,传统的流处理技术已经不能够像 NewSQL RDBMS 一样符合 ACID 保障。它们最多只能包含能提供最终一致性的 NoSQL 数据库。
对于企业来说,数据的准确性和一致性是至关重要的。不完整的资料不仅仅会让企业损失惨重,还会严重影响到企业品牌形象。更多关于 NewSQL 流处理信息,请参考以下文件:
或复制下方链接下载👇
https://www.slidestalk.com/VoltDB/Whitepaper_VoltDBt_Streaming_Processing_ArchitectureF74054
评论