分享一个我自己用 scala 实现的 sql 执行引擎

2015-05-20 16:58:26 +08:00
 jadetang
git 地址 https://github.com/jadetang/scala_sql

作用就是写一个简单的sql,然后在一个List<Map>上做运算,思路来源是现在公司实时计算所用的执行引擎,不过他们是用java写的

suppose there is a List called user,which contains these data:
[name:tsc,age:30,sex:male]
[name:syy,age:29,sex:female]
[name:dudu,age:1,sex:male]
[name:xiaohua,age:2,sex:null]
[name:tsc,age:19,sex:male]
[name:tsc,age:99,sex:female]
[name:tsc,age:30,sex:female]

then

Engine.query(user,"select count(user) as number,name from user group by name")
will result in:
[number:1,name:dudu]
[number:4,name:tsc]
[number:1,name:xiaohua]
[number:1,name:syy]
2418 次点击
所在节点    分享创造
4 条回复
feilaoda
2015-05-20 22:39:07 +08:00
你公司用的Esper?
你这个有没有测试过在数据量很大时,超过1亿条,速度如何?
ledkk
2015-05-21 08:49:55 +08:00
先下下来瞅瞅
jadetang
2015-05-21 09:45:32 +08:00
@feilaoda 没有用ESPER,另外这个都是在内存中计算的,如果是1亿条,早就OOM了。我们的场景是,利用队列,一批一批的计算,结合外部的排重服务,例如bloomfilter计算去重的指标。
jadetang
2015-05-21 09:46:03 +08:00
@ledkk 目前只支持三种数据类型,int,double,string。没事的话,给个星吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/192496

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX