CN104850565A - 一种基于k-v存储系统的元数据管理方法 - Google Patents

一种基于k-v存储系统的元数据管理方法 Download PDF

Info

Publication number
CN104850565A
CN104850565A CN201410055654.4A CN201410055654A CN104850565A CN 104850565 A CN104850565 A CN 104850565A CN 201410055654 A CN201410055654 A CN 201410055654A CN 104850565 A CN104850565 A CN 104850565A
Authority
CN
China
Prior art keywords
metadata
version
property
attributes
data
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
Application number
CN201410055654.4A
Other languages
English (en)
Other versions
CN104850565B (zh
Inventor
马文金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong three hundred and sixty degree e-commerce Co., Ltd.
Original Assignee
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Shangke Information Technology Co Ltd
Priority to CN201410055654.4A priority Critical patent/CN104850565B/zh
Publication of CN104850565A publication Critical patent/CN104850565A/zh
Application granted granted Critical
Publication of CN104850565B publication Critical patent/CN104850565B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于K-V存储系统的元数据管理方法,该方法包括:建立元数据表、元数据属性表和数据表;其中,元数据存储在元数据表和元数据属性表中,元数据所属对象包括数据值,存储在数据表中;将第一对象的第一元数据进行修改后,存储到第一对象的第一元数据所在的元数据表、元数据属性表和数据表中。采用本发明能够在元数据修改后存储时不需要升级序列化工具系统,不影响已有程序的运行,做到向上兼容。

Description

一种基于K-V存储系统的元数据管理方法
技术领域
本发明涉及计算机技术领域,特别涉及一种基于K-V存储系统的元数据管理方法。
背景技术
键值存储系统是一种常用的存储系统,其中的数据条目以键名-键值(Key-Value)方式保存。KV存储非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能。例如为HBase。
现有技术中元数据存储定义表的时候就确定了表的元数据信息,在实际业务场景中由于业务逻辑的变迁导致需要对元数据进行修改。修改主要表现为:1.增加或者删除元数据中属性。2.修改属性名称。3.元数据A由业务场景中的元数据B扩展而来,修改了元数据B的元数据信息。因为数据对象在使用时往往被其他对象引用,对一个对象的元数据修改会造成大量的代码修改,这样就需要升级现有存储系统。
现有技术中,首先在用户类中已经定义了元数据的属性数量及属性名称,假设属性数量为3,属性名称分别为名字、年龄和地址。那么,在该用户类对应的用户表中K值为用户ID,V值为序列化的属性值,即将3个属性名称分别对应的属性值“张三”、“20岁”、“北京”序列化为一个值。如果修改元数据中属性数量,假设属性数量修改为2个,修改后的属性名称为名字和地址,则用户表中的K值仍然为用户ID,但是V值的序列化需要使用新的序列化工具,即使用升级后的序列化工具对修改后的属性名称对应的属性值重新编码进行序列化,否则,如果以原来的序列化工具进行序列化然后存储,得到的信息是错误的。也就是说,现有技术修改后存储需要升级现有序列化工具系统,而且升级后,原来的元数据版本会被升级后的版本覆盖,无法查询到。
发明内容
本发明的目的在于提供一种基于K-V存储系统的元数据管理方法,能够在元数据修改后存储时不需要升级序列化工具系统,不影响已有程序的运行,做到向上兼容。
为实现上述发明目的,本发明提供了一种基于K-V存储系统的元数据管理方法,该方法包括:
建立元数据表、元数据属性表和数据表;其中,元数据存储在元数据表和元数据属性表中,元数据所属对象包括数据值,存储在数据表中;
将第一对象的第一元数据进行修改后,存储到第一对象的第一元数据所在的元数据表、元数据属性表和数据表中。
综上所述,本发明实施例将对象的元数据存储为元数据表和元数据属性表,数据值存储为数据表。对对象的元数据进行修改时,直接在各个表中追加存储,这样的修改后存储,仍然可以采用修改之前的序列化工具系统,不影响已有程序的运行,简单易操作。而且,由于是追加存储,修改前的版本仍然可以查询到,做到数据变迁可追溯。
附图说明
图1为本发明基于K-V存储系统的元数据管理方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明的核心思想是:将对象进行元数据属性数量或者属性名称修改后,进行累加存储;其中,对象包括元数据和数据值,将元数据存储为元数据表和元数据属性表,数据值存储为数据表。也就是说,将对象的元数据和数据值分开存储,不像现有技术那样存储在同一个表中,本发明将对象的元数据存储为元数据表和元数据属性表,数据值存储为数据表。对对象的元数据进行修改时,直接在各个表中追加存储,这样的修改后存储,仍然可以采用修改之前的序列化工具系统,不影响已有程序的运行,简单易操作。而且,由于是追加存储,修改前的版本仍然可以查询到,做到数据变迁可追溯。
下面简单介绍一下本发明中所涉及的几个概念:
对象包括元数据和数据,数据化的元数据就是一个对象,对象可以是用户,商品,等等。
元数据:可以用于描述对象的属性。
父元数据:如果一个元数据具有父元数据,则该元数据除具有自身的属性外,还继承了该父元数据的所有属性。
本发明提供了一种基于K-V存储系统的元数据管理方法,其流程示意图如图1所示,该方法包括:
步骤S1、建立元数据表、元数据属性表和数据表;其中,元数据存储在元数据表和元数据属性表中,元数据所属对象包括数据值,存储在数据表中;
步骤S2、将第一对象的第一元数据进行修改后,存储到第一对象的第一元数据所在的元数据表、元数据属性表和数据表中。
首先,将元数据存储为元数据表和元数据属性表,元数据表如表1所示,元数据属性表如表2所示。将数值存储为数据表,数据表如表3所示。
表1
表2
表3
现有技术中只有一个用户表,其中,用户ID作为K值,每个属性名称对应的属性值拼接为一个值作为V值。从上述表1至3可以看出,本发明采用三个表,目的是将元数据和数据本身解耦合,元数据存储在表1和表2中,数据对应的属性值存储在表3中。
以元数据ID为MetaA,该元数据的属性数量为3,为例,表1具体化为表4:
表4
表2具体化为表5:
元数据ID 属性ID 元数据版本 属性名称
MetaA Property1ID 1 Property1
MetaA Property2ID 1 Property2
MetaA Property3ID 1 Property3
表5
表3具体化为表6:
元数据ID 属性ID 对象ID 属性值
MetaA Property1ID ObjectA XXXX
MetaA Property2ID ObjectA YYYY
MetaA Property3ID ObjectA ZZZZ
表6
实施例一
如果将上述表4-6中对象ID为ObjectA的第一对象进行元数据属性数量修改后,则在对应的各表4-6中追加存储对象ID为ObjectB的第二对象。以删除一个元数据属性数量为例,追加存储后的元数据表如表7所示:
表7
累加存储后的元数据属性表如表8所示:
元数据ID 属性ID 元数据版本 属性名称
MetaA Property1ID 1 Property1
MetaA Property2ID 1 Property2
MetaA Property3ID 1 Property3
MetaA Property4ID 2 Property1
MetaA Property5ID 2 Property2
表8
累加存储后的数据表如表9所示:
元数据ID 属性ID 对象ID 属性值
MetaA Property1ID ObjectA XXXX
MetaA Property2ID ObjectA YYYY
MetaA Property3ID ObjectA ZZZZ
MetaA Property4ID ObjectB PPPP
MetaA Property5ID ObjectB QQQQ
表9
从上述实施例可以看出,现有技术中修改前后属性值序列化的内容数量不同,无论增加或者减少或者顺序改变,都需要新的序列化工具,而本发明修改前后的属性值序列化的内容数量都是一,所以修改前后用的是同一序列化工具,所以不需要升级序列化工具系统。
实施例二
如果将上述表4-6中的元数据进行元数据属性名称修改,则将以第一元数据版本存储的对象进行修改后,以第二元数据版本进行累加存储。以将属性名称Property1修改为Property4为例,追加存储后的元数据表如表10所示:
表10
累加存储后的元数据属性表如表11所示:
元数据ID 属性ID 元数据版本 属性名称
MetaA Property1ID 1 Property1
MetaA Property2ID 1 Property2
MetaA Property3ID 1 Property3
MetaA Property1ID 2 Property4
表11
累加存储后,数据表仍然不变,与表9相同。
元数据ID 属性ID 对象ID 属性值
MetaA Property1ID ObjectA XXXX
MetaA Property2ID ObjectA YYYY
MetaA Property3ID ObjectA ZZZZ
表9
其中,由于是修改属性名称,所以修改后属性数量仍然为3,对象仍然为ObjectA,各属性名称对应的属性值也不会发生变化。
实施例三
该实施例中,元数据MetaA不能修改,即包括属性数量、属性名称都不能修改,所以必须扩展元数据,通过父元数据继承的特性,增加元数据MetaB,也就是说,元数据MetaA作为MetaB的父元数据,元数据MetaB不但具有MetaA的所有属性,而且增加了其他属性。下面的实施例中,MetaB继承了MetaA的三个属性,但同时自身增加了一个属性。也就是说,扩展元数据是在原元数据不能修改的情况下的,元数据属性数量增加。
所以,如果将第一元数据通过增加元数据属性数量扩展为第二元数据,则将第一元数据对应第一对象,第二元数据对应第二对象,将扩展之后的第二元数据以第一元数据作为父元数据进行累加存储。以增加一个元数据属性数量为例,追加存储后的元数据表如表12所示:
表12
累加存储后的元数据属性表如表13所示:
元数据ID 属性ID 元数据版本 属性名称
MetaA Property1ID 1 Property1
MetaA Property2ID 1 Property2
MetaA Property3ID 1 Property3
MetaB Property4ID 1 Property4
表13
累加存储后的元数据属性表如表14所示:
元数据ID 属性ID 对象ID 属性值
MetaA Property1ID ObjectA XXXX
MetaA Property2ID ObjectA YYYY
MetaA Property3ID ObjectA ZZZZ
MetaB Property4ID ObjectB PPPP
表14
进一步地,本发明的元数据存储时,分为元数据表、元数据属性表和数据表,三个表进行存储,进而查询属性值时,也是采用三步查询法。而且,由于本发明的修改后存储是累加存储,所以修改之前的元数据版本和修改之后的元数据版本都可以查询到,可以进行历史追溯。
本发明的查询方法包括以下步骤:
步骤11、根据元数据ID和元数据版本查询元数据表,确定对应版本下的元数据属性数量和属性ID,以及是否包括父元数据;
如果包括父元数据,则重新执行步骤11,所述元数据ID为父元数据ID;
如果不包括父元数据,则直接执行步骤12;
步骤12、根据元数据ID、元数据版本和属性ID查询元数据属性表,确定对应版本下每个属性ID对应的属性名称;
步骤13、根据元数据ID、对象ID以及属性名称对应的属性ID查询数据值表,确定对应版本下属性名称的属性值。
下面以实施例一中修改后存储的元数据为例进行查询,已知元数据ID为MetaA、版本为2、对象ID为ObjectB,则,
首先,根据MetaA、版本为2查询元数据表,得到版本2下元数据属性数量为2,属性ID分别为Property4ID、Property5ID,MetaA不包括父元数据;
然后,根据MetaA、版本为2和Property4ID查询元数据属性表,得到版本2下Property4ID对应的属性名称为Property1;根据MetaA、版本为2和Property5ID查询元数据属性表,得到版本2下Property5ID对应的属性名称为Property2;
最后,假设要得到版本2下属性名称为Property2的属性值,根据元数据属性表可知Property2对应的属性ID为Property5ID,则,根据MetaA、ObjectB和Property5ID,查询数据表,得到版本2下属性名称为Property2的属性值为QQQQ。
同理,在实施例二、实施例三中的查询方法原理相同,在此不再赘述。
本发明基于K-V存储系统的元数据管理方法,会带来如下好处:
一、通过存储时元数据和数据解耦合,修改之后存储仍然可以采用之前的序列化工具系统,不需要升级之前的序列化工具系统,使得元数据修改不影响已有程序的运行,做到向上兼容。
二、由于本发明的修改后存储是累加存储,所以修改之前的元数据版本和修改之后的元数据版本都可以查询到,使得元数据变迁可追溯。
三、通过扩展元数据,可以实现元数据之间的继承关系。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于K-V存储系统的元数据管理方法,其特征在于,该方法包括:
建立元数据表、元数据属性表和数据表;其中,元数据存储在元数据表和元数据属性表中,元数据所属对象包括数据值,存储在数据表中;
将第一对象的第一元数据进行修改后,存储到第一对象的第一元数据所在的元数据表、元数据属性表和数据表中。
2.如权利要求1所述的方法,其特征在于,所述元数据包括元数据属性名称,所述修改为修改元数据属性名称时,则通过版本修改,将第一对象的第一元数据所对应的第一元数据版本,修改为第一对象的第一元数据对应第二元数据版本。
3.如权利要求1所述的方法,其特征在于,所述元数据包括元数据属性数量,所述修改为修改元数据属性数量时,则通过版本和对象修改,将第一对象的第一元数据所对应的第一元数据版本,修改为第二对象的第一元数据对应第二元数据版本。
4.如权利要求1所述的方法,其特征在于,所述修改进一步包括扩展元数据,所述第一元数据通过增加元数据属性数量扩展修改为第二元数据时,将第一对象的第一元数据修改为第二对象的第二元数据,所述第二元数据以第一元数据为父元数据。
5.如权利要求1所述的方法,其特征在于,
所述元数据表的键名包括元数据标识ID、元数据版本,键值包括属性数量、属性ID、父元数据ID和修改日期;
所述元数据属性表的键名包括元数据ID、属性ID和元数据版本,键值包括属性名称;
所述数据表的键名包括元数据ID、属性ID和对象ID,键值包括属性值。
6.根据权利要求5所述的方法,其特征在于,该方法还包括以下查询流程:
A、根据元数据ID和元数据版本查询元数据表,确定对应版本下的元数据属性数量和属性ID,以及是否包括父元数据;如果包括父元数据,则重新执行步骤A,所述元数据ID为父元数据ID;如果不包括父元数据,则直接执行步骤B;
B、根据元数据ID、元数据版本和属性ID查询元数据属性表,确定对应版本下每个属性ID对应的属性名称;
C、根据元数据ID、对象ID以及属性名称对应的属性ID查询数据值表,确定对应版本下属性名称的属性值。
CN201410055654.4A 2014-02-19 2014-02-19 一种基于k-v存储系统的元数据管理方法 Active CN104850565B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410055654.4A CN104850565B (zh) 2014-02-19 2014-02-19 一种基于k-v存储系统的元数据管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410055654.4A CN104850565B (zh) 2014-02-19 2014-02-19 一种基于k-v存储系统的元数据管理方法

Publications (2)

Publication Number Publication Date
CN104850565A true CN104850565A (zh) 2015-08-19
CN104850565B CN104850565B (zh) 2018-05-22

Family

ID=53850211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410055654.4A Active CN104850565B (zh) 2014-02-19 2014-02-19 一种基于k-v存储系统的元数据管理方法

Country Status (1)

Country Link
CN (1) CN104850565B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105631019A (zh) * 2015-12-29 2016-06-01 畅捷通信息技术股份有限公司 元数据扩展方法和元数据扩展装置
CN106372002A (zh) * 2016-08-31 2017-02-01 成都科来软件有限公司 一种数据存储方法及读取还原方法
WO2017059798A1 (zh) * 2015-10-10 2017-04-13 阿里巴巴集团控股有限公司 序列化与反序列化的方法、装置、系统以及电子设备
WO2017071525A1 (zh) * 2015-10-30 2017-05-04 北京国双科技有限公司 数据存储方法、装置和数据查询方法、装置
CN106777097A (zh) * 2016-12-14 2017-05-31 济南浪潮高新科技投资发展有限公司 一种元数据分层扩展时的合并方法
CN107451237A (zh) * 2017-07-26 2017-12-08 阿里巴巴集团控股有限公司 序列化与反序列化方法、装置及设备
CN107463695A (zh) * 2017-08-14 2017-12-12 浪潮软件股份有限公司 一种数据存储的方法及装置
CN110874353A (zh) * 2018-09-04 2020-03-10 阿里巴巴集团控股有限公司 一种数据模型的创建、数据表的访问方法和装置
CN111492354A (zh) * 2017-11-14 2020-08-04 斯诺弗雷克公司 不可变存储装置中的数据库元数据
CN114416723A (zh) * 2021-12-15 2022-04-29 北京达佳互联信息技术有限公司 一种数据的处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108627A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Serialization and preservation of objects
US20050182785A1 (en) * 2004-02-12 2005-08-18 Mobileframe, Llc, A California Limited Liability Company Smart database
US20070124334A1 (en) * 2005-11-30 2007-05-31 Microsoft Corporation Dynamic mechanism for providing metadata
CN101789013A (zh) * 2010-02-04 2010-07-28 浪潮集团山东通用软件有限公司 一种用于描述关系数据的增强型csv文件格式
CN102110146A (zh) * 2011-02-16 2011-06-29 清华大学 基于键值key-value存储的分布式文件系统元数据管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108627A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Serialization and preservation of objects
US20050182785A1 (en) * 2004-02-12 2005-08-18 Mobileframe, Llc, A California Limited Liability Company Smart database
US20070124334A1 (en) * 2005-11-30 2007-05-31 Microsoft Corporation Dynamic mechanism for providing metadata
CN101789013A (zh) * 2010-02-04 2010-07-28 浪潮集团山东通用软件有限公司 一种用于描述关系数据的增强型csv文件格式
CN102110146A (zh) * 2011-02-16 2011-06-29 清华大学 基于键值key-value存储的分布式文件系统元数据管理方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017059798A1 (zh) * 2015-10-10 2017-04-13 阿里巴巴集团控股有限公司 序列化与反序列化的方法、装置、系统以及电子设备
CN106570018A (zh) * 2015-10-10 2017-04-19 阿里巴巴集团控股有限公司 序列化与反序列化的方法、装置、系统以及电子设备
CN106649368A (zh) * 2015-10-30 2017-05-10 北京国双科技有限公司 数据存储方法、装置和数据查询方法、装置
WO2017071525A1 (zh) * 2015-10-30 2017-05-04 北京国双科技有限公司 数据存储方法、装置和数据查询方法、装置
CN105631019A (zh) * 2015-12-29 2016-06-01 畅捷通信息技术股份有限公司 元数据扩展方法和元数据扩展装置
CN106372002B (zh) * 2016-08-31 2019-03-19 成都科来软件有限公司 一种数据存储方法及读取还原方法
CN106372002A (zh) * 2016-08-31 2017-02-01 成都科来软件有限公司 一种数据存储方法及读取还原方法
CN106777097A (zh) * 2016-12-14 2017-05-31 济南浪潮高新科技投资发展有限公司 一种元数据分层扩展时的合并方法
CN106777097B (zh) * 2016-12-14 2020-06-26 浪潮通用软件有限公司 一种元数据分层扩展时的合并方法
CN107451237A (zh) * 2017-07-26 2017-12-08 阿里巴巴集团控股有限公司 序列化与反序列化方法、装置及设备
CN107451237B (zh) * 2017-07-26 2020-09-15 阿里巴巴集团控股有限公司 序列化与反序列化方法、装置及设备
CN107463695A (zh) * 2017-08-14 2017-12-12 浪潮软件股份有限公司 一种数据存储的方法及装置
CN111492354A (zh) * 2017-11-14 2020-08-04 斯诺弗雷克公司 不可变存储装置中的数据库元数据
CN110874353A (zh) * 2018-09-04 2020-03-10 阿里巴巴集团控股有限公司 一种数据模型的创建、数据表的访问方法和装置
CN114416723A (zh) * 2021-12-15 2022-04-29 北京达佳互联信息技术有限公司 一种数据的处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN104850565B (zh) 2018-05-22

Similar Documents

Publication Publication Date Title
CN104850565A (zh) 一种基于k-v存储系统的元数据管理方法
US10437795B2 (en) Upgrading systems with changing constraints
CN104391725A (zh) 页面展示方法和页面展示装置
CN100383793C (zh) 一种在实时数据库中实现更新数据的方法和系统
CN111125229B (zh) 数据血缘生成方法、装置、电子设备
CN103810212A (zh) 一种数据库索引的自动创建方法及系统
CN103678556A (zh) 列式数据库处理的方法和处理设备
CN102968373B (zh) 一种测试系统的维护方法及装置
CN107016047A (zh) 文档查询、文档存储方法及装置
US10664459B2 (en) Database managing method, database managing system, and database tree structure
CN102279749A (zh) 一种代码归并方法和设备
CN110609839B (zh) 区块链数据处理的方法、装置、设备及可读存储介质
CN107368513B (zh) 客户端数据库更新的方法及装置
CN107665255B (zh) 键值数据库数据变更的方法、装置、设备及存储介质
Kvet et al. Complex time management in databases
CN102890651B (zh) 一种场景数据的测试方法和装置
CN104423982A (zh) 请求的处理方法和处理设备
CN103107919B (zh) 一种网络资源建模方法和系统
US9697239B1 (en) Token-based database system and method of interfacing with the token-based database system
US8285742B2 (en) Management of attribute information related to system resources
CN106713032B (zh) 一种实现网管业务管理的方法及装置
CN109634585B (zh) 一种基于表单自适应展示和更新服务端数据的方法
US10185757B2 (en) Non-uniform multi-row text file loading
CN107609870B (zh) 用于pos的多应用密钥管理方法、系统及pos终端
CN109144620B (zh) 一种悬浮窗权限设置界面的跳转方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191129

Address after: 100176 room 222, 2f, building C, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Patentee after: Beijing Jingdong three hundred and sixty degree e-commerce Co., Ltd.

Address before: 100080, Beijing, Suzhou Street, No. 20, building 2, No. 2, Haidian District

Patentee before: Beijing Jingdong Shangke Information Technology Co., Ltd.