数据库管理

本文介绍Lindorm时序引擎中的Database概念以及相关的功能。

Database的概念

每个运行中的Lindorm时序引擎实例都管理着一个或多个数据库(Database),且各数据库之间的数据相互隔离。同时,每个数据库还包含若干个时序表。结合名词解释,可以将时序引擎的数据层级归纳为下图:

image

Lindorm时序引擎实例需存储不相关且彼此隔离的项目数据时,建议将不同项目的数据分别存入独立的数据库,并同步配置对应的访问控制策略。如果想要跨数据库访问,您需要具备目标数据库的操作权限

管理Database

时序引擎支持用户通过SQLDatabase进行以下管理操作:

操作

说明

SQL语法参考

新建

在时序引擎中创建一个新的Database。

说明

新建的Database需要单独为指定的用户赋权,用户并不会默认具有访问权限。

CREATE DATABASE

删除

删除已有的Database。

DROP DATABASE

修改属性

修改已有Database的属性,包括冷热分界线、TTL等。

ALTER DATABASE

查询属性

查看已有Database的结构。

DESCRIBE DATABASE

管理Database生命周期

Database是时序表的集合,您可以根据业务需求将拥有相同业务背景的时序表保存在一起,从而实现数据隔离。另一方面,Lindorm时序引擎的一系列功能也都是以Database为粒度的。包括以下功能:

通过SQL设置冷热分离策略

时序引擎支持以Database为单位设置冷热分界线,系统将根据规则归档冷数据。

通过SQL设置数据保留策略(TTL)

时序引擎支持以Database为单位设置数据的存活时间(Time To Live,简称TTL)。当TTL被设置后,时序数据的时间戳距当前的时间差超过了TTL的时间,则这些数据将被视作过期数据,会被时序引擎清除掉。

支持通过SQL语句CREATE DATABASE在创建Database时设置TTL,也支持通过控制台设置TTL

通过控制台管理Database生命周期

Lindorm也支持通过控制台的数据库管理界面上设置Database的冷热分界线以及数据保留策略。操作界面如下图所示:

image

重要
  • 时序数据的时间戳一般分成两种概念:

    • 事件时间:时序数据对应的事件真实发生时的时间。时序数据元素说明中提及的时序数据模型的时间戳即是事件时间。

    • 入库时间:时序数据写入数据库的时间。

    冷热分离和数据保留策略的设置都是基于事件时间,不支持基于入库时间设置。

  • 同时配置了冷热分界线和TTL时,若已归档的冷数据时间戳超过TTL设定的存活时间,系统也会自动触发清理机制来清理这部分数据。

  • 如果数据的时间戳超过了TTL范围,那这部分数据仍可以成功写入,但无法被查询到。

常见问题

更多常见问题请参见时序引擎常见问题

数据写入成功但无法查询到是什么原因?

请检查是否设置了数据有效期TTL。如果写入数据的时间超过TTL,则该数据写入后会被清理,导致查询结果为空。

冷数据归档和TTL清理数据为什么会滞后?

时序引擎中的冷数据归档和TTL清理数据是通过Compaction任务异步执行的,因此操作可能不会立即生效。同时,如果Compaction队列存在较多任务,则清理任务可能需要排队等待执行。