CN108733743B - 一种基于时间轴的时序数据库版本管理实现方法 - Google Patents
一种基于时间轴的时序数据库版本管理实现方法 Download PDFInfo
- Publication number
- CN108733743B CN108733743B CN201810247166.1A CN201810247166A CN108733743B CN 108733743 B CN108733743 B CN 108733743B CN 201810247166 A CN201810247166 A CN 201810247166A CN 108733743 B CN108733743 B CN 108733743B
- Authority
- CN
- China
- Prior art keywords
- time
- version
- data
- database
- axis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于时间轴的时序数据库版本管理实现方法,对需要进行时序数据存储的表添加用于唯一索引约束的字段,以及并利用触发行为修改表的存储行为以进行时序数据存储。本发明公开的时序数据库版本管理的实现方法能够快速的从关系数据库创建版本数据库。能够在写入者写入数据时自动生成历史版本数据,而这些操作对一般的数据库使用者来说是不可见的,数据库使用者无需进行任何操作方式的改变,即可将之前操作数据库的行为变成操作时序历史版本数据库。并支持数据切面分析和数据趋势分析。
Description
技术领域
本发明涉及一种基于时间轴的时序数据库版本管理实现方法。
背景技术
时序数据库全称为时间序列数据库。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。
时间序列数据主要由电力行业、化工行业等各类型实时监测、检查与分析设备所采集、产生的数据量主要取决于数据源的采样频率。而该时序数据库的实现主要用于记录电力化工等相关行业模型信息的变化,模型信息的变动相比采集数据信息具有变化慢,数据量小等特点,但模型信息数据库要求数据库更加稳定和高效,要求可进行版本管理,版本比较,多个版本同时切换或查看等特点。
发明内容
本发明为了解决上述问题,提出了一种基于时间轴的时序数据库版本管理实现方法,本发明能够非常容易的将普通的关系数据库改为时序数据库,并支持数据切面分析,数据趋势分析等。
为了实现上述目的,本发明采用如下技术方案:
一种基于时间轴的时序数据库版本管理实现方法,对需要进行时序数据存储的表添加用于唯一索引约束的字段,以及并利用触发行为修改表的存储行为以进行时序数据存储。
进一步的,对数据表进行转换,添加两个表示时间的字段分别表示一个数据的创建时间和截止时间。
进一步的,为新增的字段设置默认值,创建时间默认值为当前时间,截止时间默认值为无穷大。
进一步的,使用创建时间字段和原唯一索引字段形成新的组合唯一索引约束用于表示一个唯一的版本记录,且删除原有的唯一索引约束。
进一步的,为数据库分别创建写入用户和读取用户,其中写入用户对数据表具有写和修改权限;读取用户对数据表仅具有读权限。
进一步的,为每个数据表建立行为前触发器,修改数据表的更新与删除行为。
为更加清楚的进行说明,现对更新行为和删除行为进行解释:
更新行为:将历史记录数据的截止时间修改为当前时间,新记录的创建时间修改为当前时间,插入一条新的记录并返回历史记录。
删除行为:将历史记录数据的截止时间修改为当前时间,更新历史记录并返回。
更进一步的,更新行为修改依据为:将历史记录数据的截止时间修改为当前时间,新记录的创建时间修改为当前时间,插入一条新的记录并返回历史记录。
更进一步的,删除行为修改依据为:将历史记录数据的截止时间修改为当前时间,更新历史记录并返回。
进一步的,数据库存储过程,构建设置版本函数和获取版本函数,设置版本函数将传入一个任意时间戳作为时间版本,同时重写获取版本函数,使获取版本函数获取到的版本时间为执行设置版本函数设置的时间。
进一步的,为每个时序数据表构建历史视图,仅展示除创建时间和截止时间外的字段,且要求数据的创建时间小于等于获取版本函数获取的时间并且数据的截止时间大于获取的时间,并赋予读取用户读取所有历史视图的权限。
进一步的,写入用户在数据表中生成历史版本,读取用户利用设置版本函数设置一个时间版本后,使用历史视图读取该时间版本的数据;或直接读取原始表读取一条记录所有的变化趋势。
与现有技术相比,本发明的有益效果为:
本发明公开的时序数据库版本管理的实现方法能够快速的从关系数据库创建版本数据库,能够在写入者写入数据时自动生成历史版本数据,而这些操作对一般的数据库使用者来说是不可见的,数据库使用者无需进行任何操作方式的改变,即可将之前操作数据库的行为变成操作时序历史版本数据库,并支持数据切面分析和数据趋势分析。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本发明中对数据表的update行为修改的示意图;
图2为本发明中对数据表的delete行为修改的示意图;
图3为本发明中数据表历史视图的实现说明;
图4为本发明的流程示意图。
具体实施方式:
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在本发明中,术语如“上”、“下”、“左”、“右”、“前”、“后”、“竖直”、“水平”、“侧”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,只是为了便于叙述本发明各部件或元件结构关系而确定的关系词,并非特指本发明中任一部件或元件,不能理解为对本发明的限制。
本发明中,术语如“固接”、“相连”、“连接”等应做广义理解,表示可以是固定连接,也可以是一体地连接或可拆卸连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的相关科研或技术人员,可以根据具体情况确定上述术语在本发明中的具体含义,不能理解为对本发明的限制。
如图1所示,一种基于时间轴的时序数据库版本管理实现方法,包括:
检查原数据表是否具有唯一索引约束,没有没有需要添加一个字段用于唯一索引约束。
进一步的,对数据表进行转换,添加两个表示时间的字段(commit_time和expiration_time)分别表示一个数据的创建时间和截止时间。其中创建时间的默认值为此时now(),截止时间的默认值为无穷大或无限时infinity。
进一步的,使用commit_time字段和原唯一索引字段创建新的组合唯一索引约束用于表示一个唯一的版本记录,且删除原有的唯一索引约束。
进一步的,为数据库创建两个用户,写入用户writer和读取用户reader,其中writer对数据表具有写和修改权限;reader对数据表仅具有读权限。
进一步的,为每个数据表的新增Before触发器,修改数据表的更新udate和删除delete行为。
Update行为修改依据为:将OLD记录数据的expiration_time修改为当前时间,NEW记录的commit_time修改为当前时间,插入insert一条新的记录NEW并返回历史OLD记录。
Delete行为修改依据为:将OLD记录数据的expiration_time修改为当前时间,updateOLD记录并返回NULL。
至此,用户writer在数据库中写入数据并实时生成历史版本。
进一步的,数据库存储过程,构建设置版本函数setversion(),获取版本函数getversion();setversion()将传入一个任意时间戳作为时间版本,同时重写getversion()函数,使getversion()获取到的版本时间为执行setversion()设置的时间。
进一步的,为每个时序数据表历史视图如图3所示,历史视图仅展示除创建时间和截止时间外的字段,且要求数据的创建时间小于等于getversion()获取的时间并且数据的截止时间大于getversion()获取的时间。并赋予用户reader读取所有历史视图的权限。
至此,用户writer可在数据表中生成历史版本,用户reader可在使用setversion设置一个时间版本后,使用历史视图读取该时间版本的数据;并能够直接读取原始表读取一条记录所有的变化趋势。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (8)
1.一种基于时间轴的时序数据库版本管理实现方法,其特征是:对需要进行时序数据存储的表添加用于唯一索引约束的字段,以及并利用触发行为修改表的存储行为以进行时序数据存储;
为每个时序数据表构建历史视图,仅展示除创建时间和截止时间外的字段,且要求数据的创建时间小于等于获取版本函数获取的时间并且数据的截止时间大于获取的时间,并赋予读取用户读取所有历史视图的权限;
读取用户利用设置版本函数设置一个时间版本后,使用历史视图读取该时间版本的数据;或直接读取原始表读取一条记录所有的变化趋势;所述方法为数据库分别创建写入用户和读取用户,写入用户在数据表中生成历史版本。
2.如权利要求1所述的一种基于时间轴的时序数据库版本管理实现方法,其特征是:对数据表进行转换,添加两个表示时间的字段分别表示一个数据的创建时间和截止时间。
3.如权利要求1所述的一种基于时间轴的时序数据库版本管理实现方法,其特征是:使用创建时间字段和原唯一索引字段形成新的组合唯一索引约束用于表示一个唯一的版本记录,且删除原有的唯一索引约束。
4.如权利要求1所述的一种基于时间轴的时序数据库版本管理实现方法,其特征是:所述写入用户对数据表具有写和修改权限;所述读取用户对数据表仅具有读权限。
5.如权利要求1所述的一种基于时间轴的时序数据库版本管理实现方法,其特征是:每个数据表建立行为前触发器,修改数据表的更新与删除行为。
6.如权利要求5所述的一种基于时间轴的时序数据库版本管理实现方法,其特征是:更新行为修改依据为:将历史记录数据的截止时间修改为当前时间,新记录的创建时间修改为当前时间,插入一条新的记录并返回历史记录。
7.如权利要求5所述的一种基于时间轴的时序数据库版本管理实现方法,其特征是:删除行为修改依据为:将历史记录数据的截止时间修改为当前时间,更新历史记录并返回。
8.如权利要求1所述的一种基于时间轴的时序数据库版本管理实现方法,其特征是:数据库存储过程,构建设置版本函数和获取版本函数,设置版本函数将传入一个任意时间戳作为时间版本,同时重写获取版本函数,使获取版本函数获取到的版本时间为执行设置版本函数设置的时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810247166.1A CN108733743B (zh) | 2018-03-23 | 2018-03-23 | 一种基于时间轴的时序数据库版本管理实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810247166.1A CN108733743B (zh) | 2018-03-23 | 2018-03-23 | 一种基于时间轴的时序数据库版本管理实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108733743A CN108733743A (zh) | 2018-11-02 |
CN108733743B true CN108733743B (zh) | 2021-04-23 |
Family
ID=63940560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810247166.1A Active CN108733743B (zh) | 2018-03-23 | 2018-03-23 | 一种基于时间轴的时序数据库版本管理实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108733743B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694908B (zh) * | 2019-03-15 | 2024-06-14 | 丰图科技(深圳)有限公司 | 数据存储方法、装置及存储介质 |
CN111538921B (zh) * | 2020-04-27 | 2023-09-19 | 咪咕文化科技有限公司 | 展示方法与电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092947A (zh) * | 2013-01-11 | 2013-05-08 | 辽宁省电力有限公司朝阳供电公司 | 一种数据版本控制方法 |
CN104252519A (zh) * | 2014-03-24 | 2014-12-31 | 国家基础地理信息中心 | 地形数据库增量更新方法 |
CN105677889A (zh) * | 2016-01-30 | 2016-06-15 | 武汉大学 | 一种空间数据的局部更新、整体还原增量更新方法 |
CN107103041A (zh) * | 2017-03-28 | 2017-08-29 | 广东网金控股股份有限公司 | 一种sql server数据库更新的存储方法和存储系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4224126B1 (ja) * | 2008-06-09 | 2009-02-12 | パナソニック株式会社 | データベース管理サーバ装置、データベース管理システム、データベース管理方法およびデータベース管理プログラム |
-
2018
- 2018-03-23 CN CN201810247166.1A patent/CN108733743B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092947A (zh) * | 2013-01-11 | 2013-05-08 | 辽宁省电力有限公司朝阳供电公司 | 一种数据版本控制方法 |
CN104252519A (zh) * | 2014-03-24 | 2014-12-31 | 国家基础地理信息中心 | 地形数据库增量更新方法 |
CN105677889A (zh) * | 2016-01-30 | 2016-06-15 | 武汉大学 | 一种空间数据的局部更新、整体还原增量更新方法 |
CN107103041A (zh) * | 2017-03-28 | 2017-08-29 | 广东网金控股股份有限公司 | 一种sql server数据库更新的存储方法和存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108733743A (zh) | 2018-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8655896B2 (en) | Apparatus and methods for organizing data items having time of life intervals | |
CN109508355A (zh) | 一种数据抽取方法、系统及终端设备 | |
CN103853821A (zh) | 一种面向多用户协作的数据挖掘平台的构建方法 | |
CN107562931A (zh) | 数据抽取系统和数据抽取方法 | |
US20070083543A1 (en) | XML schema template builder | |
CN108733743B (zh) | 一种基于时间轴的时序数据库版本管理实现方法 | |
CN104182484A (zh) | 一种实现HBase数据与Java域对象映射的方法和装置 | |
CN110134663B (zh) | 组织结构数据处理方法、装置、电子设备 | |
CN104102652A (zh) | 一种非结构化数据存储系统及方法 | |
CN111400303B (zh) | 智能合约数据提取和同步方法、系统 | |
CN110597821B (zh) | 数据仓库表结构变更方法及装置 | |
CN104657387A (zh) | 一种数据查询方法及装置 | |
CN109857803A (zh) | 数据同步方法、装置、设备、系统及计算机可读存储介质 | |
KR102339897B1 (ko) | 보고서 자동 생성 기반의 업무 프로세스 관리 시스템 제공 방법 | |
CN112818048A (zh) | 数据仓库的分层构建方法、装置、电子设备及存储介质 | |
CN117238433B (zh) | 基于LibreOffice进行文档数据自动隔离的方法 | |
Kvet et al. | Transaction management in fully temporal system | |
CN103678696A (zh) | 控制数据读取分离的方法及装置 | |
CN115543402A (zh) | 一种基于代码提交的软件知识图谱增量更新方法 | |
CN106802928B (zh) | 电网历史数据管理方法及其系统 | |
CN109376148B (zh) | 缓慢变化维表的数据处理方法、装置、电子设备 | |
CN115408546A (zh) | 一种时序数据管理方法、装置、设备及存储介质 | |
CN104731908A (zh) | 一种基于etl的数据清洗方法 | |
CN111881136A (zh) | 一种实现医疗行业增量数据治理的方法 | |
CN108257013A (zh) | 保险产品定义方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: An implementation method of time series database version management based on time axis Effective date of registration: 20220705 Granted publication date: 20210423 Pledgee: Qilu bank Limited by Share Ltd. Ji'nan Huaiyin branch Pledgor: SHANDONG ZHAOYUAN INFORMATION TECHNOLOGY CO.,LTD. Registration number: Y2022980009829 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |