InfluxDB 专业术语
aggregation
聚合,指任意一个InfluxQL函数,能够返回一组数据点的聚合结果。想要获得现有的和即将支持的聚合函数的完整列表,请查看文档InfluxQL函数。
相关术语: function, selector, transformation
batch
批量数据,指用换行符(0x0A
)分割的数据点的集合。这批数据可以使用HTTP请求写到数据库中。用这种HTTP接口的方式可以大幅降低HTTP的负载。尽管不同的场景下更小或更大的batch可能有更好地性能,建议每个batch的大小在5000~10000个数据点。
相关术语: InfluxDB line protocol, point
bucket
桶,即存储桶是时间序列数据存储在InfluxDB 2.0中的位置。在InfluxDB 1.8+中,数据库和保留策略(database/retention-policy)的每种组合都代表一个存储桶。可以使用InfluxDB 1.8+附带的InfluxDB 2.0 API兼容性端点与存储桶进行交互。
continuous query (CQ)
连续查询,一个InfluxQL查询,在数据库中自动地、周期性地运行。连续查询要求在SELECT
子句中有一个函数(function),并且必须包含一个GROUP BY time()
子句。
更多信息请参考 连续查询。
相关术语: function
database
数据库,指用户(user)、保留策略(retention policy)、连续查询(continuous query)和时序数据的逻辑容器。
相关术语: continuous query, retention policy, user
duration
持续时间,保留策略(retention policy)的一个属性,决定数据在InfluxDB中保留多长时间。早于duration的数据将自动从数据库中删除。
有关如何设置duration
,请查看数据库管理。
相关术语: retention policy
field
InfluxDB数据结构中记录元数据和实际数据的键值对。field是InfluxDB数据结构中必须要有的一部分,并且不会被建索引。如果将field value作为查询的过滤条件的话,那么就必须遍历所选时间范围内的所有数据点,所以,这种方式相对于以tag作为过滤条件的查询,其性能会差很多。
查询优化提示:跟field相比,数据库会对tag建索引。
相关术语: field key, field set, field value, tag
field key
构成field的键值对里面,关于key的部分。field key是字符串并且存的是元数据(metadata)。
相关术语: field, field set, field value, tag key
field set
一个数据点(point)上field key和field value的集合。
相关术语: field, field key, field value, point
field value
构成field的键值对里面,关于value的部分。field value是实际数据,可以是字符串、浮点数、整数或者布尔值。一个field value始终和一个时间戳(timestamp)相关联。
数据库不会对field value建索引,如果将field value作为查询过滤条件的话,就必须遍历所选时间范围内的所有数据点,所以,这种方式的查询性能并不好。
查询优化提示:跟field value相比,数据库会对tag value建索引。
相关术语: field, field key, field set, tag value, timestamp
function
函数,InfluxQL中的聚合(aggregation)、选择器(selector)和转换(transformation)。想要获得InfluxQL函数的完整列表,请查看文档函数。
相关术语: aggregation, selector, transformation
identifier
标识符,关于连续查询(continuous query)的名字、数据库(database)名、field key、measurement的名字、保留策略(retention policy)的名字、tag key和用户(user)名的标记。可查看文档InfluxQL参考获得更多关于identifier的介绍。
相关术语: database, field key, measurement, retention policy, tag key, user
InfluxDB line protocol
行协议,写入InfluxDB的数据点的文本格式。可查看文档行协议参考获得更多关于它的介绍。
measurement
InfluxDB数据结构中的一部分,描述了存储在相关field中的数据的含义。measurement的值是字符串。
metastore
包含了系统状态的内部信息。metastore包括用户(user)信息、数据库(database)、保留策略(retention policy)、shard元数据、连续查询(continuous query)和订阅(subscription)信息。
相关术语: database, retention policy, user
node
节点,一个独立的influxd
实例。
相关术语: server
now()
本地服务器当前的纳秒级时间戳(timestamp)。
point
数据点,在InfluxDB中,point表示单个数据记录,类似于SQL数据库表中的行。 每个point:
- 由一个measurement、一个tag set、一个field key、一个field value和一个timestamp组成。
- 由series和timestamp唯一标识。
您无法在一个series中存储多个带有相同timestamp的point。当您使用与该series中现有点相同的timestamp并尝试将新point写入同一series时,该field set将成为旧field set和新field set的并集,如遇冲突则后面的将覆盖前面的。 有关重复point的更多信息,请查看常见问题。
相关术语: field set, series, timestamp
points per second
这是一个现在已经弃用的术语,原来表示数据写入InfluxDB的速率,因为InfluxDB的数据模型(schema)允许甚至鼓励每个数据point记录多个测量值(metric),所以这个概念有歧义。
写入速率现在通常是按values per second这个指标来表示,这样更精确。
相关术语: point, schema, values per second
query
查询,从InfluxDB中获取数据的操作。可查看文档数据探索、Schema探索和数据库管理获得更多关于query的介绍。
replication factor
复制因子,保留策略(retention policy)的一个属性,决定存储在集群中的数据副本的个数。InfluxDB在N
个data node上复制数据,其中N
就是副本个数。
对于3个或更少的data node,默认的复制因子数等于data node的数量。大于3个的data node,默认的复制因子数为3。如需修改默认的复制因子数,可在retention policy中的replication factor设置。
相关术语: cluster, duration, node,retention policy
retention policy (RP)
保留策略,InfluxDB数据结构中的一部分,描述了InfluxDB保存数据的时间(duration)、存储在集群中的数据副本的个数(replication factor)以及shard group覆盖的时间范围(shard group duration)。在每个数据库(database)里面,RP是唯一的,RP、measurement和tag set定义了一个series。
在创建数据库的时候,InfluxDB会自动创建名为autogen
的RP,其duration为永远,replication factor为1,shard group的duration为七天。
如需了解更多,请查看保留策略管理。
相关术语: duration, measurement, replication factor, series, shard duration, tag set
schema
模式,描述了数据在InfluxDB中是如何组织的。InfluxDB schema的基础是数据库(database)、保留策略(retention policy)、series、measurement、tag key、tag value和field key。有关更多关于Schema的信息,请查看Schema探索
相关术语: database, field key, measurement, retention policy, series, tag key, tag value
selector
选择器,一个InfluxQL函数,从特定范围的point中返回一个point。想要获得现有的和即将支持的selector函数的完整列表,请查看文档InfluxQL函数。
相关术语: aggregation, function, transformation
series
序列,InfluxDB数据结构中,有相同measurement、tag set和保留策略(retention policy)的数据集合。
相关术语: field set, measurement, tag set
series cardinality
序列基数,在一个InfluxDB实例中,不同数据库(database)、measurement、tag set和field key的组合的数量。
例如,假设一个InfluxDB实例有一个数据库和一个measurement,这个measurement有两个tag key:email
和status
。如果有三个不同的email
,并且每个email
地址关联两个不同的status
,那么这个measurement的系列基数则为6(3 * 2 = 6):
status | |
---|---|
lorr@influxdata.com | start |
lorr@influxdata.com | finish |
marv@influxdata.com | start |
marv@influxdata.com | finish |
cliff@influxdata.com | start |
cliff@influxdata.com | finish |
请注意,在某些情况下,由于存在从属tag,所以简单地将这些数据相乘可能会高估了序列基数。从属tag指的是被另一个tag限定它的范围的tag,它的存在不会使序列基数变大。如果我们在上面的例子中增加一个tag:firstname
,序列基数不会变成18(3 2 3 = 18),它将保持不变,依旧是6,因为firstname
已经被email
覆盖了:
status | firstname | |
---|---|---|
lorr@influxdata.com | start | lorraine |
lorr@influxdata.com | finish | lorraine |
marv@influxdata.com | start | marvin |
marv@influxdata.com | finish | marvin |
cliff@influxdata.com | start | clifford |
cliff@influxdata.com | finish | clifford |
可查看文档InfluxQL参考,了解如何通过InfluxQL语句来查询序列基数。
相关术语: field key,measurement, tag key, tag set
series key
series key是measurement,tag set和field key来标识的特定系列。
示例:
# measurement, tag set, field key
h2o_level, location=santa_monica, h2o_feet
相关术语: series
server
服务器,运行InfluxDB的虚拟机或物理机。 每个server只能有一个InfluxDB进程。
相关术语: node
shard
分片,一个shard包含真实数据和压缩数据,shard由磁盘中的TSM文件表示。每个shard只属于一个shard group。一个shard group可以有多个shard。每个shard包含一组特定的序列(series)。一个给定的shard group中的一个序列中的所有point都存储在磁盘中相同的shard(TSM文件)。
相关术语: series, shard duration, shard group, tsm
shard duration
shard duration决定了每个shard group跨越多长时间。具体时间间隔由保留策略(retention policy)中的SHARD DURATION
决定。查看保留策略管理获得更多信息。
例如,如果保留策略的SHARD DURATION
设为1w
,那么每个shard group将跨越一个星期,并包含时间戳在这个星期内的所有数据点(point)。
相关术语: database, retention policy, series, shard, shard group
shard group
shard group是shard的逻辑容器,按时间和RP组织。每个包含数据的RP至少包含一个关联的shard group。一个shard group里的所有shard包含了该shard group覆盖的时间间隔内的数据。每个shard跨越的时间间隔就是shard duration。
相关术语: database, retention policy, series, shard, shard duration
subscription
订阅,订阅允许push而不是基于查询数据的pull模式从InfluxDB接收数据,当Kapacitor与InfluxDB一起使用时,订阅将自动将已订阅数据库的每次写入从InfluxDB推送到Kapacitor。 订阅可以使用TCP或UDP传输写操作。
tag
InfluxDB数据结构中记录元数据的键值对,tag在InfluxDB数据结构中是可选的。但是,用它们来存储经常被查询的元数据是非常有用的,因为数据库会对tag建索引,所以tag上的查询性能很高。 查询提示:跟tag相比,数据库不会对field建索引。
相关术语: field, tag key, tag set, tag value
tag key
构成tag的键值对中,关于key的部分。tag key是字符串并且存的是元数据。因为数据库会对tag key建索引,所以tag key上的查询性能很高。
查询提示:跟tag key相比,数据库不会对field key建索引。
相关术语: field key, tag, tag set, tag value
tag set
一个数据点(point)上tag key和tag value的集合。
相关术语: point, series, tag, tag key, tag value
tag value
构成tag的键值对中,关于value的部分。tag value是字符串并且存的是元数据。因为数据库会对tag value建索引,所以tag value上的查询性能很高。
timestamp
时间戳,与一个数据点(point)关联的日期和时间。InfluxDB中所有时间都是UTC。
关于如何指定数据写入的时间,可查看写协议。关于如何指定查询数据的时间,可查看文档数据探索。
相关术语: point
transformation
一个InfluxQL函数,从特定数据点计算后返回一个值或一组值,但不是返回这些数据点的聚合值。想要获得现有的和即将支持的聚合函数的完整列表,请查看文档InfluxQL函数。
相关术语: aggregation, function, selector
TSM (Time Structured Merge tree)
InfluxDB的专用数据存储格式。跟现有的B+树或LSM树实现相比,TSM有更好的压缩和更高的写入和读取吞吐量。请查看存储引擎获得更多关于底层存储的信息。
user
InfluxDB中有两种类型的用户:
- admin用户对所有数据库都有
READ
和WRITE
权限,并且有管理查询和管理用户的全部权限。 - non-admin用户有针对数据库的
READ
、WRITE
、或者ALL
(包含READ
和WRITE
)的权限。
启用身份验证后,InfluxDB仅执行使用有效的用户名和密码发送的HTTP请求。 请参阅身份验证与授权获取相关信息。
values per second
数据写入到InfluxDB的速率,这是测量写入速率的首选方法。写入速度通常以values per second表示。
要计算values per second,请将每秒写入的数据点数乘以每个点存储的value的个数。例如,每秒写入10次包含5,000个点的batch,每个点有4个field,那么values per second = 每个点有4个field 每个batch有5,000个点 每秒写入10次 = 每秒写入200,000个值
相关术语: batch, field, point, points per second
WAL (Write Ahead Log)
最近写入数据点的临时缓存。为了降低访问永久存储文件的频率,InfluxDB在WAL中缓存最近写入的数据点,直到数据总量达到阈值或者数据写入的时间超过一定的期限,这时候InfluxDB会将WAL中的这些数据flush到可以保存更长时间数据的存储空间。使用WAL,可以有效地将写入的数据批量写进TSM。
可以查询WAL中的数据点,并且系统重启后,这些数据不会丢失。在InfluxDB进程启动时,必须在系统接受新的写入请求前,将WAL中的所有数据点flush到存储空间。
相关术语: tsm