V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
jadetang
V2EX  ›  分享创造

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

  •  
  •   jadetang · 2015-05-20 16:58:26 +08:00 · 2405 次点击
    这是一个创建于 3288 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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]
    4 条回复    2015-05-21 09:46:03 +08:00
    feilaoda
        1
    feilaoda  
       2015-05-20 22:39:07 +08:00
    你公司用的Esper?
    你这个有没有测试过在数据量很大时,超过1亿条,速度如何?
    ledkk
        2
    ledkk  
       2015-05-21 08:49:55 +08:00
    先下下来瞅瞅
    jadetang
        3
    jadetang  
    OP
       2015-05-21 09:45:32 +08:00
    @feilaoda 没有用ESPER,另外这个都是在内存中计算的,如果是1亿条,早就OOM了。我们的场景是,利用队列,一批一批的计算,结合外部的排重服务,例如bloomfilter计算去重的指标。
    jadetang
        4
    jadetang  
    OP
       2015-05-21 09:46:03 +08:00
    @ledkk 目前只支持三种数据类型,int,double,string。没事的话,给个星吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   978 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 21:28 · PVG 05:28 · LAX 14:28 · JFK 17:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.