全部产品
Search
文档中心

时间序列数据库 TSDB:专业术语

更新时间:Feb 23, 2023

本文档主要介绍了时序数据库 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®中获取数据的操作。

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:emailstatus。如果有三个不同的email,并且每个email地址关联两个不同的status,那么这个measurement的序列基数则为6(3 * 2 = 6):

email

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覆盖了:

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

相关术语: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。