Go 语言写的玩具数据库 TickDB - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
vimrus
V2EX    分享创造

Go 语言写的玩具数据库 TickDB

  •  2
     
  •   vimrus 2016-06-01 18:19:45+08:00 4454 次点击
    这是一个创建于 3449 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这几天在处理股票的 tick 数据,希望能够实时生成各周期的 K 线。目前流行的时间序列数据库都不是很合适,所以自己实现了一个,名字就叫 TickDB 。

    TickDB 主要关注 group 功能,比如这个应用场景:服务器的原始数据是每隔 1 秒生成的,但要求按照每分钟的最高值展现。

    TickDB 的特性

    1.数值型时间序列数据库, key 为时间戳
    2.无模式,支持多列
    3.可以构建丰富的 group 算法
    4.支持无序的时间数据
    5.基于 HTTP 的 JSON 查询支持


    Github : https://github.com/vimrus/tickdb

    相关参考:
    http://misfra.me 这个博客关于时间序列数据库的文章都很好, TickDB 用的存储引擎 Catena 就是该作者编写的
    https://github.com/dustin/seriesly 一个非常清晰的数据库, TickDB 参考了其设计思路

    目前 TickDB 还处于玩具阶段,不过已经满足目前我的需求了。沪深任意一只股票的当日 Level1 数据生成分钟 K 线,可以控制在 10ms 以内。

    后面的开发计划主要是增加 group 类型,实现索引及新的存储引擎。

    如果感兴趣的话,欢迎一起玩耍!
    13 条回复    2016-06-19 21:30:34 +08:00
    bigtan
        1
    bigtan  
       2016-06-01 19:38:29 +08:00
    好东西啊,我们现在一般都是自己手动切割的,历史的都是用 aplit-apply-aggregate 的思路批量生成的,已经落地了。看到 reducer 关键字,我就知道,思路是差不多的。
    vimrus
        2
    vimrus  
    OP
       2016-06-01 19:44:22 +08:00
    @bigtan 用的是 R 语言吗?
    bigtan
        3
    bigtan  
       2016-06-01 19:51:02 +08:00
    @vimrus Python
    vimrus
        4
    vimrus  
    OP
       2016-06-01 20:05:06 +08:00
    @bigtan Pandas 神器,想写个 Golang 版本的
    zjgsamuel
        5
    zjgsamuel  
       2016-06-01 20:08:55 +08:00
    标题看成 PingCAP 团队的 TiDB 了 ~~
    Comdex
        6
    Comdex  
       2016-06-01 23:55:36 +08:00
    @vimrus 热烈支持开发 golang 版的 pandas
    xiamx
        7
    xiamx  
       2016-06-02 06:30:44 +08:00
    楼主,这个跟 influxDB 比有什么区别?
    c4pt0r
        8
    c4pt0r  
       2016-06-02 10:36:48 +08:00
    cool, lz 在北京吗?
    vimrus
        9
    vimrus  
    OP
       2016-06-02 10:48:49 +08:00
    InfluxDB 支持字符串类型,而且有一个类似于 SQL 的查询语法。 TickDB 只是存储数值型的数据,着重于更多的聚合函数,而且会基于自然时间(分钟,天)做索引。
    InfluxDB 的应用面会更广一些, TickDB 主要做数值处理。
    vimrus
        10
    vimrus  
    OP
       2016-06-02 10:55:51 +08:00
    @c4pt0r 目前处于无业状态,过两月可能会去北京。

    很喜欢 TiDB ,希望你们能够成功!
    c4pt0r
        11
    c4pt0r  
       2016-06-02 11:00:57 +08:00
    @vimrus I've already sent u an email~ nice to meet u. :)
    leedstyh
        12
    leedstyh  
       2016-06-17 00:31:42 +08:00
    不提 PR 了,这段代码( https://github.com/vimrus/tickdb/blob/master/database.go#L120-#L125 ),似乎应该先 check err ,然后再 defer close 。
    vimrus
        13
    vimrus  
    OP
       2016-06-19 21:30:34 +08:00
    @leedstyh 好的,明天我改下。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3574 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 344ms UTC 04:21 PVG 12:21 LAX 20:21 JFK 23:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86