一、InfluxDB 简介
  InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。类似的数据库有Kairosdb、OpenTsdb等。
  三大特性:
      时序性(Time Series):与时间相关的函数的灵活使用(诸如最大、最小、求和等);
      度量(Metrics):对实时大量数据进行计算;
      事件(Event):支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作。

有以下七大特点:
  1)schemaless(无结构),可以是任意数量的列;
  2)可拓展的;
  3)支持min, max, sum, count, mean, median 等一系列函数,方便统计;
  4)原生的HTTP支持,内置HTTP API;
  5)强大的类SQL语法;
  6)自带管理界面,方便使用,Built-in Explorer 自带管理工具;
  7)Powerful Query Language 类似sql;

influxdb的两个http端口:
  port :管理页面端口,访问localhost:8083可以进入你本机的influxdb管理页面;
  port :http连接influxdb client端口,一般使用该端口往本机的influxdb读写数据。

二、基本操作:
  influxdb相关名词
    database:数据库;
    measurement:数据库中的表;
    points:表里面的一行数据。

  influxDB中独有的一些概念
    Point由时间戳(time)、数据(field)和标签(tags)组成。
    time:每条数据记录的时间,也是数据库自动生成的主索引;
    fields:各种记录的值;
    tags:各种有索引的属性

  数据库与表的操作:
    #进入influxDB数据库
    influx
    #创建数据库
    create database "db_name"
    #显示所有的数据库
    show databases
    #删除数据库
    drop database "db_name"
    #使用数据库
    use db_name
    #显示该数据库中所有的表
    show measurements
    #创建表,直接在插入数据的时候指定表名
    insert test,host=127.0.0.1,monitor_name=test count=1
    #删除表
    drop measurement "measurement_name"

    #清空数据库表里面的数据
    delete from tbname

    InfluxDB中既有显式的新建表的语句,也有通过insert数据的方式来建立新表
    insert tbname,hostname=server01 value=4422
    其中 tbname就是表名,hostname是索引(tag),value=xx是记录值(field),记录值可以有多个,系统自带追加时间戳或者添加数据时,自己写入时间戳
    insert tbname,hostname=server01 value=442221834240i 1435362189575692182

    show retention policies on "db_name"     查看当前数据库Retention Policies
    创建新的Retention Policies
    create retention policy "rp_name" on "db_name" duration 3w replication 1 default

    查看measurement里面的tags和fields
    show tag keys from measurement_name
    show field keys from measurement_name
    select * from measurement_name

    创建新的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:设置为默认策略

    创建新的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分钟

三、数据录入
InfluxDB三种操作方式:

客户端命令行方式
  插入数据:
  curl -i -X POST 'http://localhost:8086/write?db=monitor' --data-binary 'monitor,host=server01,region=us-west value=0.60'
查询数据:
  curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=monitor" --data-urlencode "q=SELECT * FROM measurement_name "

HTTP API接口
插入数据
  Postman: http://localhost:8086/write?db=monitor&u=root&p=123456
  Body: measurement_name,host=localhost,name=zhangsan sex=male,age=20
  measurement_name相当于表名,host=localhost,name=zhangsan 是tagset,类似索引,sex=male,age=20 是filed字段,也就是存到数据库里面的数据。
查询数据: 查询结果以Json的数据格式返回
  http://localhost:8086/query?db=monitor&q=SELECT * FROM measurement_name

各种语言API库
Influxdb有针对各种语言的API
Java maven依赖

<dependency>
  <groupId>org.influxdb</groupId>
  <artifactId>influxdb-java</artifactId>
  <version>2.7</version>
</dependency>

Influxdb的数据保留策略:

  InfluxDB的数据保留策略(RP)用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据。一个数据库可以有多个保留策略,但每个策略必须是独一无二的。
  show retention policies on dbName 可以查看指定数据库的数据保留策略.
  其中duration是数据保留时间,shardGroupDuration是每个shard上的数据的时间跨度,replicaN是数据的副本数量,default是指这个retention policy是否是指定数据库的默认数据保留策略
  创建数据保留策略并设置为默认数据保留策略
  create retention policy "2_hours" on "monitor" duraption 2h replication 1 default
  修改数据保留策略
  alter retention policy "2_hours" on "monitor" duraption 4h default
  删除数据保留策略
  drop retention policy "2_hours" on "monitor"

四、用户管理
  #显示用户
  show users
  #创建用户
  create user "username" with password 'password'
  #创建管理员权限用户
  create user "username" with password 'password' with all privileges
  #删除用户
  drop user "username"

InfluxDB参考官方文档:https://docs.influxdata.com/influxdb/v1.4/

InfluxDB 基本认识的更多相关文章

  1. 【容器云】十分钟快速构建 Influxdb+cadvisor+grafana 监控

    本文作者:七牛云布道师@陈爱珍,DBAPlus社群联合发起人.前新炬技术专家.多年企业级系统的应用运维及分布式系统实战经验.现专注于容器.微服务及DevOps落地的研究与实践. 安装过程 三个都直接下 ...

  2. InfluxDB学习之InfluxDB数据保留策略(Retention Policies)

    InfluxDB每秒可以处理成千上万条数据,要将这些数据全部保存下来会占用大量的存储空间,有时我们可能并不需要将所有历史数据进行存储,因此,InfluxDB推出了数据保留策略(Retention Po ...

  3. InfluxDB学习之InfluxDB的HTTP API查询操作

    在 InfluxDB学习 的上一篇文章:InfluxDB学习之InfluxDB的HTTP API写入操作 中,我们介绍了使用InfluxDB的HTTP API进行数据写入操作的过程,本文我们再来介绍下 ...

  4. grafana + influxdb + telegraf , 构建性能监控平台

    1.安装平台 1).grafana , 访问各类数据源 , 自定义报表.显示图表等等 , 用于提供界面监控 , 默认端口为3000 , 默认登陆信息admin wget https://grafana ...

  5. logstash输出到influxdb

    用了这个logstash扩展 https://github.com/PeterPaulH/logstash-influxdb/blob/master/src/influxdb.rb 把这个文件放到 l ...

  6. Jmeter + Grafana + InfluxDB 性能测试监控

    阅读目录 1. 安装InfluxDB 2. 安装Grafana 3. 配置Jmeter 序章 前几天在群里看到大神们在讨论Jmeter + InfluxDB + Grafana监控.说起来Jmeter ...

  7. InfluxDB学习系列教程,InfluxDB入门必备教程

    nfluxDB是一个当下比较流行的时序数据库,InfluxDB使用 Go 语言编写,无需外部依赖,安装配置非常方便,适合构建大型分布式系统的监控系统. 本文是一系列InfluxDB学习教程的目录,现主 ...

  8. InfluxDB学习之InfluxDB连续查询(Continuous Queries)

    在上一篇:InfluxDB学习之InfluxDB数据保留策略(Retention Policies) 中,我们介绍了 InfluxDB的数据保留策略,数据超过保存策略里指定的时间之后,就会被删除. 但 ...

  9. InfluxDB学习之InfluxDB的HTTP API写入操作

    HTTP API也有两种操作:写入和查询,本文就先给大家介绍一下 InfluxDB的HTTP API的写入操作方式.     在InfluxDB学习的上一篇文章:InfluxDB学习之InfluxDB ...

  10. InfluxDB学习之InfluxDB的基本操作

    InfluxDB提供类SQL语法,如果熟悉SQL的话会非常容易上手.本文就为大家介绍一下InfluxDB的基本操作.     InfluxDB提供类SQL语法,如果熟悉SQL的话会非常容易上手. 本文 ...

随机推荐

  1. openresty 集成 sentry 异常系统

    sentry 是一个方便的错误异常追踪系统,同时社区也提供了openresty 的lua 包,使用docker-compose 进行测试 备注: sentry 部分的配置来自官方文档 环境准备 doc ...

  2. 微软Azure通知中心 (Azure Notification Hubs)

    Azure Notification Hubs 提供简单的方法从后台(azure或者on-promise)去发送通知在不同的平台上面(iOS, Android, Windows, Kindle, Ba ...

  3. python之路---07 join() fromkeys() 深浅拷贝

    二十四.基本数据类型补充 1.join() "*".join("马虎疼") # 马*虎*疼 把传递进去的参数进行迭代.  获取到的每个元素和前面的*进行拼接.  ...

  4. Webpack4 的 Tree Shaking:babel-loader设置modules: false,还是设置"sideEffects": false,待确定

    Webpack4 的 Tree Shaking:babel-loader设置modules: false,还是设置"sideEffects": false,待确定 babel-lo ...

  5. web.xml启动spring详解

    https://blog.csdn.net/king_cannon_fodder/article/details/79328576 详细介绍:https://www.cnblogs.com/wkrbk ...

  6. java 加载数据库驱动

    JDBC编程步骤见 JDBC编程步骤 JDBC编程的第一步是加载数据库驱动,使用Class类的forName()方法,Class.forName("com.mysql.jdbc.Driver ...

  7. C# 集合、字典、栈和队列

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. API - .after

    .after() Insert content, specified by the parameter, after each element in the set of matched elemen ...

  9. 如何使用Hanlp加载大字典

        问题 因为需要加载一个 近 1G 的字典到Hanlp中,一开始使用了CustomDictionay.add() 方法来一条条的加载,果然到了中间,维护DoubleArraTre 的成本太高,添 ...

  10. MySQL GTID 主从复制错误修复方法

    https://yq.aliyun.com/articles/155827?spm=5176.8067842.tagmain.6.RFPTAL MySQL 传统的主从复制方式使用 master_log ...