CN109189783A - 一种时序数据库表结构改变处理方法 - Google Patents
一种时序数据库表结构改变处理方法 Download PDFInfo
- Publication number
- CN109189783A CN109189783A CN201810879113.1A CN201810879113A CN109189783A CN 109189783 A CN109189783 A CN 109189783A CN 201810879113 A CN201810879113 A CN 201810879113A CN 109189783 A CN109189783 A CN 109189783A
- Authority
- CN
- China
- Prior art keywords
- schema
- column
- data
- version
- back end
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/213—Schema design and management with details for schema evolution support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种时序数据库表结构改变处理方法,包括每个数据表有唯一的表名ID,表结构中增加schema版本和列ID;每次应用修改表的schema时,将schema版本增加,新增的列按递增的原则分配新的列ID,并提供一缺省值;数据插入时,数据节点维持有每个采集点的schema,应用的数据插入请求需要带所使用的schema的版本,数据节点对保存的schema版本与应用传过来的schema版本进行比较后按照预设的方式进行处理,通过该方法改变表的结构可瞬时完成,无需改变历史数据,新老结构定义可并行使用,能够提高灵活性。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种时序数据库表结构改变处理方法。
背景技术
一个数据采集点在同一个时间点往往采集多个参数,而且参数的个数可能随着软件或固件的更新发生改变。为应对这种改变,现有的一种方式是将每个采集的参数作为一个独立的时间序列进行存储,这样十分灵活,但是每个序列都需要保存自己的时间戳,浪费存储空间,而且不便于采集的不同参数之间的计算操作。另外一种方式就是采用传统关系型数据库的方式,每个参数是一列,多个参数就是多列,这样的好处就是多列共享了一个时间戳。但是缺点很明显,增加一新的参数,需要增加新的一列。而对于记录条数海量的表而言,将是极其低效的操作,因为要更新所有现有的数据。
发明内容
本发明的目的在于克服现有技术的不足,提供一种时序数据库表结构改变处理方法,通过该方法改变表的结构可瞬时完成,无需改变历史数据,新老结构定义可并行使用,能够提高灵活性。
本发明提供了一种时序数据库表结构改变处理方法,包括如下步骤:
每个数据表有唯一的表名ID,表结构定义中增加schema版本和列ID;
每次应用修改表的schema时,将schema版本增加,新增的列按递增的原则分配新的列ID,并提供一缺省值;
数据插入时,数据节点维持有每个采集点的schema,应用的数据插入请求需要带所使用的schema的版本,数据节点对保存的schema版本与应用传过来的schema版本进行比较后按照预设的方式进行处理。
进一步地,增加的schema版本从0或某个数开始,每次修改一次schema,schema版本加1。
进一步地,列ID从0或某个数开始,自然增长,某列被删除时对应的列ID也不重复使用。
进一步地,每列能够定义缺省值。
进一步地,如果是删除列,将其从schema中直接删除。
进一步地,修改列的名字时,保证列名字在一张表内的唯一性后可任意修改。
进一步地,进行比较的具体方式为:
如果一致,就正常处理;
如果应用的schema版本小,按出错处理;
如果应用的schema版本大,数据节点采取如下步骤:
a.将该采集点在内存缓存区的数据全部落盘;
b.去元数据节点获取该采集点最新的schema定义;
c.获取最新schema定义后,重新分配新的内存缓存区,将数据写入。
进一步地,数据从缓存区写入磁盘时,创建一数据块和对应的索引块信息,数据块里或者索引块里保存有schema的定义。
进一步地,还包括查询步骤:查询时,应用告知系统需要查询处理的列,系统需要将这些列转换为列ID,然后将查询请求发往相应的数据节点。
进一步地,还包括数据节点根据查询条件,确定满足条件的数据块,如果要查询的列在数据块里有定义,就正常处理,否则返回缺省值。
本发明的时序数据库表结构改变处理方法,可以实现:
1)修改schema瞬间完成,无需修改数据节点上的历史数据,灵活性高;
2)对于插入和查询流程,与传统方式相比,增加的检查所消耗的CPU微不足道,保证功耗的同时,效率提高;
3)应用即使没有更新最新的schema,可继续工作,新旧schema可并行存在,应用性强。
具体实施方式
下面详细说明本发明的具体实施,有必要在此指出的是,以下实施只是用于本发明的进一步说明,不能理解为对本发明保护范围的限制,该领域技术熟练人员根据上述本发明内容对本发明做出的一些非本质的改进和调整,仍然属于本发明的保护范围。
本发明提供了一种时序数据库表结构改变处理方法,下面对该方法进行具体的介绍。
一、表结构(schema)的调整
表结构的定义里需要有schema版本,从0或某个数开始,每次修改一次schema,加1
表结构,列的定义除列名、数据类型外,需要有列ID,列ID从0或某个数开始,自然增长,即使某列被删除,它的列ID不能被重复使用。每列可以定义缺省值,如果采集的时序数据不带此列时,可以设置的缺省值。
二、索引文件里索引块的调整
每个索引块里需要包含schema信息,包括
ο数据类型
ο字节数
ο列ID
Schema参数也可以放在数据文件的数据块里。
三、修改Schema的流程
应用修改表的schema,递交后,维护采集点schema的元数据节点Meta Node只有简单三点,没有其他操作。
1)需要将schema版本增一;
2)新增的列需要按递增的原则分配一新的列ID,而且需要提供一缺省值;
3)如果是删除列,就简单将其从schema中删除。
4)对于修改表或列的名字,只要保证名字的唯一性,可任意修改
四、数据插入流程的调整
1)数据节点维持有每个采集点的schema
2)应用的插入请求需要带所使用的schema的版本
3)数据节点对保存的schema版本与应用传过来的schema版本进行比较。如果一致,就正常处理。如果应用的schema版本小,按出错处理。但如果应用的schema版本大,意味着应用已经更新,已经有最新的schema。这时数据节点需要采取如下步骤:
a.将该采集点在内存缓存区的数据全部落盘;
b.去元数据节点获取该采集点最新的schema定义;
c.获取最新schema后,重新分配新的内存缓存区,将数据写入;
4)数据从缓存区写入磁盘时,需要检查schema版本是否改变,如果已经改变,老的数据块需要关闭,而需要建立一新的数据块,新的数据块里带有新的schema的定义;
五、数据查询流程的调整
1)查询时,应用需要告知系统哪些列需要查询处理,系统需要将这些列换为列ID,然后将查询请求发往相应的数据节点;
2)数据节点根据查询条件,先确定满足条件的数据块;
3)如果要查询的列在数据块里有定义,就正常处理。如果查询的列在数据块里没有定义,就返回缺省值。
尽管为了说明的目的,已描述了本发明的示例性实施方式,但是本领域的技术人员将理解,不脱离所附权利要求中公开的发明的范围和精神的情况下,可以在形式和细节上进行各种修改、添加和替换等的改变,而所有这些改变都应属于本发明所附权利要求的保护范围,并且本发明要求保护的产品各个部门和方法中的各个步骤,可以以任意组合的形式组合在一起。因此,对本发明中所公开的实施方式的描述并非为了限制本发明的范围,而是用于描述本发明。相应地,本发明的范围不受以上实施方式的限制,而是由权利要求或其等同物进行限定。
Claims (9)
1.一种时序数据库表结构改变处理方法,其特征在于,包括如下步骤:
每个数据表有唯一的表名ID,表结构定义中增加schema版本和列ID;
每次应用修改表的schema时,将schema版本增加,新增的列按递增的原则分配新的列ID,并提供一缺省值;
数据插入时,数据节点维持有每个采集点的schema,应用的数据插入请求需要带所使用的schema的版本,数据节点对保存的schema版本与应用传过来的schema版本进行比较后按照预设的方式进行处理。
2.如权利要求1所述的方法,其特征在于:增加的schema版本从0或某个数开始,每次修改一次schema,schema版本加1。
3.如权利要求1所述的方法,其特征在于:列ID从0或某个数开始,自然增长,某列被删除时对应的列ID也不重复使用。
4.如权利要求1所述的方法,其特征在于:如果是删除列,将其从schema中直接删除。
5.如权利要求1-4任一项所述的方法,其特征在于:修改列的名字时,保证列名字在一张表里的唯一性后可任意修改。
6.如权利要求1所述的方法,其特征在于:进行比较的具体方式为:
如果一致,就正常处理;
如果应用的schema版本小,按出错处理;
如果应用的schema版本大,数据节点采取如下步骤:
a.将该采集点在内存缓存区的数据全部落盘;
b.去元数据节点获取该采集点最新的schema定义;
c.获取最新schema定义后,重新分配新的内存缓存区,将数据写入。
7.如权利要求6所述的方法,其特征在于:数据从缓存区写入磁盘时,建立一新的数据块和对应的索引块信息,新的数据块里或者索引块里保存有其schema的定义。
8.如权利要求1所述的方法,其特征在于:还包括查询步骤:查询时,应用告知系统需要查询处理的列,系统需要将这些列转换为列ID,然后将查询请求发往相应的数据节点。
9.如权利要求8所述的方法,其特征在于:还包括数据节点根据查询条件,确定满足条件的数据块,如果要查询的列在数据块里有定义,就正常处理,否则返回缺省值。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810879113.1A CN109189783B (zh) | 2018-08-03 | 2018-08-03 | 一种时序数据库表结构改变处理方法 |
EP19843691.7A EP3832478A4 (en) | 2018-08-03 | 2019-07-18 | TIME SEQUENCE DATABASE TABLE STRUCTURE CHANGE PROCESSING METHOD |
US17/265,278 US11586605B2 (en) | 2018-08-03 | 2019-07-18 | Processing method for changing time-series database table structure |
PCT/CN2019/096450 WO2020024797A1 (zh) | 2018-08-03 | 2019-07-18 | 一种时序数据库表结构改变处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810879113.1A CN109189783B (zh) | 2018-08-03 | 2018-08-03 | 一种时序数据库表结构改变处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189783A true CN109189783A (zh) | 2019-01-11 |
CN109189783B CN109189783B (zh) | 2023-10-03 |
Family
ID=64920075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810879113.1A Active CN109189783B (zh) | 2018-08-03 | 2018-08-03 | 一种时序数据库表结构改变处理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11586605B2 (zh) |
EP (1) | EP3832478A4 (zh) |
CN (1) | CN109189783B (zh) |
WO (1) | WO2020024797A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020024797A1 (zh) * | 2018-08-03 | 2020-02-06 | 北京涛思数据科技有限公司 | 一种时序数据库表结构改变处理方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114185914B (zh) * | 2022-02-16 | 2022-04-29 | 西安热工研究院有限公司 | 计算标签数据的补算方法、系统、设备及存储介质 |
CN116226222B (zh) * | 2022-12-02 | 2023-11-07 | 清华大学 | 基于时序数据库的数据段标记处理方法及装置 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0520459A2 (en) * | 1991-06-28 | 1992-12-30 | Digital Equipment Corporation | A method and apparatus for indexing and retrieval of object versions in a versioned data base |
FR2844372A1 (fr) * | 2002-09-11 | 2004-03-12 | Michel Zamfiroiu | Procede d'organisation d'une base de donnees numeriques sous une forme tracable |
US20050198630A1 (en) * | 2004-03-08 | 2005-09-08 | Microsoft Corporation | Relational database schema version management |
US7251669B1 (en) * | 2003-03-31 | 2007-07-31 | Microsoft Corporation | System and method for database versioning |
CN101499069A (zh) * | 2008-02-02 | 2009-08-05 | 中兴通讯股份有限公司 | 内存数据库文件的更新方法及更新装置 |
US7707165B1 (en) * | 2004-12-09 | 2010-04-27 | Netapp, Inc. | System and method for managing data versions in a file system |
US20120023080A1 (en) * | 2010-07-23 | 2012-01-26 | Google Inc. | Encoding a schema version in table names |
CN103810257A (zh) * | 2014-01-24 | 2014-05-21 | 华为技术有限公司 | 一种升级软件数据库的方法、装置及设备 |
CN105630898A (zh) * | 2015-12-18 | 2016-06-01 | 国云科技股份有限公司 | 一种适用于应用程序数据库表数据版本切换的方法 |
CN105868396A (zh) * | 2016-04-19 | 2016-08-17 | 上海交通大学 | 内存文件系统的多版本控制方法 |
US20170308568A1 (en) * | 2016-04-26 | 2017-10-26 | Servicenow, Inc. | System and method for mapping database changes |
CN107861737A (zh) * | 2017-11-06 | 2018-03-30 | 国云科技股份有限公司 | 一种大型系统的数据库版本迁移方法 |
CN108241724A (zh) * | 2017-05-11 | 2018-07-03 | 新华三大数据技术有限公司 | 一种元数据管理方法和装置 |
CN108255925A (zh) * | 2017-11-10 | 2018-07-06 | 平安普惠企业管理有限公司 | 一种数据表结构变更情况的显示方法及其终端 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6865697B2 (en) * | 2002-01-18 | 2005-03-08 | International Business Machines Corporation | Method and apparatus for reduced error checking of data received by a server from a client |
EP1872215B1 (en) * | 2005-04-18 | 2018-05-09 | BlackBerry Limited | Implementing data-compatibility-based version scheme |
US20060248182A1 (en) * | 2005-05-02 | 2006-11-02 | Polycentric Networks Corporation | Formatted and/or tunable QoS data publication, subscription, and/or distribution including dynamic network formation |
US20070088766A1 (en) * | 2005-10-17 | 2007-04-19 | Oracle International Corporation | Method and system for capturing and storing multiple versions of data item definitions |
US8571882B1 (en) * | 2006-07-05 | 2013-10-29 | Ronald J. Teitelbaum | Peer to peer database |
CN101256522A (zh) * | 2007-02-28 | 2008-09-03 | 上海西门子医疗器械有限公司 | 用于医疗设备计算机系统的数据备份/恢复方法 |
US20100121839A1 (en) * | 2007-03-15 | 2010-05-13 | Scott Meyer | Query optimization |
US10698923B2 (en) * | 2009-06-11 | 2020-06-30 | Talari Networks, Inc. | Methods and apparatus for providing adaptive private network database schema migration and management processes |
CN102098342B (zh) * | 2011-01-31 | 2013-08-28 | 华为技术有限公司 | 一种基于事务级的数据同步方法、装置及系统 |
US9229960B2 (en) * | 2013-02-11 | 2016-01-05 | International Business Machines Corporation | Database management delete efficiency |
US9569468B2 (en) * | 2013-05-07 | 2017-02-14 | Red Hat Israel, Ltd. | Deploying database upgrades to multiple environments in a different order |
US10002372B2 (en) * | 2015-09-15 | 2018-06-19 | Sap Se | Duplicate check based on generated hash value |
CN109189783B (zh) * | 2018-08-03 | 2023-10-03 | 北京涛思数据科技有限公司 | 一种时序数据库表结构改变处理方法 |
-
2018
- 2018-08-03 CN CN201810879113.1A patent/CN109189783B/zh active Active
-
2019
- 2019-07-18 US US17/265,278 patent/US11586605B2/en active Active
- 2019-07-18 EP EP19843691.7A patent/EP3832478A4/en active Pending
- 2019-07-18 WO PCT/CN2019/096450 patent/WO2020024797A1/zh unknown
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0520459A2 (en) * | 1991-06-28 | 1992-12-30 | Digital Equipment Corporation | A method and apparatus for indexing and retrieval of object versions in a versioned data base |
FR2844372A1 (fr) * | 2002-09-11 | 2004-03-12 | Michel Zamfiroiu | Procede d'organisation d'une base de donnees numeriques sous une forme tracable |
US7251669B1 (en) * | 2003-03-31 | 2007-07-31 | Microsoft Corporation | System and method for database versioning |
US20050198630A1 (en) * | 2004-03-08 | 2005-09-08 | Microsoft Corporation | Relational database schema version management |
US7707165B1 (en) * | 2004-12-09 | 2010-04-27 | Netapp, Inc. | System and method for managing data versions in a file system |
CN101499069A (zh) * | 2008-02-02 | 2009-08-05 | 中兴通讯股份有限公司 | 内存数据库文件的更新方法及更新装置 |
US20120023080A1 (en) * | 2010-07-23 | 2012-01-26 | Google Inc. | Encoding a schema version in table names |
CN103810257A (zh) * | 2014-01-24 | 2014-05-21 | 华为技术有限公司 | 一种升级软件数据库的方法、装置及设备 |
CN105630898A (zh) * | 2015-12-18 | 2016-06-01 | 国云科技股份有限公司 | 一种适用于应用程序数据库表数据版本切换的方法 |
CN105868396A (zh) * | 2016-04-19 | 2016-08-17 | 上海交通大学 | 内存文件系统的多版本控制方法 |
US20170308568A1 (en) * | 2016-04-26 | 2017-10-26 | Servicenow, Inc. | System and method for mapping database changes |
CN108241724A (zh) * | 2017-05-11 | 2018-07-03 | 新华三大数据技术有限公司 | 一种元数据管理方法和装置 |
CN107861737A (zh) * | 2017-11-06 | 2018-03-30 | 国云科技股份有限公司 | 一种大型系统的数据库版本迁移方法 |
CN108255925A (zh) * | 2017-11-10 | 2018-07-06 | 平安普惠企业管理有限公司 | 一种数据表结构变更情况的显示方法及其终端 |
Non-Patent Citations (2)
Title |
---|
ESSEN: "Database Schema Migrations", APRESS, BERKELEY, CA, pages 1 - 18 * |
丁昊: "地理空间数据版本管理技术的研究", 中国优秀硕士学位论文全文数据库(电子期刊), pages 38 - 40 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020024797A1 (zh) * | 2018-08-03 | 2020-02-06 | 北京涛思数据科技有限公司 | 一种时序数据库表结构改变处理方法 |
US11586605B2 (en) | 2018-08-03 | 2023-02-21 | Taos Data | Processing method for changing time-series database table structure |
Also Published As
Publication number | Publication date |
---|---|
EP3832478A4 (en) | 2022-04-06 |
CN109189783B (zh) | 2023-10-03 |
US20210279223A1 (en) | 2021-09-09 |
US11586605B2 (en) | 2023-02-21 |
EP3832478A1 (en) | 2021-06-09 |
WO2020024797A1 (zh) | 2020-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109299102B (zh) | 一种基于Elastcisearch的HBase二级索引系统及方法 | |
TWI262406B (en) | System, method and program storage device for dynamic caching of data based on queries performed by a local application | |
CN109189783A (zh) | 一种时序数据库表结构改变处理方法 | |
JP6281225B2 (ja) | 情報処理装置 | |
US20150234842A1 (en) | Mapping of Extensible Datasets to Relational Database Schemas | |
US20150278310A1 (en) | Database device | |
CN109902130A (zh) | 一种数据存储方法、数据查询方法和装置、存储介质 | |
CN105138635A (zh) | 一种利用哈希值比对进行数据增量复制的方法 | |
CN104182405A (zh) | 一种连接查询方法及装置 | |
EP3862888A1 (en) | Hybrid data distribution in a massively parallel processing architecture | |
WO2010084754A1 (ja) | データベースシステム、データベース管理方法、データベース構造および記憶媒体 | |
CN102789475A (zh) | 数据库服务器端结果集缓存的数据同步方法及装置 | |
CN110019200B (zh) | 一种索引的建立、使用方法及装置 | |
CN106339498A (zh) | 数据同步方法、装置和系统 | |
WO2017088666A1 (zh) | 一种数据存储方法和协调节点 | |
CN110309233A (zh) | 数据存储的方法、装置、服务器和存储介质 | |
US11675743B2 (en) | Web-scale distributed deduplication | |
CN106156070A (zh) | 一种查询方法、文件合并方法与相关装置 | |
US9104711B2 (en) | Database system, method of managing database, and computer-readable storage medium | |
US9965535B2 (en) | Client-side handling of transient duplicates for row-level replication | |
CN112948898A (zh) | 一种区块链中防止应用数据被篡改的方法和安全模块 | |
CN104731716A (zh) | 一种数据存储方法 | |
US11321354B2 (en) | System, computing node and method for processing write requests | |
US11263264B2 (en) | Management of graphs using secondary index vertices | |
US7165072B2 (en) | Method for merging information from effective dated base tables |
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 |