分享

SparkSQL作为内存数据库的可行性??

lanyangkj 发表于 2017-1-3 10:00:47 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 8 12783
业务场景描述:

      我现在有一个这样的需求,我们有一张表大概有300万行数据,但是频繁有页面的多条件查询(大概有十多个条件吧,应该只能基于关系型的SQL查询),传统SQLServer/Oracle 目前已经存在性能瓶颈了。


实现目标:
     SparkSQL有个cacheTable的功能, 想利用这个开源SQL解决上述问题,实现类似IBM内存库/OracleTimeTen这种关系型SQL实现客户端大量的即席查询、交互式查询。


以上是否可行?? 1、SparkSQL的cacheTable是不是可以实现全局共享,2、新数据的实时插入能追加其后吗?




已有(8)人评论

跳转到指定楼层
einhep 发表于 2017-1-3 10:16:54
spark sql作为内存数据库这个还没接触过。
不过还是建议使用专业的内存数据库比如redis。

推荐资料
如何根据性能选择内存NoSQL数据库?
http://www.aboutyun.com/forum.php?mod=viewthread&tid=16949


回复

使用道具 举报

lanyangkj 发表于 2017-1-3 10:21:15
einhep 发表于 2017-1-3 10:16
spark sql作为内存数据库这个还没接触过。
不过还是建议使用专业的内存数据库比如redis。

十分感谢您的回答,不过redis只是基于key/value的简单查询,对于复杂的SQL查询,可能无能为力!!
回复

使用道具 举报

flyDutch 发表于 2017-1-3 13:49:00
apache ignite可以试一下,对SQL支持友好
回复

使用道具 举报

starrycheng 发表于 2017-1-3 13:54:51
如果楼主比较擅长spark sql,可以一试

回复

使用道具 举报

lanyangkj 发表于 2017-1-3 14:16:44
flyDutch 发表于 2017-1-3 13:49
apache ignite可以试一下,对SQL支持友好

你推荐的apache ignite 是个不错的选择,Ignite支持完整SQL(ANSI-99)语法以查询内存中的数据,这的确很有诱惑力,我认为可以一试。厉害!
回复

使用道具 举报

flyDutch 发表于 2017-1-7 18:00:38
lanyangkj 发表于 2017-1-3 14:16
你推荐的apache ignite 是个不错的选择,Ignite支持完整SQL(ANSI-99)语法以查询内存中的数据,这的确很 ...

祝顺利。首先给你提醒两点:1、在partition模式下,SQL还有BUG,就是说如果你要用select count(*) , ip from table group by ip这样的聚合,你一定要把cache设置成为replicated模式。2、单条数据的内存占用率非常高,如果量太大考虑使用BinaryObject来存储。
回复

使用道具 举报

lanyangkj 发表于 2017-1-9 15:09:34
flyDutch 发表于 2017-1-7 18:00
祝顺利。首先给你提醒两点:1、在partition模式下,SQL还有BUG,就是说如果你要用select count(*) , ip f ...

十分感谢,想必您指的是ignite 存在一个bug。不是sparkSQL对吧?  我想这个支持SQL的内存库未来肯定有很广阔的空间!!
回复

使用道具 举报

flyDutch 发表于 2017-1-13 09:05:30
lanyangkj 发表于 2017-1-9 15:09
十分感谢,想必您指的是ignite 存在一个bug。不是sparkSQL对吧?  我想这个支持SQL的内存库未来肯定有很 ...

是的。ignite比较小众,坑多,要当心点。
还有一个内存数据库 GemFire你也可以对比一下,看哪个更适合你的业务场景。gemfire业内用得更多,比如:12306
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条