以下内容基本全篇摘抄自v1.3的官方文档,先从理解下面这张两张图开始
influxdb_glossary
influxdb

aggregation 聚合

使用聚合函数对points中的set返回聚合结果

  • count 返回非null的field values个数
  • distinct 返回唯一field values列表
  • integral 由过滤条件组成的积分
  • mean 返回field values的算术平均值
  • median 返回field values排序后的中位数
  • mode 从field values列表中返回最常用的值
  • spread 最大减去最小
  • stddev 标准差
  • sum 求和

batch 批量

为了减少influxdb的负载,建议对point的集合进行上传。使用\n做分割。建议每批包含五千到一万个point

continuous query(CQ) 持续查询

定期执行自动查询并将结果持久化到数据库

database 数据库

和关系型数据库差不多吧。

关系型数据库 influxdb
database database
table measurement
row point

特别点的就是。influxdb有保留策略

duration 持续时间

保留策略的一个属性表示数据会保存多久。数据过期会被执行自动删除

field 字段

对比tag来说field没有被索引。在一段时间范围内查询field的值需要扫描所有的point得到结果。性能没有tag好

field key 字段的key

在key-value对中表示field字段的key.只能是string类型。存储到metadata中

field set 字段的集合

所有field key的集合

field value 字段的值

field的value。类型可以是strings、float、integers、booleans。field的值始终与时间戳相关

function 函数

分三类,聚合、选择、转换

identifier 标识

emmm…持续查询名称、数据库名称、field字段、度量名称、保留策略名称、订阅名称、标签名称、用户名

line protocol 行协议

基于文本格式写入到influxdb

measurement 度量

emmm…可以类比到关系型数据库的table

metastore 元数据存储

包含内部系统的状态信息。元素据存储包含了用户信息、数据库信息、保留侧列、分片元数据、持续查询和订阅

node 节点

一个独立的influxd进程

now()

本地的纳秒时间戳

point 点

  • 在serises中由fields组成的单个数据。每个point由它的series和时间戳组成唯一标识(重点)
  • 对于一个相同的时间戳和相同的series只能保存一个point.如果相同则新的field set覆盖掉旧的

query 查询

从influxdb中查询到相关数据的操作

replication factor 复制因子

对集群有用。O__O “…可是集群并不是免费功能,将一份数据保留到集群上多份

retention policy(RP) 保留策略

以数据库作为单位,分三个方面。保留时长,数据多久进行一次分片操作。数据设置多少个副本。默认autogen表示永不删除、一个副本集(表示没副本)、七天进行一次分片

schema 模式

如何组织数据到influxdb。包含databases、retention policies、series、measurements、tag keys、tag values、field keys

selector 选择器

一个函数,从特定范围的point中返回单个

  • bottom 返回N个最小的field value
  • first 返回最开始时间的field value
  • last 返回最近时间的field value
  • max 返回最大的field value
  • min 返回最小的field value
  • percentile 根据百分比返回
  • sample 随机返回
  • top 返回最大的N个field value

series 序列

由measurement、tag set、retention policy组成(注意:field set不在里面)

series cardinality 序列基数

唯一的series数,如果一个measurement有2个tag key。1个有三个唯一的值。另一个有两个。那么序列基数为6.因为tag集合是保存在内存中的。在配置里面也有默认的数量限制

server 服务器

运行influxdb的环境。应该一台服务器只运行一个influxdb进程

shard 分片

包含编码和压缩数据,作为TSM文件保存到磁盘。每个分片属于唯一的一个shard group。每个分片包含了特定的series

shard duration 分片持续时间

由保留策略中的shard duration决定。

shard group 分片组

分片组(保留策略)->shard->data.为了自动删除搞出了这么多概念┑( ̄Д  ̄)┍

subscription 订阅

O__O “… 好像并没有什么用。搭配kapactior使用。订阅它的数据进行存储

tag

对比field。tag是有索引的

tag key

tag set

tag value

只能为数字。存储到metadata

timestamp 时间戳

和point关联的时间戳,可以有多种时间格式存储和查询

transformation 变换

特定的点返回值和集合,得到的结果不能用来再次聚合

  • ceiling 目前还不支持(ceil,floor)
  • cumulative_sum 将列表变成累加和列表(原有1,1,2,2变成1,2,4,6)
  • derivative 导数
  • difference 和第一个结果相减得到不同
  • elapsed 得到时间戳的不同
  • floor 目前还不支持
  • histogram 目前还不支持
  • moving_average 滚动平均值(原有1,2,3得到1.5,2.5)
  • non_negative_derivative 非负导数
  • non_negative_difference 非负不同

tsm(Time Structured Merge tree)

influxdb的专用存储格式。允许高压缩和高速写入读取速度要高于已存在的B+树或者LSM树

user

  • admin用户具有读写所有数据库的权限并且可以管理用户
  • 非admin有每个数据库的读写权限(被admin分配)

value per second

度量写入速度,比如每个point有四个field,每批有5000个point.写入速度为每秒10个。那么values per second速率为4*5000*10

WAL(write ahead log) 预写日志