美文网首页
InfuxDB简介

InfuxDB简介

作者: 恬恬她爹 | 来源:发表于2017-04-10 15:43 被阅读0次

InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。
三大特性:
Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等)
Metrics(度量):你可以实时对大量数据进行计算
Eevents(事件):它支持任意的事件数据
特点:
schemaless(无结构),可以是任意数量的列
Scalable
min, max, sum, count, mean, median 一系列函数,方便统计
Native HTTP API, 内置http支持,使用http读写
Powerful Query Language 类似sql
Built-in Explorer 自带管理工具

基本概念

传统数据库 Infuxdb
数据库 database
measurement
记录 point

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

Point属性 传统数据库中的概念
time 每个数据记录时间,是数据库中的主索引(会自动生成)
fields 各种记录值(没有索引的属性)也就是记录的值:温度, 湿度
tags 各种有索引的属性:地区,海拔

** series**
表中所有的tags的组合数据,每个series代表一组数据,参照图表的概念

> show series from h2o_feet
key
---
h2o_feet,location=coyote_creek
h2o_feet,location=santa_monica

基本语法

数据库操作

数据库创建

CREATE DATABASE <database_name> [WITH [DURATION <duration>] [REPLICATION <n>] [SHARD DURATION <duration>] [NAME <retention-policy-name>]]
  • DURATION 保存时间
  • REPLICATION 复制数量(集群)
  • SHARD DURATION 每个分片持续的时间(时间段内所有Point保存在该分片中),SHARD为InfuxDB存储单元
  • NAME 数据保留策略名称

如果不指定WITH语句,默认使用autogen策略:保存时间永久,分片时间1周,复制数量1

数据库删除

DROP DATABASE <database_name>

数据删除

DROP SERIES FROM <measurement_name[,measurement_name]> WHERE <tag_key>='<tag_value>'
或
DELETE FROM <measurement_name> WHERE [<tag_key>='<tag_value>'] | [<time interval>]

删除的条件只能是tag,field不支持。其中DELETE支持time条件,支持正则表达式语法。

数据保留策略(Retention Policies)

InfluxDB每秒可以处理成千上万条数据,要将这些数据全部保存下来会占用大量的存储空间,有时我们可能并不需要将所有历史数据进行存储,因此,InfluxDB推出了数据保留策略(Retention Policies),用来让我们自定义数据的保留时间。可以指定多个保留策略,如需访问不是默认策略的访问策略需显示指定策略名称。
创建

CREATE RETENTION POLICY <retention_policy_name> ON <database_name> DURATION <duration> REPLICATION <n> [SHARD DURATION <duration>] [DEFAULT]
  • DURATION 保存时间
  • REPLICATION 复制数量(集群)
  • SHARD DURATION 每个分片持续的时间(时间段内所有Point保存在该分片中),SHARD为InfuxDB存储单元
    如果未指定该值,将按照如下规则创建:
Retention Policy’s DURATION Shard Group Duration
< 2 days 1 hour
>= 2 days and <= 6 months 1 day
> 6 months 7 days

最小为1小时,如果小于1小时,系统会默认指定为1小时

  • DEFAULT 是否默认

修改

ALTER RETENTION POLICY <retention_policy_name> ON <database_name> DURATION <duration> REPLICATION <n> SHARD DURATION <duration> DEFAULT

删除

DROP RETENTION POLICY <retention_policy_name> ON <database_name>

连续查询(Continuous Queries)

通过数据保留策略我们可以指定数据存活时间,但超过时间后数据就会被删除,我们不想删除数据,又不想保留所有数据(数据量太大),那我们就可以通过连续查询保留我们想要的数据(比如降低精度存储,原先采样是5s,可以改成5m)
基础语法

CREATE CONTINUOUS QUERY <cq_name> ON <database_name>
BEGIN
  SELECT <function[s]> INTO <destination_measurement> FROM <measurement> [WHERE <stuff>] GROUP BY time(<interval>)[,<tag_key[s]>]
END

例子

> SELECT "passengers","complaints" FROM bus_data
name: bus_data
--------------
time                   passengers   complaints
2016-08-28T07:00:00Z   5            9
2016-08-28T07:15:00Z   8            9
2016-08-28T07:30:00Z   8            9
2016-08-28T07:45:00Z   7            9
2016-08-28T08:00:00Z   8            9
2016-08-28T08:15:00Z   15           7
2016-08-28T08:30:00Z   15           7
2016-08-28T08:45:00Z   17           7
2016-08-28T09:00:00Z   20           7
##执行按每1小时保存
> CREATE CONTINUOUS QUERY "cq_basic" ON "transportation" \
BEGIN \
  SELECT mean("passengers") INTO "average_passengers" FROM "bus_data" GROUP BY time(1h) \
END
##结果
> SELECT * FROM "average_passengers"
name: average_passengers
------------------------
time                   mean
2016-08-28T07:00:00Z   7
2016-08-28T08:00:00Z   13.75

插入(INSERT)

INSERT <measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]

相关文章

  • InfuxDB简介

    InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布...

  • InfuxDB函数说明

    1. 聚合函数 1.1 COUNT() 描述:返回单个字段中非空(non-null)值的数量语法 例子: 计算字段...

  • 18旅游二班各组自我简介汇总

    一组简介 二组简介 三组简介 四组简介 五组简介 六组简介 七组简介 八组简介

  • 简介

    上辈子,洛幽喜欢了东凡一辈子,没有结果,之后她死了,她不后悔,只是为什么她一睁眼,嗯?捏了捏自己的脸,她这是回到了...

  • 简介

    1.主动地去阅读。 2.阅读目的:获得资讯,获得理解 前者为了增进资讯,获得信息,不能增加理解力。后者为了理解更多...

  • 简介

    姓名:赵金星 电话:13903984903 坐标:河南三门峡市陕州区。 三个标签的自我介绍: 1.时间管理践行者 ...

  • 简介

    朱凝不过打错个字,便被天打雷劈回古代。 为毛别人穿个废柴嫡女,她穿个废柴庶女?地位更低了哎 哇喔,别人嫁王爷,她嫁...

  • 简介

    凌波网络考试系统,是一套运行于Windows系统之上的无纸化网络考试软件。包括试卷编辑、分发试卷、学生答卷、自动阅...

  • 简介

    名字:笨小孩 不是富二代的笨小孩为了生活选择了编程。在大多数人眼里可能感觉编程是很无聊很辛苦经常加班的事情,其实人...

  • 简介

    A Native Client web application consists of JavaScript, H...

网友评论

      本文标题:InfuxDB简介

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