专业术语
本文档主要介绍了时序数据库 InfluxDB®版的常见术语。
aggregation(聚合)
InfluxQL函数,能够返回一组数据点的聚合结果。想要获得现有的和即将支持的聚合函数的完整列表,请查看文档InfluxQL函数。
相关术语:function,selector,transformation。
batch(批量)
符合行协议(line protocol)格式的、多个用换行符(0x0A
)隔开的数据点(point)的集合。使用一个HTTP请求就可以将一批数据点写入到数据库中,大幅减少了HTTP的开销,使得通过HTTP API写入数据的性能更高。TSDB For InfluxDB®建议batch的大小是5,000~10,000个数据点,但在不同的应用场景下,更小或更大的batch可能会提供更好的性能。
相关术语:line protocol,point。
continuous query(连续查询,简称CQ)
一个InfluxQL查询,在数据库中自动地、周期性地运行。连续查询要求在SELECT
子句中有一个函数(function),并且必须包含一个GROUP BY time()
子句。
相关术语:function。
database(数据库)
用户(user)、保留策略(retention policy)、连续查询(continuous query)和时序数据的逻辑容器。
相关术语:continuous query,retention policy,user。
duration(持续时间)
保留策略(retention policy)的一个属性,决定数据在TSDB For InfluxDB®中保留多长时间。早于duration的数据将自动从数据库中删除。
相关术语:retention policy。
field
TSDB For InfluxDB®数据结构中记录元数据和实际数据的key-value对。field是TSDB For InfluxDB®数据结构中必须要有的一部分,并且不会被建索引。如果将field value作为查询的过滤条件的话,那么就必须遍历所选时间范围内的所有数据点,所以,这种方式相对于以tag作为过滤条件的查询,其性能会差很多。
查询提示:跟field相比,数据库会对tag建索引。
相关术语:field key,field set,field value,tag。
field key
构成field的key-value对里面,关于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的key-value对里面,关于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函数的完整列表,请查看文档InfluxQL函数。
相关术语:aggregation,selector,transformation。
identifier(标识符)
关于连续查询(continuous query)的名字、数据库(database)名、field key、measurement的名字、保留策略(retention policy)的名字、tag key和用户(user)名的标记。
相关术语:database,field key,measurement,retention policy,tag key,user。
line protocol(行协议)
写入TSDB For InfluxDB®的数据点的文本格式。
measurement(测量)
TSDB For InfluxDB®数据结构中的一部分,描述了存储在相关field中的数据的含义。measurement的值是字符串。
相关术语:field,series。
metastore
包含了系统状态的内部信息。metastore包括用户(user)信息、数据库(database)、保留策略(retention policy)、shard元数据和连续查询(continuous query)。
相关术语:database,retention policy,user。
node(节点)
一个独立的TSDB For InfluxDB®实例。
相关术语:server。
now(当前时间)
本地服务器当前的纳秒级时间戳(timestamp)。
point(数据点)
TSDB For InfluxDB®数据结构中的一部分,由序列(series)中包含的field组成。每个数据点由它的序列和时间戳(timestamp)唯一标识。
您不能在同一序列存储多个有相同时间戳的数据点。相反,当您向序列中写入一个新的数据点,并且该数据点的时间戳跟序列中某个数据点的时间戳相同,那么在该时间戳下的数据点的field set会变为旧field set和新field set的并集,以后访问这个数据点时,返回的都是修改后新的field set。
相关术语:field set,series,timestamp。
points per second
这是一个现在已经弃用的术语,原来表示数据写入TSDB For InfluxDB®的速率,因为TSDB For InfluxDB®的数据模型(schema)允许甚至鼓励每个数据点记录多个测量值(metric),所以这个概念有歧义。
写入速率现在通常是按values per second这个指标来表示,这样更精确。
相关术语:point,schema,values per second。
query(查询)
从TSDB For InfluxDB®中获取数据的操作。可查看文档数据探索概览、Schema探索和数据库管理获得更多关于query的介绍。
retention policy(保留策略,简称RP)
TSDB For InfluxDB®数据结构中的一部分,描述了TSDB For InfluxDB®保存数据的时间(duration)以及shard group覆盖的时间范围(shard group duration)。在每个数据库(database)里面,RP是唯一的,RP、measurement和tag set定义了一个序列(series)。
在创建数据库的时候,TSDB For InfluxDB®会自动创建名为autogen
的RP。
相关术语:duration,measurement,series,shard duration,tag set。
schema(模式)
描述了数据在TSDB For InfluxDB®中是如何组织的。TSDB For InfluxDB® schema的基础是数据库(database)、保留策略(retention policy)、序列(series)、measurement、tag key、tag value和field key。
相关术语:database,field key,measurement,retention policy,series,tag key,tag value。
selector(选择)
一个InfluxQL函数,从特定范围的数据点中返回一个点。想要获得现有的和即将支持的selector函数的完整列表,请查看文档InfluxQL函数。
相关术语:aggregation,function,transformation。
series(序列)
TSDB For InfluxDB®数据结构中,有相同measurement、tag set和保留策略(retention policy)的数据集合。
field set不会标识序列的一部分。
相关术语:field set,measurement,retention policy,tag set。
series cardinality(序列基数)
在一个TSDB For InfluxDB®实例中,不同数据库(database)、measurement、tag set和field key的组合的数量。
例如,假设一个TSDB For InfluxDB®实例有一个数据库和一个measurement,这个measurement有两个tag key:email
和status
。如果有三个不同的email
,并且每个email
地址关联两个不同的status
,那么这个measurement的序列基数则为6(3 * 2 = 6):
status | |
username@alibaba-inc.com | start |
username@alibaba-inc.com | finish |
username@alibaba-inc.com | start |
username@alibaba-inc.com | finish |
username@alibaba-inc.com | start |
username@alibaba-inc.com | finish |
请注意,在某些情况下,由于存在从属tag,所以简单地将这些数据相乘可能会高估了序列基数。从属tag指的是被另一个tag限定它的范围的tag,它的存在不会使序列基数变大。如果我们在上面的例子中增加一个tag:firstname
,序列基数不会变成18(3 2 3 = 18),它将保持不变,依旧是6,因为firstname
已经被email
覆盖了:
status | firstname | |
username@alibaba-inc.com | start | amy |
username@alibaba-inc.com | finish | amy |
username@alibaba-inc.com | start | jeff |
username@alibaba-inc.com | finish | jeff |
username@alibaba-inc.com | start | john |
username@alibaba-inc.com | finish | john |
可查看文档InfluxQL参考,了解如何通过InfluxQL语句来查询序列基数。
相关术语:field key,measurement,tag key,tag set。
server(服务器)
一个运行TSDB For InfluxDB®的虚拟机或物理机。
相关术语:node。
shard
一个shard包含真实数据和压缩数据,shard由磁盘中的TSM文件表示。每个shard只属于一个shard group,一个shard group可以有多个shard。每个shard包含一组特定的序列(series)。一个给定的shard group中的一个序列中的所有数据点都存储在磁盘中相同的shard(TSM文件)。
相关术语:series,shard duration,shard group,tsm。
shard duration
shard duration决定了每个shard group跨越多长时间。具体时间间隔由保留策略(retention policy)中的SHARD DURATION
决定。
例如,如果保留策略的SHARD DURATION
设为1w
,那么每个shard group将跨越一个星期,并包含时间戳在这个星期内的所有数据点。
相关术语:database,retention policy,series,shard,shard group。
shard group
shard group是shard的逻辑容器,按时间和保存策略组织。每个包含数据的保留策略至少包含一个关联的shard group。一个shard group里的所有shard包含了该shard group覆盖的时间间隔内的数据。每个shard跨越的时间间隔就是shard duration。
相关术语:database,retention policy,series,shard,shard duration。
tag
TSDB For InfluxDB®数据结构中记录元数据的key-value对,tag在TSDB For InfluxDB®数据结构中是可选的。但是,用它们来存储经常被查询的元数据是非常有用的;因为数据库会对tag建索引,所以tag上的查询性能很高。
查询提示:跟tag相比,数据库不会对field建索引。
相关术语:field,tag key,tag set,tag value。
tag key
构成tag的key-value对里面,关于key的部分。tag key是字符串并且存的是元数据。因为数据库会对tag key建索引,所以tag key上的查询性能很高。
查询提示:跟tag key相比,数据库不会对field key建索引。
相关术语:field key,tag,tag set,tag value。
tag set
一个数据点上tag key和tag value的集合。
相关术语:point,series,tag,tag key,tag value。
tag value
构成tag的key-value对里面,关于value的部分。tag value是字符串并且存的是元数据。因为数据库会对tag value建索引,所以tag value上的查询性能很高。
相关术语:tag,tag key,tag set。
timestamp
与一个数据点(point)关联的日期和时间。TSDB For InfluxDB®中所有时间都是UTC。
关于如何指定数据写入的时间,可查看写协议。关于如何指定查询数据的时间,可查看文档数据探索概览。
相关术语:point。
transformation
一个InfluxQL函数,从特定数据点计算后返回一个值或一组值,但不是返回这些数据点的聚合值。想要获得现有的和即将支持的聚合函数的完整列表,请查看文档InfluxQL函数。
相关术语:aggregation,function,selector。
tsm(Time Structured Merge tree)
TSDB For InfluxDB®的专用数据存储格式。跟现有的B+树或LSM树实现相比,TSM有更好的压缩和更高的写入和读取吞吐量。
user(用户)
TSDB For InfluxDB®中有两种类型的用户:
admin用户对所有数据库都有读写权限,并且有管理查询和管理用户的全部权限。
非admin用户有针对数据库的只读、只写、或者读写的权限。
values per second
数据写入到TSDB For 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)
最近写入数据点的临时缓存。为了降低访问永久存储文件的频率,TSDB For InfluxDB®在WAL中缓存最近写入的数据点,直到数据总量达到阈值或者数据写入的时间超过一定的期限,这时候TSDB For InfluxDB®会将WAL中的这些数据flush到可以保存更长时间数据的存储空间。使用WAL,可以有效地将写入的数据批量写进TSM。
可以查询WAL中的数据点,并且系统重启后,这些数据不会丢失。在TSDB For InfluxDB®进程启动时,必须在系统接受新的写入请求前,将WAL中的所有数据点flush到存储空间。
相关术语:tsm。