V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Stupidbanana008
V2EX  ›  数据库

物联网相关,怎么选数据库?

  •  
  •   Stupidbanana008 · 2021-04-27 13:07:03 +08:00 · 2996 次点击
    这是一个创建于 1325 天前的主题,其中的信息可能已经有所发展或是发生改变。

    业务上有需求,每天每台设备 6000 数据量,预设设备数量最多 10 万。 以前用过 2 年 Oracle,但是没什么学习资料的,只是用用。 MySQL 倒是水平还可以,但是这么大的数据量以前也没玩过。 这些数据都得留着,属于原始数据,还得处理成业务数据。 问下大佬们怎么选数据库,包括选了之后性能和扩展性如何

    第 1 条附言  ·  2021-04-27 14:47:55 +08:00
    目前是这么干的,一次上传的数据经过解析之后按照下面的格式存数据库。ID/时间 /属性类型 /属性值 /排序值,还有一些不重要的列,往 Oracle 里面塞。一条数据里面有 20 个字段左右,这么拆了之后单台设备每天会有 6000 条数据。这个原始数据可能也要查询的,所以存文件处理完了之后放业务表是不现实的。时序数据库还真没玩过,大佬们有没有别的优化思路,比如换个存法?毕竟自己都不会,说服领导挺麻烦的
    21 条回复    2021-06-19 11:00:14 +08:00
    masterclock
        1
    masterclock  
       2021-04-27 13:28:33 +08:00   ❤️ 1
    https://db-engines.com/en/ranking/time+series+dbms
    时间序列数据库,根据工具链、场景等选 influxdb 、timescaledb 、druid 等
    Yelp
        2
    Yelp  
       2021-04-27 13:41:50 +08:00   ❤️ 1
    TimescaleDB 一把梭
    GuangXiN
        3
    GuangXiN  
       2021-04-27 13:56:20 +08:00 via Android
    @Yelp 我正好需要这种时间相关性很强的数据库,感谢分享
    solaya
        4
    solaya  
       2021-04-27 14:02:33 +08:00
    HBase
    Mithril
        5
    Mithril  
       2021-04-27 14:13:21 +08:00
    死数据不需要数据库啊,直接存文件就行了。处理成了业务数据再往数据库里存。
    如果需要作为时序数据分析的话,就用时序数据库。influx,druid 或者 ES 都有这功能。
    如果不需要那就直接 SQL 。
    NoBugDie
        6
    NoBugDie  
       2021-04-27 14:24:06 +08:00 via Android
    influxdb 单机版存储目前你说的这个问题不大 不过扩展性确实成问题
    rapperx2
        7
    rapperx2  
       2021-04-27 14:31:07 +08:00
    和我们公司的业务很像,我们也是做的 IOT,如果感兴趣的话可以+V 交流 base64: eGRzMTk5OXhkcw==
    corningsun
        8
    corningsun  
       2021-04-27 14:47:48 +08:00
    一天 6 亿,这个写入量就很夸张了。
    关系数据库、ES 之类的成本太高了。
    建议直接写文件,然后 Logstash 之类的统一采集后归并到 Hive 库,再用大数据那一套处理成业务数据就好了。
    masterclock
        9
    masterclock  
       2021-04-27 15:01:01 +08:00
    timescaledb 就是 pg,没啥好优化的,存就是了
    Curtion
        10
    Curtion  
       2021-04-27 15:09:11 +08:00
    https://github.com/taosdata/TDengine 这是国产的时序数据库,经常看见推广
    chionetw5
        11
    chionetw5  
       2021-04-27 15:18:42 +08:00
    clickhouse 怎么样,和 mysql 差不多语法
    liprais
        12
    liprais  
       2021-04-27 15:22:33 +08:00
    这个数据量甲骨文建好索引轻轻松松了
    Michaelssss
        13
    Michaelssss  
       2021-04-27 15:22:46 +08:00
    你自己重新实现数据库的存储部分就好了。。。撸一遍就知道不同数据库之间的区别在哪
    est
        14
    est  
       2021-04-27 15:24:36 +08:00
    timescaledb 用了很多年了
    SlipStupig
        15
    SlipStupig  
       2021-04-27 16:13:26 +08:00   ❤️ 6
    这种源数据最好就是原始采集不要做任何处理否则随着业务变化或者业务结合,数据容易造成数据载荷丢失、业务僵化,算力扩展困难,直接存到 HDFS 里面无论从经济、生态和灵活性考虑。下游业务抽取数据可以通过 Hadoop 和 kafka 结合,可以并行支撑多个业务线,做一些历史报表也很容易。
    flyingfz
        16
    flyingfz  
       2021-04-27 16:37:44 +08:00
    timethinker
        17
    timethinker  
       2021-04-27 16:58:01 +08:00
    这种是日志型数据,即追加写的方式记录全量数据,所以要用到日志型数据库 /消息队列,后续消费可以进行批量处理或者流处理,产生派生数据(即基于记录的全量日志数据衍生出来作为分析目的数据模型)。

    就像楼上各位说的,可选的工具很多,如果是需要实时分析的,我个人可能会使用 kafka,然后用各种消费者去生成派生数据,可以根据规模对消息进行分区,这样做是为了将写入和计算并行处理,提高整体处理的吞吐量。
    clf
        18
    clf  
       2021-04-27 17:13:54 +08:00
    时序数据库,然后消息队列作为中间件。
    ychost
        19
    ychost  
       2021-04-27 17:28:39 +08:00
    influxDB 很适合你,配合 Grafana 可配置出漂亮的图表
    beginor
        20
    beginor  
       2021-04-27 22:37:48 +08:00 via Android
    timescaledb +1
    peakmonkey
        21
    peakmonkey  
       2021-06-19 11:00:14 +08:00
    可以试试: https://memfiredb.com ,之前我们做智能工厂的项目,采集的是生产机台的数据,大概每 5 秒 400 多个点的数据,工厂三班倒,几乎不咋停,连续用了 3 个多月,没啥问题。输出图表以及配置物联网网关用的是 ThingsBoard 。
    顺手分享一下刚才推荐的那个数据库的邀请码:
    q6xZnV
    q6xzJG
    q6wTN4
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1059 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:15 · PVG 02:15 · LAX 10:15 · JFK 13:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.