influxdb 专业术语
以下内容基本全篇摘抄自v1.3的官方文档,先从理解下面这张两张图开始
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) 预写日志
略