数据库管理

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

Database的概念

每个正在运行的Lindorm时序引擎实例都管理着一个或多个数据库(简称Database)。在各个Database之间,数据会被隔离。每个Database都有若干时序数据表,结合名词解释的描述,我们可以对时序引擎的数据层级归纳为下图所示:

image

如果一个Lindorm时序引擎实例计划包含不相关的项目数据,在很大程度上,彼此之间是隔离的。那么在这种情况下,建议将它们放到单独的数据库中,并且调整相应的授权和访问控制用户。此外,时序引擎允许用户跨Database访问数据,前提是该用户必须拥有对目标Database的相应操作的权限。

以Database为粒度的时序数据管理功能

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

  • 用户能够以Database为单位设置数据的冷热分界线。

    说明

    关于数据冷热分层的概念,可以参见时序数据的冷温热数据分层

  • 用户能够以Database为单位设置数据的存活时间(Time To Live,简称TTL)。

    当TTL被设置后,时序数据的时间戳距当前的时间差超过了TTL的时间,则这些数据将被视作过期数据,会被时序引擎清除掉。

重要

  1. 时序领域的数据的时间戳一般分成两种概念:

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

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

    上述冷热分界线和TTL的能力都是基于事件时间进行工作。目前不支持基于入库时间设置冷热分界线或TTL。

  2. 无论是冷数据归档还是数据到期清理工作,都是通过时序引擎的异步compaction任务执行的,因此,冷数据归档和TTL数据清理可能存在滞后的情况。

  3. 对Database既设置了冷热分界线,又设置了TTL的情况下,已归档的冷数据的时间戳如果超过了TTL定义的存活时间,数据也会触发清理。

  4. 对于Database设置了TTL的情况下,如果写入数据的时间戳已经超过了TTL的范围。那么写入仍然是可以成功的,但是查询时是查不到这样的数据的。

Database管理

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

  • Database的创建

    在时序引擎中创建一个新的Database。SQL语法请参见CREATE DATABASE

    说明

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

  • Database的删除

    在时序引擎中删除一个已有的Database。SQL语法请参见DROP DATABASE

  • Database的属性修改

    在时序引擎中对一个已有Database的属性进行修改。包括冷热分界线,数据存活期间等。SQL语法请参见ALTER DATABASE

  • Database的属性查询

    在时序引擎中查看一个已有Database的属性元数据。SQL语法请参见DESCRIBE DATABASE

在管理控制台上管理Database

在Lindorm实例的管理控制台上也可以对时序引擎的Database进行管理。可以直接在管理控制台的数据库管理界面上设置Database的冷热分界线以及数据保留策略。操作界面如下图所示:

image

重要

目前在管理控制台上并不支持Database的创建和删除。若需要创建或删除Database,还需使用SQL来操作。