数据存储方法和装置与流程

文档序号:18985807发布日期:2019-10-29 04:23阅读:339来源:国知局
数据存储方法和装置与流程

本发明涉及计算机数据存储技术,特别是涉及一种数据存储方法和装置。



背景技术:

在键值(keyvalue,kv)存储系统中,数据以键和值的形式进行存储。

关系型数据是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,关系型数据库的一系列行和列被称为表,一组表组成了数据库。

数据表是由表名、表中的字段和表的记录三个部分组成的。设计数据表结构就是定义数据表文件名,确定数据表包含哪些字段,各字段的字段名、字段类型、及宽度,并将这些数据输入到计算机当中。

传统的键值(keyvalue,kv)存储关系型数据方法中,参数项以行的形式存在于组件描述表中,当添加或更改参数项时,需要更改数据表结构,并对表关系进行重新关联,需要耗费大量时间和存储空间。



技术实现要素:

针对上述技术问题,本发明应用mysql关系型数据库,采用kv存储,将传统的行存储模式转换成列存储模式,解决了行存储时各表之间的关联关系,可以根据数据表之间的关系,准确快速的查询定位某条数据。

第一方面,本发明提供一种数据存储方法,在执行时数据存储时,获取产品信息,将其值存储在键值(kv)存储系统中对应的参数项中,其中产品信息为关系型数据。

进一步地,产品信息以列的形式存储在kv存储系统中;产品信息包括,产品id、产品名称、产品属性、模板id。

前述以列的形式意味着每行只含有一个参数项,所有参数项排列在一列中。

进一步地,上述过程中还包括,定义kv存储系统中的参数项,参数项包括参数id、参数名称、参数类型、参数项长度、参数状态;

参数项存储在键值(kv)存储系统的参数信息描述表中;

将参数项间的关系存储至缓存管理器中。

进一步地,redis缓存分为一级缓存和二级缓存,其中一级缓存以产品id为kv存储中的键,以参数项id为kv存储中的值,一级缓存将参数项的集合与产品id相关联;

二级缓存以参数项id为kv存储中的键,以参数项id的值为kv存储中的值,二级缓存将参数项的值与参数项id相关联。

进一步地,上述过程中还包括,一个或多个组件构成产品模板,产品和产品模板进行关联组成显示产品的页面,每个产品模板可以被多类产品使用。

进一步地,,当需要数据查询时,该方法还包括,获取需要查询的产品id,调取缓存管理器中相应的参数项id;根据获取的参数项id,调取缓存管理器中相应的参数值。

进一步地,当需要修改产品参数值时,该方法还包括,获取需要修改的目标参数项的参数项id;根据目标参数项的参数项id,在缓存管理器中,先删除目标参数相,再增加新参数项。

第二方面,本发明提供一种数据存储装置,包括接收模块,其用于接收参数项、产品信息值;处理模块,其用于处理接收到的参数项、产品信息值,生成组件、元件、产品模板,其中组件以产品信息描述表呈现,元件包括一个或多个参数项;存储模块,其用于存储参数项间、参数项与组件间的关系;展示模块,其联系产品与产品模板,其中产品模板包括一个或多个组件,展示模块用于展示产品信息。

本发明内容提供的数据存储方法和装置具有的有益效果为在实际应用中采用kv存储方式不需要依赖目标表结构变化,只需要根据实际的业务需求在数据维护节点添加字段即可。在与外系统对接时,封装标准的kv描述型报文,无需代码和表的任何改造。完全通过配置实现无缝对接。

附图说明

图1为本发明实施例提供的数据存储流程图;

图2为本发明实施例中参数公共属性表;

图3为本发明实施例中特殊参数表;

图4为本发明实施例中元件层几个参数组成的元件示意图;

图5为本发明实施例中组件层中每个组件组成的页面片段示意图;

图6为本发明实施例中产品层产品和产品模板进行关联组成显示产品的页面示意图;

图7为本发明实施例中值存储层中根据组件、元件、和参数项之间的关系确定产品值的具体存储方式的示意图。

具体实施方式

为了便于对本发明的理解,结合图1对本发明做进一步详细的描述,但本发明的实施方式不限于此。

s001参数层:在kv存储系统中定义参数项(如图2所示),并对参数项按属性分类,除常规属性外,将部分参数项分为特殊参数(如图3所示),将参数项以列形式存储在数据表中。

每个业务系统需要在参数平台系统中定义参数,每个参数包含有参数名称,参数类型,参数项长度,参数状态等公共属性。某些参数可能包含有特殊属性,例如金额类型需要有保留几位小数的属性,所有参数根据参数类别进行分类,每种类别需要有特殊的属性进行描述。但是关于一些参数无法确定属于哪个种类,所以定义了特殊参数,此特殊参数表采用kv方式存储,可以动态的添加特殊属性无需改变表的结构。通过对参数的操作组装相应的页面。在数据初始化阶段,需要将参数信息之间的关系放置redis缓存管理,解决关于kv存储情况下关系复杂查询效率慢的问题,减少重复对数据库的操作。同时保证redis缓存数据和数据表存储数据一致。

s002元件层:某些参数项需要用其他几个参数项组合来描述,将此类参数组成一个元件(如图4所示)。

某些参数项需要用其他几个参数项组合来描述,因此我们将此类参数组成一个元件,如图所示如果组合参数表(辅)中是否为主参数字段为y时代表id3参数项是由id1和id2描述组成,在查询过程中可以根据此元件信息确定id3的值是有id2和id1组合为条件进行查询。如果某个参数项是独立的则不需要在元件表里维护。此数据采用kv列式存储,添加参数项无需修改表结构并且确定了数据间的关联关系,同时将对应关系放置redis缓存处理,在查询、修改或删除时通过redis缓存的关系数据对数据库进行操作。

s003组件层:组件是由元件和基础参数项组成,每个组件组成一个页面片段(如图5所示)。

组件是由元件和基础参数项组成,每个组件组成一个页面片段。前台页面支持通过手动添加组件的方式生成页面。通过组件描述表中是否组合字段判断是否存在组件,如果存在组件需要根据组件中的参数项关联元件查询对应关系。

s004产品层:通过不同的组件组合成一个产品模板,产品和产品模板进行关联组成显示产品的页面(如图6所示)。

通过不同的组件组合成一个产品模板,产品和产品模板进行关联组成显示产品的页面,根据产品页面的信息进行参数变更,每个产品模板可以被多类产品使用。

s005值存储层:存储产品信息参数项的值通过kv列式存储,根据组件、元件、和参数项之间的关系确定产品值的具体存储方式(如图7所示)。

存储产品信息参数项的值通过kv列式存储,根据组件、元件、和参数项之间的关系确定产品值的具体存储方式。



技术特征:

技术总结
本发明公开了一种数据存储方法和装置,其包括以下步骤:获取产品信息,将其值存储在键值(KV)存储系统中对应的参数项中,其中所述产品信息为关系型数据。还包括:定义参数项,将其按列存储在参数信息描述表中,定义元件,其由多个参数项组合描述,使用多个参数项组成组件,使用多个组件构成模板,产品使用一个或多个模板描述,并将产品信息展现在产品KV表中。本发明采用数据列存储方式代替行存储方式,解决了KV关系型数据存储的表结构设计问题,节省存储空间和时间,并未维护数据关系,修改数据提供了便利。

技术研发人员:宋晓光;赵鹏程;辛子英;杨弋;闫晨;杨金彬;范兴文
受保护的技术使用者:中信百信银行股份有限公司
技术研发日:2019.06.28
技术公布日:2019.10.25
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1