精华内容
下载资源
问答
  • InfluxDB 使用手册

    2021-02-18 17:20:41
    InfluxDB 使用手册 目录 InfluxDB 使用手册 1 一、 InfluxDB简介 1 InfluxDB是什么 1 二、 InfluxDB基础概念 1 Database 1 Measurement 2 Point 2 Series 2 tag sets 3 Retention policy 3 Shard Group 3 Shard 3 ...

    InfluxDB 使用手册

    一、InfluxDB简介

    1.InfluxDB是什么

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

    二、InfluxDB基础概念

    1.Database

    数据库名,在 InfluxDB 中可以创建多个数据库,不同数据库中的数据文件是隔离存放的,存放在磁盘上的不同目录。

    2.Measurement

    类似于Mysql中的表。

    3.Point

    类似于Mysql表中的一行数据。point的数据结构由时间戳(time)、标签(tags)、数据(fields)三部分组成,具体含义如下:

    Point属性含义
    time数据记录的时间,是主索引(自动生成)
    tags各种有索引的属性
    fields各种value值,没有索引的属性

    Point属性 含义
    time 数据记录的时间,是主索引(自动生成)
    tags 各种有索引的属性
    fields 各种value值,没有索引的属性
    在InfluxDB中,tag是一个非常重要的部分,表名+tag一起作为数据库的索引,是“key-value”的形式。

    4.Series

    Series 相当于是 InfluxDB 中一些数据的集合,在同一个 database 中,retention policy、measurement、tag sets 完全相同的数据同属于一个 series,同一个 series 的数据在物理上会按照时间顺序排列存储在一起。InfluxDB在存储数据时,是根据series(即measurement与tag set的一个唯一组合)的哈希值来决定落在哪个Shard中的,哈希分桶数——即Shard的数目——在商用版中可以调整。这样就使得series相同的数据落在相同的Shard里,有利于提高查询效率。同时也会使一个Shard中可能包含多个measurement的数据(相对地,一个HBase Region只会包含一张表的数据),有利于负载均衡。

    5.tag sets

    tags 在 InfluxDB 中会按照字典序排序,不管是 tagkey 还是 tagvalue,只要不一致就分别属于两个 key,例如 host=server01,region=us-west 和 host=server02,region=us-west 就是两个不同的 tag set。

    6.Retention policy

    存储策略,用于设置数据保留的时间,每个数据库刚开始会自动创建一个默认的存储策略 autogen,数据保留时间为永久,之后用户可以自己设置,例如保留最近2小时的数据。插入和查询数据时如果不指定存储策略,则使用默认存储策略,且默认存储策略可以修改。InfluxDB 会定期清除过期的数据。

    7.Shard Group

    Shard Group是一个逻辑概念,顾名思义,它就是包含多个Shard的组合。Shard Group的重要特性是时间分区性,即每个Shard Group只会存储一段时间内的数据,各个Shard Group对应的时间区间不会交叉。时序数据库上的查询几乎全都会带有时间维度的过滤条件,Shard Group按时间区间的组织形式可以很高效地实现partition pruning,另外也方便下文所说的数据过期。

    8.Shard

    Shard 在 InfluxDB 中是一个比较重要的概念,它和 retention policy 相关联,类似于HBase的Region和Kudu的Tablet,是数据编码、存储、写入和读取的交互单元。每一个存储策略下会存在许多 shard,每一个 shard 存储一个指定时间段内的数据,并且不重复,例如 7点-8点 的数据落入 shard0 中,8点-9点的数据则落入 shard1 中。每一个 shard 都对应一个底层的 tsm 存储引擎,有独立的 Cache、WAL、TSM File。具体解释如下:
    TSM 存储引擎主要由几个部分组成: cache、wal、tsm file、compactor。
    WAL:预写日志,相当于HLog
    Cache:写缓存,相当于MemStore
    TSM File:数据存储文件,相当于HFile
    TSI/TSI File:内存中的倒排索引及磁盘上的索引文件,方便查询
    Compaction:主要进行两种操作,一种是 cache 数据达到阀值后,进行快照,生成一个新的 tsm 文件。另外一种就是合并当前的 tsm 文件,将多个小的 tsm 文件合并成一个,减少文件的数量,并且进行一些数据删除操作。 这些操作都在后台自动完成,一般每隔 1 秒会检查一次是否有需要压缩合并的数据。

    InfluxDB存储体系图
    InfluxDB存储体系图

                                   InfluxDB存储体系图
    

    三、InfluxDB基础操作

    1.数据库命令

    创建数据库

    create database “db_name”

    显示所有的数据库

    show databases

    删除数据库

    drop database “db_name”

    使用数据库

    use db_name

    显示该数据库中所有的表

    show measurements

    创建表,直接在插入数据的时候指定表名
    //创建test表,host和monitor_name为tag,count为fields

    insert test,host=127.0.0.1,monitor_name=test count=1

    删除表

    drop measurement “measurement_name”

    2.新增数据命令

    新增数据
    //新增一条数据,measurement为add_test, tag为name,phone, field为user_id,email

    insert add_test,name=YiHui,phone=110 user_id=20,email=“bangzewu@126.com”
    在这里插入图片描述

                                              新增数据  
    

    新增数据带上保存策略和时间戳
    //前面写入数据没有指定保存策略,表示这条数据写入到默认的保存策略中;一个数据库可以有多个保存策略,一个measurement中也可以存不同的保存策略的数据,在写入数据时,如果需要指定保存策略,可以使用 insert into 保存策略 …
    //当写入数据不指定时间时,会自动用当前时间来补齐,如果需要自己指定时间,再最后面添加上即可,注意时间为ns
    //新增一条数据,保存策略为1_d,measurement为add_test, tag为name,phone, field为user_id,email,age,boy 时间戳为1564150279123000000

    insert into “1_d” add_test,name=YiHui2,phone=911 user_id=23,email=“bangzewu@126.com”,age=18i,boy=true 1564150279123000000

    在这里插入图片描述

                                       新增数据
    

    新增数据语法:insert into measurement,tagKey=tagValue fieldKey=fieldValue timestamp
    总结:
    (1)insert + measurement + “,” + tag=value,tag=value + + field=value,field=value
    (2)tag与tag之间用逗号分隔;field与field之间用逗号分隔
    (3)tag与field之间用空格分隔field
    (4)可以没有tag,但是不能没有
    (5)根据前面的说明已经实测,可以
    (6)tag都是string类型,不需要引号将value包裹
    (7)field如果是string类型,需要加引号
    (8)field有四种类型,int, float, string, boolean
    在这里插入图片描述

                                         field类型
    
    类型方式示例
    Int数字iage=18i
    Float数字user_id=21
    Booleantrue/falseboy=true
    String“” or ‘’email=“111@163.com”

    删除数据
    无删除数据,只能使用数据保存策略删除数据

    3.查询数据命令

    查询数据
    //简单查询

    SELECT * FROM device WHERE time > now() - 5m
    在这里插入图片描述

                                         查询数据
    

    //add_test表内1_d的保存策略数据查询

    select * from “1_d”.add_test;

    //查询条件,分类,排序,只取一条数据,时间本地化

    SELECT * FROM %s WHERE time > now() - 10m group by sn ORDER BY time DESC limit 1 tz(‘Asia/Shanghai’)

    //双引号和单引号意义不同,InfluxDB区分严格

    SELECT * FROM %s WHERE time > now() - 3m AND sn = ‘test_topic_jmeter002’ ORDER BY time DESC LIMIT 1 tz(‘Asia/Shanghai’)

    //offset 100 从第101条数据开始取 加上limit限制完成分页

    SELECT * FROM %s WHERE sn = ‘%s’ AND time >= ‘%s’ AND time <= ‘%s’ ORDER BY time DESC LIMIT %d offset %d tz(‘Asia/Shanghai’)

    //查询总条数

    SELECT COUNT(字段) FROM %s WHERE sn = ‘%s’

    连续查询(Continous Queries)
    当数据超过保存策略里指定的时间之后就会被删除,但是这时候可能并不想数据被完全删掉,influxdb提供了连续查询,可以做数据统计采样。

    //查看数据库的Continous Queries

    show continuous queries

    //创建新的Continous Queries

    create continous query cq_name on db_name begin select sum(count) into new_table_name from table_name group by time(30m) end
    其中:
    <cq_name>:连续查询名字;
    <db_name>:数据库名字;
    <sum(count)>:计算总和;
    <table_name>:当前表名;
    <new_table_name>:存新的数据的表名;
    <30m>:时间间隔为30分钟

    //删除Continous Queries

    drop continous query cp_name on db_name

    4.用户命令

    显示用户

    show users

    创建用户

    create user “username” with password ‘password’

    创建管理员权限用户

    create user “username” with password ‘password’ with all privileges

    删除用户

    drop user “username”

    5.保留策略命令

    查询保留策略

    SHOW RETENTION POLICIES ON db_name

    #新建策略
    //在 mydb库添加了一个24小时的策略,名字叫做 def_new , duration为24小时,副本为1,若要直接定义为默认加上关键字DEFAULT

    CREATE RETENTION POLICY “def_new” ON mydb DURATION 24h REPLICATION 1(DEFAULT)

    新建保存策略语法:
    CREATE RETENTION POLICY <retention_policy_name> ON <database_name>
    DURATION
    REPLICATION <replication_num>
    [SHARD DURATION <shard_duration>] [DEFAULT]

    其中:
    <retention_policy_name>是保留策略的名称;
    <database_name>是数据库的名称;
    是数据的TTL;
    <replication_num>是数据的副本数;
    <shard_duration>是可选项,表示每个Shard Group的时间区间长度;
    DEFAULT也是可选项,如果指定,表示将此策略顺便设为默认。
    如果不指定shard duration的话,当duration小于2天时,shard duration默认为1小时;duration介于2天和6个月之间时,shard duration默认为1天;duration大于6个月时,shard duration默认为7天。
    在这里插入图片描述

                                            系统默认分片时间
    

    //默认的保存策略autogen中的duraiton=0,这里表示这条数据不会被删除。默认的永久保存策略中,有个 shardGroupDuration 参数,为7天,也就是说7天的数据放在一个Shard中,过了之后,新加一个Shard

    修改策略

    ALTER RETENTION POLICY def_new ON mydb DURATION 48h DEFAULT

    删除策略

    drop retention POLICY def_new ON mydb

    展开全文
  • influxdb 使用

    2021-02-23 07:18:32
    使用Go语言编写的一个开源的时序型数据库,使用于海量时序数据的高性能读、高性能写、高效存储与实时分析等 时序数据库是一种按照时间存储的数据库。解决是海量数据的高效插入查询。主要应用在互联网的大规模数据...

    是什么

    是使用Go语言编写的一个开源的时序型数据库,使用于海量时序数据的高性能读、高性能写、高效存储与实时分析等

    • 时序数据库是一种按照时间存储的数据库。解决是海量数据的高效插入查询。主要应用在互联网的大规模数据统计分析上面,物联网的信息收集方面。

    特点

    1. 部署简单、使用方便,无需任何外部依赖即可独立部署
    2. 提供类似于SQL的查询语言
    3. 提供灵活的数据保存策略来设置数据的保留时间和副本数,在保障数据可靠性的同时,及时删除过期数据,释放存储空间
    4. 高性能读写及存储率
    5. 丰富的聚合函数,支持AVG、SUM、MAX、MIN等聚合函数。

    使用场景

    主要使用于运维监控、物联网监控等场景,通过实现高度可扩展的数据接收和存储引擎,可以高效地实时收集、存储、查询、可视化显示和执行预定义操作

    InfluxDB的写性能是MongoDB的2.4倍,存储效率是MongoDB的20倍,查询效率是MongoDB的5.7倍

    使用

    springboot集成influxdb

    导包

    <dependency>
      <groupId>com.github.miwurster</groupId>
      <artifactId>spring-data-influxdb</artifactId>
      <version>1.8</version>
    </dependency>
    

    yml配置

    spring:
      influxdb:
        url: http://localhost:8086
        username: user
        password: ~
        database: test
        retention-policy: autogen # 保留策略
        connect-timeout: 10
        read-timeout: 30
        write-timeout: 10
        gzip: true #启用gzip压缩以减小传输数据的大小
    

    Configuration配置

    @Configuration
    @EnableConfigurationProperties(InfluxDBProperties.class)
    public class InfluxDBConfiguration
    {
      @Bean
      public InfluxDBConnectionFactory connectionFactory(final InfluxDBProperties properties)
      {
        return new InfluxDBConnectionFactory(properties);
      }
    
      @Bean
      public InfluxDBTemplate<Point> influxDBTemplate(final InfluxDBConnectionFactory connectionFactory)
      {
        return new InfluxDBTemplate<>(connectionFactory, new PointConverter());
      }
      
      @Bean
      public DefaultInfluxDBTemplate defaultTemplate(final InfluxDBConnectionFactory connectionFactory)
      {
        return new DefaultInfluxDBTemplate(connectionFactory);
      }
    }
    

    使用

    @Autowired
    private InfluxDBTemplate<Point> influxDBTemplate;
    
    influxDBTemplate.createDatabase();
    final Point p = Point.measurement("group")
      .time(System.currentTimeMillis(), TimeUnit.MILLISECONDS)
      .tag("test", "default")
      .addField("used", 80L)
      .addField("free", 1L)
      .build();
    influxDBTemplate.write(p);
    

    基础操作

    与传统数据库对比

    influxdb中的名词传统数据库
    database数据库
    measurement数据库中的表
    points表中的一条数据

    point

    Point由时间戳(time)、数据(field)、标签(tags)组成

    point属性传统数据库
    time每条数据的记录时间,是数据库的主要索引,会自动生成
    fields记录的值
    tags索引属性

    数据库操作

    显示数据库

    show databases
    

    创建数据库

    create database testdatabase
    

    删除数据库

    drop database testdatabase
    

    使用指定数据库

    use testdatabase
    

    显示所有表

    SHOW MEASUREMENTS
    

    新建表

    insert test,hostname=server01 value=12345
    

    test:表名 hostname:索引(tag) value:记录值(field)记录值可以有多个,系统自带追加时间戳

    删除表

    drop measurement test
    

    查询数据

    select * from 表名
    

    插入数据

    insert test,hostname=server02 value=6789
    

    删除数据

    create retention policy "rp_name" on "testdatabse" duration 3w replication 1 default
    

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

    数据库过期策略至少一个小时

    数据保护策略

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

    查看当前数据库保护策略

    show retention policies on "testdatabase"
    

    创建新的保护策略

    create retention policy "rp_name" on "testdatabase" duration 3w replication 1 default
    

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

    修改保护策略

    alter retention policy “rp_name” on “testdatabase” duration 30d default
    

    删除保护策略

    rop retention policy “rp_name” on “testdatabase"
    

    服务操作

    启动

    sudo service influxdb start
    

    重启

    sudo service influxdb restart
    
    展开全文
  • 2.Influxdb使用2

    2020-08-10 10:05:30
    1.Influxdb使用1 五、服务端启动-centos 方法1:直接使用influxdb的配置文件启动 influxd -config /etc/influxdb/influxdb.conf 方法2:配置文件添加到系统环境变量中,只使用influxd命令启动。 将/etc/...

    原创 George555    公众号: 测试江湖路 

    如果这些内容对你有帮助,也可以打开微信扫一扫,加关注:

    接上一篇:

    1.Influxdb使用1

     

    五、服务端启动-centos

        方法1:直接使用influxdb的配置文件启动

            influxd -config /etc/influxdb/influxdb.conf

        方法2:配置文件添加到系统环境变量中,只使用influxd命令启动。

            将/etc/influxdb/influxdb.conf添加到新增的系统环境变量INFLUXDB_CONFIG_PATH值上,就可以只用influxd命令启动且关联到配置的influxdb.conf文件了。

            打开/etc/profile文件,默认添加:

    INFLUXDB_CONFIG_PATH=/etc/influxdb/influxdb.conf
    PATH=$PATH:$INFLUXDB_CONFIG_PATH
    export PATH

     这样就可以每次只使用influxd 命令启动服务端了。

        方法3:把influxd放入后台服务启动,方式命令端启动在关闭(断开连接)后服务停掉。

    nohup 你的命令 &

    示例:    nohup influxd &

        说明:&:把服务挂在后台运行;nohup:断开ssh连接时服务还保持着。

        关闭nohup的进程:

    ps -ef|grep influxd   #  (查找运行该influxd命令的进程id)
    kill -9 pid       #(根据进程号关闭程序)

    执行命令汇总如下:

    [root@localhost ~]# nohup influxd &
    [1] 17915
    [root@localhost ~]# nohup: ignoring input and appending output to `nohup.out'
    [root@localhost ~]# ps -ef|grep influxd
    root      17915  17544  0 09:58 pts/0    00:00:02 influxd
    root      17989  17544  0 10:07 pts/0    00:00:00 grep influxd
    [root@localhost ~]# kill -9 17915
    [root@localhost ~]# ps -ef|grep influxd
    root      18004  17544  0 10:10 pts/0    00:00:00 grep influxd
    [1]+  Killed                  nohup influxd

    六、服务端启动-Windows

        启动方式1: 直接输入命令方式

        influxd.exe -config influxdb.conf

        启动后如下图:

        注意:此处命令需要加config参数,指定配置文件,否则直接双击influxd.exe文件关联的是默认配置,不是自己修改的配置文件。---->这一步很关键,操作错误会导致jmeter的数据无法提交到influxdb中。

        启动方式2:使用bat文件方式,内容如下:

    set HOME=d:\influx
    influxd.exe -config influxdb.conf

     注:influxdb.conf为配置文件;d:\influx 为数据存放总目录

    七、客户端连接 windows和linux客户端使用类似

        1.cmd方式: 注意ip:localhost 和端口号:8083都不需要引号

    E:\influxdb-1.2.0>influx -database 'jmeterTest' -host localhost -port 80
    83 -format 'json' -pretty
    Connected to http://localhost:8083 version 1.2.0
    InfluxDB shell version: 1.2.0

        2.web访问方式:  根据配置文件中admin节点的端口,使用ip:端口访问,    当然这里的web端正如开头写到的,只有在1.3版本之前可用。1.3后版本需要用命令方式连接使用了。

        如果想在1.3版本后继续使用web端那也有办法,请参考后面的方法。

    见如下图:

        右侧Query Templates点击后会弹出很多已经制定好查询sql模板,可以直接选择使用。选择后顶部Query文本框中就会出现对应查询sql,按回车就可以执行查询了。

        3.使用web端访问1.3+后续版本

            A.本地开启influxdb服务端,参照五、六点说明

            B.本地使用http://127.0.0.1:8083/打开web端

            C.在web端右上角点设置,进入远端连接influxdb数据库配置

            D.Host、Port、Username、Password输入想要连接的远端influxdb服务器对应信息后,点Save即可

            E.现在就可以来尝试去查询远端服务器上的数据了

    八、常见数据库操作语句梳理

        最后汇总下influx常用sql,以备在后面jmeter+influxdb+grafana中快速调整sql查询。

        1.创建数据库:默认端口8086,跟配置文件有关

    $ influx
    Connected to http://localhost:8086 version 0.10.0
    InfluxDB shell 0.10.0
    > CREATE DATABASE mydbTest

    2.查询数据库

    > SHOW DATABASES
    name: databases
    name
    ----
    _internal
    mydbTest

    3.选择数据库

    > USE mydbTest
    Using database mydb

     4.删除数据库

    DROP DATABASE "mydb"

    5.概念汇总

        先帖出官方提供的实际场景:不同时间下,多个地区在不同组海拔下的1天中的温度变化、湿度变化。

        measurement:传统数据库中的表

        points:传统数据库的表里面的一行数据。Point由时间戳(time)、数据(field)、标签(tags)组成

        time:每行数据记录的时间,数据库的主索引,自动生成。

        tags:各种索引的属性,比如地区、海拔

        fields:表格中的列,各种记录值,如温度、湿度

    6.插入数据

        用insert语句插入,或用http协议插入

    
    > USE mydbTest
    Using database mydbTest
    > insert weather,altitude=1000,area=北 temperature=11,humidity=-4
    > quit
    
    [root@localhost ~]# curl -i -XPOST 'http://192.168.2.253:8086/write?db=mydbTest' --data-binary 'weather,altitude=2000,area=南 temperature=31,humidity=-41'
    HTTP/1.1 204 No Content
    Content-Type: application/json
    Request-Id: 83bde21d-baa2-11ea-802e-000000000000
    X-Influxdb-Build: OSS
    X-Influxdb-Version: 1.6.2
    X-Request-Id: 83bde21d-baa2-11ea-802e-000000000000
    Date: Tue, 30 Jun 2020 07:22:54 GMT

    7. 查询数据

        A.用类似sql语句查询:

    > select * from weather
    name: weather
    time                altitude area humidity temperature
    ----                -------- ---- -------- -----------
    1593501698362884742 1000     北    -4       11
    1593501774595020469 2000     南    -41      31

       备注:

            weather :表名

            altitude=1000,area=北 :tag

            temperature=11,humidity=-4 :field

        B.用http接口查询:

    
    [root@localhost ~]# curl -G 'http://192.168.2.253:8086/query?pretty=true' --data-urlencode "db=mydbTest" --data-urlencode "q=SELECT * FROM weather ORDER BY time DESC LIMIT 3"
    {
        "results": [
            {
                "statement_id": 0,
                "series": [
                    {
                        "name": "weather",
                        "columns": [
                            "time",
                            "altitude",
                            "area",
                            "humidity",
                            "temperature"
                        ],
                        "values": [
                            [
                                "2020-06-30T07:22:54.595020469Z",
                                "2000",
                                "南",
                                -41,
                                31
                            ],
                            [
                                "2020-06-30T07:21:38.362884742Z",
                                "1000",
                                "北",
                                -4,
                                11
                            ]
                        ]
                    }
                ]
            }
        ]
    }

    8.删除和修改

        在InfluxDB中并没有提供数据(Points)的删除与修改方法。不过可以通过数据保存策略(Retention Policies)来实现删除。

        Retention Policies:用于指定数据的保留时间,当数据超过了指定的时间之后,就被删除。

        A.查看Retention Policies

    
    > SHOW RETENTION POLICIES ON "mydbTest"
    name    duration shardGroupDuration replicaN default
    ----    -------- ------------------ -------- -------
    autogen 0s       168h0m0s           1        true

       B.创建Retention Policies

    
    CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 3d REPLICATION 1 DEFAULT
    > CREATE RETENTION POLICY "Gtestname" ON "mydbTest" DURATION 1d REPLICATION 1 DEFAULT
    > SHOW RETENTION POLICIES ON "mydbTest"
    name      duration shardGroupDuration replicaN default
    ----      -------- ------------------ -------- -------
    autogen   0s       168h0m0s           1        false
    Gtestname 24h0m0s  1h0m0s             1        true

     rp_name:策略名

        3d:数据保留3天,3天前的被删除。时间参数,比如:h(小时),w(星期)

        REPLICATION:副本个数,默认1

        DEFAULT :设为默认策略

        C.修改Retention Policies

    
    ALTER RETENTION POLICY "Gtestname" ON "mydbTest" DURATION 1h DEFAULT

      D.删除Retention Policies

    
    DROP RETENTION POLICY "Gtestname" ON "mydbTest"

    9.查询指定库中所有表

    
    > use mydbTest
    Using database mydbTest
    > SHOW MEASUREMENTS
    name: measurements
    name
    ----
    weather

    10.删除表

    
    > SHOW MEASUREMENTS
    name: measurements
    name
    ----
    test
    weather
    > DROP MEASUREMENT "test"
    > SHOW MEASUREMENTS
    name: measurements
    name
    ----
    weather

    11.用户查询、创建、删除

    
    #查询用户
    SHOW USERS
    #创建用户
    CREATE USER "admin" WITH PASSWORD '123456'
    # 创建管理员权限的用户
    CREATE USER "admin" WITH PASSWORD '123456' WITH ALL PRIVILEGES
    # 删除用户
    DROP USER "admin"

    12.常用函数总结

        A.聚合函数Aggregations:COUNT()、DISTINCT()、INTEGRAL()、MEAN(),MEDIAN()、MODE()、SPREAD(),STDDEV()、SUM()等。

        COUNT() :返回一个field中的非空值数量

            语法:COUNT( [ * | <field_key> | /<regular_expression>/ ] )

            示例:COUNT(water):获取

        MEAN():求平均值,类型必须是整型或浮点型

            语法:MEAN( [ * | <field_key> | /<regular_expression>/ ] )

            示例:MEAN(water):获取water字段的算术平均值

        SPREAD():返回字段的最小和最大值的差值,类型必须是整型或浮点型

            语法:SPREAD( [ * | <field_key> | /<regular_expression>/ ] )

            示例:SPREAD(water):获取water字段值中最大和最小值的差

        SUM():求和,字段类型必须是整型或浮点型

            语法:SUM( [ * | <field_key> | /<regular_expression>/ ] )

            示例:SUM(water):获取water字段值之和

        B.选择函数Selectors: BOTTOM()、FIRST()、LAST()、MAX()、MIN()、PERCENTILE()、SAMPLE()、TOP()

        BOTTOM():返回字段中最小的N个值

            语法:BOTTOM(<field_key>[,<tag_keys>],<N>)

            示例:BOTTOM(water,3):获取3个最小的water值,然后正序输出。

        FIRST():返回一个字段中最早的值,即第1个值。

            语法:FIRST(<field_key>)

            示例:FIRST(water):获取water字段第一次创建的值。

        LAST():返回一个字段中最新的值,即最后1个值。

            语法:LAST(<field_key>)

            示例:LAST(water):获取water字段最后创建的值。

        TOP():返回字段中最大的前N个值,字段必须是整型或浮点型

            语法:TOP(<field_key>[,<tag_keys>],<N>)

            示例:TOP(water,3):获取3个最大的water值,然后倒序输出。

        MAX():返回字段中最大的值,该字段类型必须是长整型,float64,或布尔类型。

            语法:MAX(<field_key>)

            示例:MAX(water):获取water字段最大值

        MIN():返回一个字段中的最小值。该字段类型必须是长整型,float64,或布尔类型。

            语法:MIN(<field_key>)

            示例:MIN(water):获取water最小值

        PERCENTILE():返回排序值排位为N的百分值。字段的类型必须是长整型或float64。

        语法:PERCENTILE(<field_key>, <N>)

        示例:PERCENTILE(water, 3):获取water最小值

        SAMPLE():返回一个字段里N个随机值。

            语法:SAMPLE(<field_key>, <N>)

            示例:SAMPLE(water,3):随机获取water字段中3个值

        TOP():返回一个字段中最大的N个值,类型是长整型或float64。

            语法:TOP( <field_key>[,<tag_key(s)>],<N> )

            示例:TOP(water,3):获取water字段中最大的3个值

            注意:查询结果默认不按查询的字段排序。

      C.转换函数Transformations: CEILING()、CUMULATIVE_SUM()、DERIVATIVE()、DIFFERENCE()、ELAPSED()、FLOOR()、HISTOGRAM()、MOVING_AVERAGE()、NON_NEGATIVE_DERIVATIVE()、NON_NEGATIVE_DIFFERENCE()

     

        D.预测函数Predictors:HOLT_WINTERS()

        更多函数使用说明,可参考官网:

    https://docs.influxdata.com/influxdb/v1.3/query_language/functions


     

     

     

    #####欢迎加好友交流切磋####

    QQ:464314378

    微信群请先加群主微信,群主会拉各位小伙伴进群,注意添加备注。

    展开全文
  • influxDB使用客户端教程

    千次阅读 2020-12-29 11:17:58
    文章目录使用帮助查看版本启动启动方法二登陆查看数据库切换数据库查看表创建表查询表删除记录删除表删除数据库 使用帮助 influx --help 查看版本 influx -version 启动 influx -config /etc/influxdb/...

    阅读全文需要4分钟

    点赞再看,养成习惯

    前言

    本教程是基础操作命令,用于简单操作和介绍,更多学习访问 influxDB 官网:
    https://docs.influxdata.com/influxdb/

    influxDB简介

    InfluxDB是一款优秀的时间序列数据库,适合存储设备性能、日志、物联网传感器等带时间戳的数据。能轻松处理高写入和高查询负载(数据采集与数据可视化非常常见的场景)。

    使用帮助

    influx --help

    查看版本

    influx -version

    在这里插入图片描述

    启动

    influx -config /etc/influxdb/influxdb.conf

    在这里插入图片描述

    启动方法二

    systemctl start influxdb.service

    sudosystemctl start influxdb.service

    在这里插入图片描述

    登陆

    influx

    默认连接到 localhost:8086

    Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
    Connected to http://localhost:8086 version 0.13.0
    InfluxDB shell version: 0.13.0
    

    查看数据库

    show database

    切换数据库

    类似 mysql 数据库操作

    use testdb

    查看表

    show measurements

    创建表

    InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表。

    insert disk_free,hostname=server01 value=442221834240i

    其中disk_free就是表名,hostname是索引(tag),value=xx是记录值(field),

    记录值可以有多个,系统自带追加时间戳。

    或者insert数据时自己写入时间戳

    insertdisk_free,hostname=server01 value=442221834240i 1435362189575692182

    查询表

    select * from disk_free

    在这里插入图片描述

    删除记录

    • 按time字段删除

    delete from disk_free where time=1435362189575692182

    在这里插入图片描述

    删除表

    drop measurement disk_free

    在这里插入图片描述

    删除数据库

    drop database testdb

    在这里插入图片描述

    展开全文
  • influxdb使用笔记

    2019-07-07 18:44:32
    有空补充 简介 安装 相关概念 基本使用 注意事项
  • https://www.linuxdaxue.com/influxdb-study-influxdb-transformations-funcitons.html#title-0 目录 1 安装配置 2 重要概念 timestamp field key,field value,field set tag key,tag value,tag set ...
  • 目前了解到的InfluxDB时序数据库应用场景:如在数据库中有很多条记录,有的记录包含了时间字段time和数值字段water_level,有的只有时间字段time SELECT MAX("water_level") FROM "h2o_feet" WHERE "location"='...
  • https://www.jianshu.com/p/68c471bf5533 InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。每毫秒记录
  • InfluxDB 使用InfluxQL语言检索数据语法

    千次阅读 2020-06-05 17:10:36
    InfluxQL是一种类似SQL的查询语言,用于与InfluxDB中的数据交互。以下各节详细介绍了InfluxQL的SELECT语句和用于探索数据的有用查询语法。 The Basics: Configure Query Results: General Tips on Query Syntax:...
  • InfluxDB

    2021-07-29 10:50:05
    InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图; 可以理解为...
  • InfluxDB C++库介绍和使用

    千次阅读 2020-10-19 10:50:44
    对于需要使用C++语言操作InfluxDB场景,就有点麻烦。还好,gitbub上Influxdb-cxx项目提供了C++的方案。 这里介绍一下Influxdb-cxx的编译、裁剪和使用。需要注意的是,Influxdb-cxx需要使用支持C++
  • InfluxDB安装与简易使用指南

    千次阅读 2019-08-20 22:47:43
    文章目录InfluxDB安装使用指南安装YUM安装RPM安装配置操作database操作插入记录查询记录Python接口database操作插入记录查询记录Python三方库总结 原文链接 InfluxDB安装使用指南 InfluxDB是目前比较主流的时序...
  • InfluxDB 介绍和使用

    千次阅读 2020-10-12 15:59:13
    InfluxDB是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。 它有三大特性: Time Series (时间序列):你可以使用与时间有关的相关函数(如...
  • 使用influxdb作为数据源,有一些便利的方面就是可以点击出图,不方便的地方就是往往不尽人意,下面是一些自己在使用过程中的一些小心得和小经验。 折线图形情况下的名称 首先,折线的使用情况大部分在看趋势的场景...
  • InfluxDB详解

    千次阅读 2020-04-13 11:27:44
    InfluxDB(时序数据库)(influx,流入,涌入),常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况...
  • InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分...
  • InfluxDB入门

    2019-10-03 17:18:23
    InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图; 可以理解为...
  • 时序数据库InfluxDB安装及使用 1 安装配置 安装 wget https://dl.influxdata.com/influxdb/releases/influxdb-1.3.1.x86_64.rpm yum localinstall influxdb-1.3.1.x86_64.rpm 常规操作 启停 ...
  • 而且我还在前端做了echart的折线图,使用websocket实时查看数据的变化。第一次的方案第一次是很简单的,就是mysql建索引,在时间戳和其余两个条件查询比较多的字段建索引,然后最近一天的数据是存放到redis缓存当中...
  • 接下来,我们继续介绍另一种特殊的数据库:时序数据库InfluxDB在Spring Boot中的使用InfluxDB简介 什么是时序数据库?全称为时间序列数据库。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即...
  • influxDB入门

    千次阅读 2020-10-29 17:19:19
    InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。 以下几大特点: 1、schemaless(无结构),可以是任意数量的列; 2、min, max, sum, count, mean, median 一系列函数,方便统计; 3、Native ...
  • InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。 可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后做统计 与传统数据库的概念对比 influxDB中的名词 传统数据库...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,432
精华内容 1,372
关键字:

influxdb使用场景