InfluxDB初探

作者: 叮咣铛 | 来源:发表于2019-07-01 22:04 被阅读0次

    公司IOT业务涉及一个查询 终端过去两天上报数据曲线
    数据量:单日新增460w
    查询曲线时特别卡

    这个问题本质上是

    海量数据的存储和查询问题

    特点是写入的数据不需要修改,和日志非常像

    时序数据库InfluxDB进入视线

    经过两天的折腾,基本把InfluxDB官方文档全撸了...
    https://docs.influxdata.com/influxdb/v1.7/about_the_project/

    测试结果如下:

    Mac盒子OSX10.12  InfluxDB1.7
    
    2019-06-01 ~ 2019-06-04
    4天多一点的数据(本来计划导一个月,周末机器断电了)
    18692759  --> 1800万条记录
    占磁盘空间 160M +50M索引  ---》210M左右
    查询单个设备 5天内 数据点值
    LZYZX00009 
    耗时 494毫秒(MySql 需要21s)
    
    迁移成本:

    初步思路

    1,历史数据(昨天及之前一个月内)
      从MySql 导出到InfluxDB
      写个定时任务,每天晚21:00导出前一天整天数据到InfluxDB
      
    2,开发一个模块 ,提供Rest api接口,
        查询某个设备,指定时间段内的数据点值
    
    

    what:

    时序数据库
    why:

    天生适合IOT
    

    where:

                配合Grafana 搭建很好的监控平台
    

    InfluxDB +Grafana 搭建监控平台

    借用别人的

    优点:

    支持基本sql
    Retention policy :数据存活时间设置,过期自动清除、
    down-sampling : 取样    非常适合IOT设备 数据压缩
    
    占用空间小(实测 1600w条数据 5字段 time 1个tag 2个 value2个 
    InfluxDB1.7 osx系统 data + meta等共计 200M)
    
    接口简单  安装后直接http访问  开发可用client api
    
    上手容易
    

    java client 库

    缺点:

    不适合需要频繁修改的数据
    OSS社区免费版 仅支持一个node ,即不支持冗余容灾(需要自己另外做处理,定期备份啥的)
    
    

    槽点:

    1,存活时间 不是依赖于数据插入时的时间,而是time字段的时间
    
    比如 :
    retention policy 设置 1天
     你2019-06-29 12:00:00 插入一条记录   
    
    time值 2019-06-28 12:00:00
    基本插入就没了.....
    
    因为他是以插入的time值来推算的过期清理时间
    
    2,有些概念比较绕
        比如 Series, Group duration
    3,管理工具远程操作 http不方便,是这样的格式:
          curl -G 'http://192.168.1.138:8086/query?db=testdb&pretty=true' --data-urlencode 'q=SELECT * FROM "mymeas"'
    
      所以推荐个工具:Time Series Admin
    

    参考

    https://dzone.com/articles/simplifying-influxdb-shards-and-retention-policies

    https://stackshare.io/influxdb
    https://docs.influxdata.com/influxdb/v1.7/tools/api/
    https://www.influxdata.com/blog/influxdb-shards-retention-policies/

    https://dzone.com/articles/influxdb-internals-101-part-one?fromrel=true

    https://blog.codeship.com/a-deep-dive-into-influxdb/

    Hardware sizing guidelines

    https://docs.influxdata.com/influxdb/v1.7/guides/hardware_sizing/

    https://medium.com/cobe-io/memory-adventures-with-influxdb-28b8157aebe8

    http://hbasefly.com/2018/03/27/timeseries-database-6/

    相关文章

      网友评论

        本文标题:InfluxDB初探

        本文链接:https://www.haomeiwen.com/subject/pgxocctx.html