• InfluxDB时序数据库基本知识


    InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。

    安装下载

    官网界面打开js报错,所以点击下载没有什么效果,后来在网上查了下在网页中其实已经暴露出来了,需要用chrome浏览器开发者模式,搜索windows,找到influxdb,后面我要下载Chronograf也是采取了同样的办法。

    点击链接可以下载
    influxdb-1.7.10_windows_amd64.zip
    chronograf-1.8.0_windows_amd64.zip
    kapacitor-1.5.5_windows_amd64.zip
    telegraf-1.14.2_windows_amd64.zip

    解压到安装盘

    略过配图

    修改配置文件

    修改conf文件,代码如下,直接复制粘贴,注意修改路径,带D盘的改为你的安装路径就好,一共三个。

    [meta]
      # Where the metadata/raft database is stored
      dir = "C:/influxdb/meta"
    
      # Automatically create a default retention policy when creating a database.
      # retention-autocreate = true
    
      # If log messages are printed for the meta service
      # logging-enabled = true
    
    ###
    ### [data]
    ###
    ### Controls where the actual shard data for InfluxDB lives and how it is
    ### flushed from the WAL. "dir" may need to be changed to a suitable place
    ### for your system, but the WAL settings are an advanced configuration. The
    ### defaults should work for most systems.
    ###
    
    [data]
      # The directory where the TSM storage engine stores TSM files.
      dir = "C:/influxdb/data"
    
      # The directory where the TSM storage engine stores WAL files.
      wal-dir = "C:/influxdb/wal"
      ...后面省略一万行
    

    运行

    • 双击influxd.exe启动数据库。
    • 然后双击influx.exe,可以连接数据库进行操作
    • 进入cmd命令,加载配置文件
    cmd >> influxd -config influxdb.conf
    

    建议通过nssm工具安装成服务,这样就不需要每次命令行启动了。
    下载地址如下:http://www.nssm.cc/download

    我们选择win64,进入文件夹后运行cmd,输入nssm install InfluxDB 运行后出现如下界面:
    重点说一下参数这一栏,Argument里输入:-config influxdb.conf,类似上面在cmd中输入Influxd -config influxdb.conf

    安装好后运行起来就好,Grafana的安装类似上面的操作,只是Argument这一栏不需要输入任何东西

    Web界面管理

    • 解压chronograf
    • 双击chronograf.exe,可以打开网页管理界面,浏览器输入http://localhost:8888/
      可以看到美妙的画面,我用admin/admin可以登入,其实不输密码应该也可以,这里没仔细研究。

    基础概念对比

    概念 MySQL InfluxDB
    数据库(同) database database
    表(不同) table measurement
    列(不同) column tag(索引的,非必须)、field(不带索引)、timestemp(唯一主键)
    • tag set:不同的每组tag key和tag value的集合;
    • field set:每组field key和field value的集合;
    • retention policy:数据存储策略(默认策略为autogen)InfluxDB没有删除数据操作,规定数据的保留时间达到清除数据的目的;
    • series:共同retention policy,measurement和tag set的集合;
    • 示例数据如下: 其中census是measurement,butterflies和honeybees是field key,location和scientist是tag key

    注意点

    • tag 只能为字符串类型
    • field 类型无限制
    • 不支持join
    • 支持连续查询操作(汇总统计数据):CONTINUOUS QUERY
    • 配合Telegraf服务(Telegraf可以监控系统CPU、内存、网络等数据)
    • 配合Grafana服务(数据展现的图像界面,将influxdb中的数据可视化)

    常用InfluxQL

    • 查看所有的数据库
      show databases;
    • 使用特定的数据库
      use database_name;
    • 查看所有的measurement
      show measurements;
    • 查询10条数据
      select * from measurement_name limit 10;
    • 数据中的时间字段默认显示的是一个纳秒时间戳,改成可读格式
      precision rfc3339; -- 之后再查询,时间就是rfc3339标准格式
    • 或可以在连接数据库的时候,直接带该参数
      influx -precision rfc3339
    • 查看一个measurement中所有的tag key
      show tag keys
    • 查看一个measurement中所有的field key
      show field keys
    • 查看一个measurement中所有的保存策略(可以有多个,一个标识为default)
      show retention policies;

    客户端命令行方式操作

    数据库操作

    • create database 指定数据库
    • show databases 显示所有数据库
    • drop database 指定数据库
    • use 使用指定数据库
    Connected to http://localhost:8086 version 1.7.10
    InfluxDB shell version: 1.7.10
    >create database autocontrol
    >show databases
    name: databases
    name
    ----
    _internal
    autocontrol
    

    InfluxDB数据表操作

    • 当有数据插入时自动创建表
    insert loop,hostname=Tag索引 value=值
    
    • 在insert执行语句中,tag与tag、field与field之间用都好进行分割,tag与field之间用空格分割
    • tag的value都是,String类型,不需要加双引号
    • field的String类型数据,需要放在双引号中,否则会报错
    • 如果需要显示添加时间戳,在filed后添加空格,再添加时间戳

    查询表

    select * from loop
    
    • 删除表
    drop measurement loop
    

    数据保存策略(Retention Policies)

    influxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。

    查看当前数据库Retention Policies

    > show retention policies on autocontrol
    name    duration shardGroupDuration replicaN default
    ----    -------- ------------------ -------- -------
    autogen 0s       168h0m0s           1        true
    >
    

    创建新的Retention Policies

    create retention policy "rp_name" on "db_name" duration 3w replication 1 default
    
    • rp_name:策略名;
    • db_name:具体的数据库名;
    • 3w:保存3周,3周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期);
    • replication 1:副本个数,一般为1就可以了;
    • default:设置为默认策略

    修改Retention Policies

    alter retention policy "rp_name" on "db_name" duration 30d default
    

    删除Retention Policies

    drop retention policy "rp_name" on "db_name"
    

  • 相关阅读:
    移动端UI
    jQuery 下拉框三级联动
    jQuery基础与学习资源
    jQuery
    TCP、UDP、HTTP、SOCKET之间的区别
    Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
    android 中 任务、进程和线程的区别
    android中不同手机分辨率适配问题
    经验分享:CSS浮动(float,clear)通俗讲解(真的很通俗)
    关于各种排列组合java算法
  • 原文地址:https://www.cnblogs.com/zhanwei103/p/13157971.html
Copyright © 2020-2023  润新知