本发明专利技术公开了一种支持关系模型和键-值结构的混合数据存储方法。本方法为:1)根据待处理数据中的实体类别,在关系数据库与键-值数据库中分别建立多个实体表;2)按照实体数据的属性将该待处理数据分为稳态属性数据和非稳态属性数据;3)将稳态属性数据存储到关系数据库中,将非稳态属性数据存储到键-值数据库中;键-值数据库中的实体表根据时序数据属性分为普通键-值实体表和时序键-值实体表,普通键-值实体表的内容列族存储非稳态数据,关系列族记录关联实体间关联关系;时序键-值实体表包括内容列族,记录同一时序索引下的非稳态数据。本发明专利技术适用于具有关联性的时序数据的管理、存储,大大提高了数据进行分布式计算的读取速度。
【技术实现步骤摘要】
本专利技术属于数据库领域,涉及,本专利技术结合关系数据库和键-值数据库的优点,对混合数据模型进行管理。
技术介绍
现实世界中,数据的属性,根据是否经常改变,可以分为稳态数据与非稳态数据;根据属性的类型,可以分为结构化数据与非结构化数据;根据属性是否与时间相关,可以分为时序数据与非时序数据。采用单一数据库形式存储具有多种不同的属性的数据,随着数据量增长,需要考虑较大的写入、读取速度,最大存储上线等问题。本专利技术提出,解决这一问题。关系模型:用二维表的形式表示实体和实体间联系的数据模型。关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数据概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。MySQL是一种开放源代码的关系型数据库管理系统,由于性能高、成本低、可靠性好,已经成为最流行的开源关系型数据库。键-值结构是Key-Value的简称。Key-Value就是每次存储一个数据时,是根据Key进行索引存储的。键-值数据库是指基于键-值结构的数据,是最近新型的NoSQL数据库的一种类型。NoSQL(NotOnlySQL),泛指非关系型的数据库。NoSQL数据库适合数据模型简单、需要更强灵活性的IT系统、并且不需要高度的数据一致性。键-值数据库,主要使用哈希结构,表中通过特定的键值指向多个列。这些列是由列家族(列族)来安排的。HBase是Apache的Hadoop项目中的子项目,是一个分布式开源键-值数据库,在工业界和学术界都有了较好的应用效果。交易数据,是指资金交易明细、银行卡号、开户人信息等交易数据,还包括网上银行交易数据等其他交易的数据内容。交易数据,可以从不同银行、金融机构等数据源获取,具有数据格式不一致、数据类型繁杂、非结构化数据较多等特点,并且还隐藏着较多的关联关系。单独采用关系型数据库,不能有效解决大量的非结构化数据的存储和数据的并行计算问题;单独采用列存储数据库,不能有效处理实体间的关联关系。
技术实现思路
针对上述问题,本专利技术采用关系型模型和键-值结构结合的方法,提出了,适用于具有关联性的时序数据,本专利技术不仅适用于数据的管理、存储,还提高了数据进行分布式计算的读取速度。本专利技术不仅可以单独作为完整数据库使用,还可以扩展为大型系统中部分的核心部分,提高数据管理质量。本专利技术采用的技术方案如下:,其步骤为:I)根据待处理数据中的实体类别,在关系数据库与键-值数据库中分别建立多个实体表;2)按照实体数据的属性将该待处理数据分为稳态属性数据和非稳态属性数据;3)将稳态属性数据存储到关系数据库中;其中,实体类别i的稳态属性数据存储到关系数据库中该实体类别i对应的实体表i中;4)将非稳态属性数据存储到键-值数据库中;其中,实体类别j的非稳态属性数据存储到键-值数据库中该实体类别j对应的实体表j中,所述键-值数据库中的实体表根据时序数据属性分为普通键-值实体表和时序键-值实体表,所述普通键-值实体表包括“内容”与“关系”两个列族,“内容”列族存储非稳态数据,“关系”列族记录关联不同实体间关联关系;所述时序键-值实体表包括“内容”列族,用于记录同一时序索引下的非稳态数据。进一步的,所述关系数据库中实体表的主键与所述键-值数据库中实体表的行键共享同一值。进一步的,所述时序键-值实体表中的行键为时序索引,与所述关系数据库实体表中的一字段对应;具有时序数据属性的实体通过时序索引关联不同数据库的数据。进一步的,所述键-值数据库中“关系”列族存储不同实体关系数据库中实体表的主键。进一步的,当收到新的待处理数据时,将其存储到关系数据库与键-值数据库中的方法为:51)从该数据中提取具有稳态属性的实体数据并建立不同实体之间的对应关系;然后选取一实体类型,将提取的该实体类型的实体数据查找并插入到所述关系数据库中对应的实体表,然后获得该实体表的主键;然后将该实体类型的非稳态数据更新到所述键-值数据库中的对应实体表中,并通过该主键对该实体类型的稳态数据和非稳态数据进行关联;52)根据步骤51)的主键,将提取的其他实体类型的稳态属性数据插入到所述关系数据库中对应的实体表中,将同一实体类型的非稳态属性数据插入到所述键-值数据库中对应的实体表中;同一实体类型的稳态数据数据与非稳态属性数据,通过共享一设定主键进行关联;其中,对于时序实体类型的非稳态属性数据,根据该时序类型的稳态数据数据中的时序数据索引,将非稳态数据插入到所述键-值数据库的对应实体表中;53)将步骤51)、52)中用于关联的主键插入到所述键-值数据库的“关系”列族中。进一步的,所述稳态属性数据包括实体主键、稳态数据和需要被索引的结构化数据。进一步的,所述待处理数据为具有关联性的时序数据。本专利技术以交易数据举例进行介绍,其步骤为:I)采用关系模型和键-值结构,把交易数据按照实体类型区别。交易数据分为人员、账户、交易明细三个实体。实体按照是否有时序数据属性,分普通实体与时序实体,人员与银行账户属于普通实体,交易明细属于时序实体。2)按照不同实体类别,在关系数据库与键-值数据库中对交易数据表进行不同方式管理。关系数据库与键-值数据库各存人员、银行账户、交易明细三张实体表。在键-值数据库中,人员与银行账户的表属于普通键-值实体表,交易明细的表属于时序键-值实体表。3)实体属性数据按照不同类型,存储于关系数据库与键-值数据库的不同表中。实体属性数据按照是否经常根据数据采集改变,分为稳态数据与非稳态数据;稳态属性数据存储于关系数据库中,非稳态属性数据存储于键-值数据库中。关系数据库中的表存储实体主键、稳态数据、需要被索引的结构化数据等属性数据。键-值数据库普通键-值实体表分为“内容”与“关系”两个列族,“内容”列族存储非稳态数据,“关系”列族记录关联不同实体间关联关系。键-值数据时序键-值实体表有“内容”列族,记录同一时序索引下的非稳态数据。4)实体间通过主键、时序索引确定唯一性与关联关系。不同实体通过对应关系数据库的实体表的主键确定唯一性。普通实体通过关系数据库的实体表的主键关联不同数据库的数据,关系数据库实体表的主键与键-值数据库的行键共享同一值。时序索引是时序键-值实体表中的行键,对应关系数据库实体表中的一个字段,时序实体通过时序索引关联不同数据库的数据。不同实体间的关联,在关系数据库中通过外键或时序索引关联;在键-值数据库中由“关系”列族存储主键得到不同实体间的关联关系。在上述数据库存储方案的基础上,一种采用上述存储方案的配套导入方法,其步骤包括:I)从客户端选择导入单个或多个文件上传后,发送到应用服务器中进行解析。并且根据内容,交互确定导入数据模板。解析同时,在分布式键-值数据库中对源文件进行存储。2)根据交互确定的数据类别与不同实体在两个数据库表中的列名进行匹配并根据匹配结果对源数据进行对应整理,将数据插入到对应字段中。把源文件存转为文本格式,存储到分布式环境的文件系统中,在分布式环境中不同核心分布执行步骤3与步骤5。3)从源数据中提取人员、账户两个实体,并且建立好人员与账户的对应关系。通过人员与身份证号查找更新关系数据库的人员表,把包括人员与身份证号在内的稳态数据插入到关系数据库的人员表中,并且获得人员表主键本文档来自技高网...
【技术保护点】
一种支持关系模型和键‑值结构的混合数据存储方法,其步骤为:1)根据待处理数据中的实体类别,在关系数据库与键‑值数据库中分别建立多个实体表;2)按照实体数据的属性将该待处理数据分为稳态属性数据和非稳态属性数据;3)将稳态属性数据存储到关系数据库中;其中,实体类别i的稳态属性数据存储到关系数据库中该实体类别i对应的实体表i中;4)将非稳态属性数据存储到键‑值数据库中;其中,实体类别j的非稳态属性数据存储到键‑值数据库中该实体类别j对应的实体表j中,所述键‑值数据库中的实体表根据时序数据属性分为普通键‑值实体表和时序键‑值实体表,所述普通键‑值实体表包括“内容”与“关系”两个列族,“内容”列族存储非稳态数据,“关系”列族记录关联不同实体间关联关系;所述时序键‑值实体表包括“内容”列族,用于记录同一时序索引下的非稳态数据。
【技术特征摘要】
【专利技术属性】
技术研发人员:张鹏,王宏安,邓昌智,吴云坤,
申请(专利权)人:中国科学院软件研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。