爱意满满的作品展示区。
jadetang

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

  •  
  •   jadetang · May 20, 2015 · 2974 views
    This topic created in 4090 days ago, the information mentioned may be changed or developed.
    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 replies    2015-05-21 09:46:03 +08:00
    feilaoda
        1
    feilaoda  
       May 20, 2015
    你公司用的Esper?
    你这个有没有测试过在数据量很大时,超过1亿条,速度如何?
    ledkk
        2
    ledkk  
       May 21, 2015
    先下下来瞅瞅
    jadetang
        3
    jadetang  
    OP
       May 21, 2015
    @feilaoda 没有用ESPER,另外这个都是在内存中计算的,如果是1亿条,早就OOM了。我们的场景是,利用队列,一批一批的计算,结合外部的排重服务,例如bloomfilter计算去重的指标。
    jadetang
        4
    jadetang  
    OP
       May 21, 2015
    @ledkk 目前只支持三种数据类型,int,double,string。没事的话,给个星吧。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3185 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:42 · PVG 18:42 · LAX 03:42 · JFK 06:42
    ♥ Do have faith in what you're doing.