Pivotal’s GemFire的基于内存数据存储团队最近发布了一种新的数据库解决方案,叫做SnappyData,基于GemFire 和 Apache Spark。
SnappyData是最近又出现的一个使用Spark作为组件的数据库解决方案。这种使用Spark的方案中,有一些使用了Apache Hadoop的技术。SnappyData的查询可以使用传统的SQL语句,或者使用Spark的查询,这样原来的工作可以兼容SnappyData,也可以使用两种方式同时工作。
Snap和Spark
SnappyData是这个新数据库的名字,同时也是这个组织的名字,跨越了两个领域。它使用了Apache Spark的内存数据分析引擎,所以可以在静态数据和流数据中实时分析SQL。
在存储和取回数据方面,SnappyData使用了一个分布式的数据存储,叫做Snappy-Store,起源于GemFire的技术。它要么使用自己的数据存储,要么使用一种异步的回写式高速缓冲存储器连接另一个数据库,比如Hadoop或者HDFS。这意味着,原来的数据可以直接使用SnappyData,而不需要一些正式的数据迁移操作。
SnappyData也尝试对流数据的问题提供一些新奇的解决方案。比如,如果有个查询返回的结果太多,可能导致不能及时地反回结果。SnappyData使用近似查询结果(approximate query processing,AQP)或者从结果中抽样的方式来生成结果。
这种方式返回的结果,相比与在所有数据上操作并不准确,而且AQP并不能适用于所有查询。但是,AQP查询对CPU和内存的要求更低,速度更快。
这并不是Spark第一次在数据分析方面同时覆盖OLTP和OLAP了。基于内存的数据库系统Splice Machine使用了Hadoop的组件,就同时支持OLTP和OLAP。2.0版本加入了Spark作为一个OLAP的处理引擎。
SnappyData和Splice Machine背道而驰的地方,就是使用Spark的不同。SnappyData称,他们在很多方式对Spark的流进行的扩展,比如允许流可以像表一样被查询和操作,包括连接这样的操作。
SnappyData的环境也比较适合尝试使用Apache Spark新特性。比如Spark 2.0将在今年发布,届时将重构内存管理和流系统,拉取流数据将更加简单。
原文: Apache Spark powers live SQL analytics in SnappyData
翻译:赖信涛
责编:孙思