V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Stupidbanana008
V2EX  ›  数据库

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

  •  
  •   Stupidbanana008 · Apr 27, 2021 · 3792 views
    This topic created in 1834 days ago, the information mentioned may be changed or developed.

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

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

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