一种关系型数据库向Neo4j模型转换和数据迁移方法.pdf

所需积分/C币:45 2019-07-30 16:22:43 734KB PDF
78
收藏 收藏
举报

一种关系型数据库向Neo4j模型转换和数据迁移方法:Neo4j是一款高性能的、世界领先的……
CN105930361A 权利要求书 2/2页 中的标签标题行; 步骚S5.2:将所述未进行转换的表中的属性写入所述标签实体转换框架中的标签的属 性行; 步骤S5.3:将所述未进行转换的表中自带的1属性写入所述实体转换框架中的1属性 6.如权利要求5所述的一种关系型效据库冋Neo4j模型转换和数据迁移方法,其特征在 于,所述关系型数据库的概念模型和Neo4j的概念模型不用ER图型概念模型。 7.如权利要求6所述的种关系型数据库向eo4j模型传换和数据迁移方法,其特征在 丁,所述步骤$8还包括:将步骤S中得到的关系型数据库的概念模型指定为原数据的位冒, 将步骤$7中得到完整的eo4j概念模型指定为目标数据的位置,通过ETL工具进行数据迁 移 3 CN105930361A 说明书 1/5页 种关系型数据库向Neo4j模型转换和数据迁移方法 技术领域 000]本发明涉及计算杋数据库技术领域,尤其涉及一种关系型数据库向Neo1模型转 换和数据迁移方法。 背景技术 [00Q]在数据建模领域早期一有两大主要的流派,个是关系模型,逐渐演化成了关 系型数据库;另一个是语义网络采用的网络结构,现在演化成了非关系薮据中的图形数据 库。在图形数据库最为流行、最具代表的数据库是№eo4j。 [000]Neo4j是一款高性能的、世界领先的图形数据库,具有灵活的结构和完备的事务特 性。Nco1与关系型数据库相比各有优劣。o1j优氐在于其把所有的数据休存在了树络 中而不是关系型数据库中的表的形式,因此具有良好的查询速度,特别适合运川于社交网 络、买卖网络等关系的表达。目前包括 Facebook、阿里巴巴、百度等许多大公司都在使用 Neo4j。 [0004从目前来看,随着大数据时代的到来,很多应用面临着检索速度、数据存储等问 题越来越多的用户选择将原来存储于关系型数据库中的数据迁移到Ne4j中,利用网络存 佬的优势提高査询的性能,同吋提伕更加灵活的存储。目前比较常见的做法是直接利用ET 工具进行数据迁栘,这种情况下无法穴现优的性能,也鈇少了可视化的展现,数据迁移窄易 发生误差,并且不易揲作 发明内容 [0005小发明的目的之一在于提供一种关系型数据库向Neo4模型转换和数据迁移方 沄,以解决现有薮据迁移方法无法实现优的性能,鈥少可视化的展现,数据迁移容易发生误 差,并且不易操作的问题。 [0006]本发明的发明目的是通过述技术方案来灾现的 [000刀]本发明所述的一种关系型薮据库向Neo行模型转换和薮据迁移方法,包括如卜步 [0008]步骤Sl:提取关系型数据库的概念模型,所述关系型数据库的概念模型包括表和 主外键关系; [00Q步骤S2:从步骤S中得到的关系型数据庥的概念模型中笳选需要转换的表; [α010]步骤S3:构建№eo4j概念模型转换框架;所述\eo4j桃念模型转换框架包括标签实 体转换框架和关系实体转换框架 [0011]所述Neo尛概念模型转换框架中的标签实体转换框架包括标签标尟行和标签的属 吽行,Neo4中节点的标签写入所述标签标题行,节点的属性写入标签的属性行,所述标签 的属性行还包括Neo4j自带的T(身份标识号码)属性行 0012]所述№eo4j概念模型转换框架屮的关系实体转换框架包括关系标尟行和)系的属 性行,Neo4j中的关系写入所述关系标题行,关系的属性写入所述关系的属性行,所述关系 CN105930361A 说明书 2/5页 的属性行还包括用于衣示eo4j中关系方向的走始1属泩行和目的)属性行; [0013]步骤S4:从步骤S2中筛选得到的需要转换的表中査找主键由两个外键组成的表, 并根据步骤S3中得到的关系实体转换框架将所述主键H两个外键组成的表转换为\eo小j概 念模型中带属性的关系实体; 0014]步骤S5:根据步骤S3中得到的标签实体转换框架将步骤S中筛选得到的需要转换 的表屮其余未进行转换的表转换为Neo4j概念模型屮节点的标签实体; [0015]步骤S6:将除步骤S4中查找出的表相关的主外键关系之外的共他所有主外键关 系,根据步骤S3中得到的关系实体转换框架转换为Neo4j概念模型中不带属性的关系实体; [0016]步骤S7:由步骤S4得到的\eo4j概念模型中带属性的关系实体、步骤S5得到的 Neo4j槜念模型中节点的标笭实体和步骤S6得到的Neo4概念模型中不带属性的关系实体 组成完整的Mco4桃念模型 [0017]步骤S8:将步骤S1中得到的关系型数据库的概念模型指定为原数据的位置,将步 骤S屮得到的Neo4j的概念模型指定为匚标数据的位置,进行数据迁移。 [0018】]进一步的,所述步骤S4中:并根据步骤S3中得到的关系实体转换框架将所述主键 由两个夕键组成的表转换为Neo4概念模型中带属性的关系实体的步骤,具体包拒如下步 骤 [0019]步骤S4.1:将所述主键由两个夕键组成的表中实体标题行中的内容写入所述关系 实体转换框架中的关系标趣行; [0020]骤S4.2:将所述主键由两个夕键组成的表中的属性写入所述关系实体转换柜架 中的关系的属性行 [0021]步骤S4.3:将所述主键由两个欠键组成的表中的两个外键分别写入所述关系实体 转换框架中的起始I属性行和目的ID属性行 [0022]进一步的,所述步骤S5:根据步骤S3中得到的标签实休转换框架将步骤S中筛选 得到的需要转换的表中其余木进行转换的表专换为Neo4概念模型中节点的标签实体的步 骤,具体包括如卜步骤 [0023]步骤S5.1:将所述未进行换的表的实体标题行中的内容写入所述标签实体转换 框架中的标签标题行 [0024]步骤S5.2:将所述未进行绂换的表中的属性写入所述标签实体转换框架中的标签 的属性行 [0025]步骤S5.3:将所述未进行传涣的表中自带的ⅠD属性写入所述实体转换框架中的ID 属性行。 0026]进一步的,所述关系型数据库的概氽模型和Neo4j的概氽模型采用ER图型概念模 0027]进一步的,所述步骤S8中采川FT工其进行数据迁移。 [0028]本发明的有益效果:本发玥利用模型转换的方法解决了关系型数据库向Neo4j数 据迁移的问题,同时使数据迁移更加准确,并且更加容易操作。 附图说明 [0029]图1为本发明所述的关系型数据库阿e4模型转换和数据迁移方法的流程图 CN105930361A 说明书 3/5页 [0030]图2为本发明所述的eo4概念模型转换框架中的标签实体转换框架图 [0031]图3为本发明所述的丶eo4概念模型转换框架中的关系实体转换框架图 0032]图1为木发明实施例1中提取得到的关系型数据库的ER图型概念模型。 0033]图5为本发明实施例1中转换后的Neo4j的R图型概念模型 具体实施方式 [0034]下文将结合具体实施方式详细描述本发明。应当注意的是,下述实施例中描述的 技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好 的技术效果 0035]如图1所示,本发明所述的一种Neo4j阿关系型数据库的模型转换和数据迁移方 沄,包括如下步骤: 0036]步骤S1:提取关系型数据库的概念模型,关系型数据库的概念模型包括表和主夕 键关系 [0037]步骤S2:从步骤S中得到的关系型数据库的概念模型中夼选需要转换的表 0038]步骤S3:构建Neo4概念模型转换框架;所述\eo4j概念模型转换框架包拒标签实 体转换框架和关系实体转换框架。 [0039]Neo4j包含的四个基本元素为 [0040]1.节点( Nodes):No4j把数据存储在节点和关系上,这两者都可以包含属性 [0041]2.关系( Relationships):Nc04j中通过关系连接的方式扣所有的节点组织起 来,一个关系有一个开始节点和一个结束节点(目有向图),关系也可以包含属性 [0042]3.属性( Properties):节点和关系都可以包含属性,这里的属性和ER图屮的属性 可以理解为相同的概念; [0043]4.标签( Labels):标签为节点分配了类型或者角色。类似于关系型数据库的表 ( Tables)的概念,比如关系型数据库中的学生表、老师表分别对应了Neo4j中的学生标签和 老师标签。 [0Q44]根据Nco4j的四个基本元索,木发明提出∫一种\o4j慨念模型转换框架的构建方 沄根据该ej概念模型转换框架可以将关系型数据库的概念模型转换为丶e4j概念模型 转换框架。 [0045]如图2所示,Neo4j概念模型转换框架中的标签实体转换框架包括标签标题行和标 签的属性行,Neo4j中节点的标签写入所述标签标题行,节点的属性写入标签的展属性行,所 述标签的属性行还包括Neo4j自带的1D属注行。 [0046]如图3所示,Neo4j概念模型转换框架中的关系实体转换框架包括关系标题行和关 系的属性行,Neo1j中节点的标签写入所述关系标题行,关系的属性写入关系的属性行,所 述关系的属性行还包括川于表示Neo4j中关系方向的起始I属性行和日的T属性行这个两 个属性。 [0047]步骤S4:从步骤S2中筛近得到的需要转换的表中查求主键由两个外键组成的表, 并根据所述步骤S3中得到的Neo4念模型专奂框架中的关系实体转换框架将所述主键由 两个外键组成的表转换为Neo4概念模型中带属性的关系实体。 [0048]步骤S4中:并根据步骤S3中得到的关系实体转换框架将所述主键由两个外键成 CN105930361A 说明书 4/5页 的表专奂为e4概念模型中带属性的关系实体的步骤,具体包括如下步骤: [0049]步骤S4.1:将所述主键由两个夕键组成的表中实体标题行中的内容写入所述关系 实体转换框架中的关系标题行 [0050]步骤S4.2:将所述主键由两个夕键组成的表中的属性写入所述关系实体转换框架 中的关系的属性行 [0051]步骤S4.3:将所述主键出两个夕键组成的表中的两个外键分別写入所述关系实体 转换框架中的起始I属性行和目的ID属性行。 [0052]步骤S5:根据所述步骤S3中得到的Neo4j概念模型转换框架中的标签实体传奂枢 架将步骤S2中筛选得到的需要转换的表中其余未进行转换的表转换为Neo4j概念模型中节 点的标签实体 [0053]步骤S5中具体包括如卜步骤: 0054]步骤S5.1:将所述未进行转换的表的实体标题行中的内容写入所述标签实体转换 框架屮的标签标题行 [0055步骤S5.2:将所述未进行专涣的表中的属性写入所述标签实体转换框架中的标签 的属性行; 0056]步骤S5.3:将所述未进行专换的表中自带的ⅠD属性写入所述实体转换框架中的ID 属性行。 [0057]步骤S6:将除步骤S4中查找出的表相关的主外键关系之外的其他所有主外键关 系,根据步骤S3中得到的Nco4概念模型转换框架中的关系实体转换框架转换为№∞4j概念 模型中不带属性的关系实体。 [0058]步骤S7:由步骤S4得到的\eo4j概念模型屮带属性的关系实体、步骤S5得到的 Neo4j概念模型中节点的标签实体和步骤S6祃到的veo4j概念模型中不带属性的关系实体 组成完整的№eo4j概念模型 [0059]步骤S8:将步骤S1中得到的关系型数据库的概念模型指定为原数据的位置,将步 骤S中得到的Neoj的概念模型指定为ε标数据的位置,逋过ET工具进彳数据迁移 [0060]关系型数据库向Nco4j的模型转换其本质上是数据库中表的设计和建立的过程 具体的数据还保存在关系型数据库中。本发明利用 Metamode1进行数据迁移操作, Me tamode1是一个 Apache基金会的正式项目。其目的是开发一套对关系型数据库和非关系 型效据庠通用的,面向Java的CRUD接冂。参照各和关系型数据库的java接冂, Moetamode1设 计了一套基于SL语言的Java接口。通过使用该接口,用户可以通过同样的 Java APi欢包括 Oracle、 SQL server、 My SQL在内的关系型数据库和包括 MongoDB、 HBase、 Cassandra在内的 非关系型数据库进行〔UD操作 [0061]实施例1 [0062]为说明本发明的具体方案,现举例说明。以下关系型数据库的概念模型和\eo4j的 概念模型采用ER图型概念模型。 [0063]图4所示为提取得到的关系型据库的概念模型,其中带有 Tabel小标的实体有 Actor表、 ilm acto表、 Language表、表和i1 m Text表, Actor表与i1 m Acto表之 间、 Film actor表与Fim表之间、 anguage表与Fim表之间建有主外键关系。假定对Film eλ表不进行模型转换,只对其他的表进行模型转换,然后根据Neo4j概佘模型转换框架将 7 CN105930361A 说明书 5/5页 关系型数据库的概念模型转换为Neo4j的概念模型,具体包括如下步骤: [0064]步骤a1:由4图可知 Film actor表的主键是由两个外键组成的,分别为 Actor_1D和 Film_ID,所以将 Film actor表转换为№eo概念模型中带 Relationships小标的带属性的 关系实体。如图5所示,将Fi1 m actor写入关系实体转换框架中的关系标题行,将属性Iast Update写入关系实体转换框架中的关系的属性行,将 Actor id和 Film id分别写入关系实 体转换框架屮的起始ID属性行和日的ID属性行 [0065]步骤a2:将除 ilm acto表之外的 Actor表、 Language表和ilm表转换为Neo4j概 念模刑中带 Lable小标的标签头体。如图5所示,将 Actor、 Language和Film分别写入标签实 体转换框架中的标签标题行,其各自的属性分别写入对应的标签实体转换框架中的属性 行;并将各自的I属性写入对应的标答实体转换框架中的1D属性行; 0066]步骤a3:与F1 ilm actor表相关的主外键关系不需要进行转换,只有 Language表和 Film表之间的亡外键关系转换为Neo4概念模型中带 Relationships小标的不带属性的关 系实体。如图5所示,将 Language_Film写入关系实体转换框架屮的关系标题行;并将 anguage ID( Language)和 Language ID(Iilm)分别写入关系实体转换框架中的走始ID属 性行和巨的I属性行; [0067]本发明具有的优势如下 0068](1)本发明提岀了一种关系型数据库向Neo4j模型转换和数据迁移方法,通过模型 转换的方法实现了更加简便、科学、直观的数据迂栘 0069](2)木发明提出∫一种关于\∞o4j概念模型转换框架构建方法; 0070](3)本发明在模型转换的基础上自动实现了 MetaModel的相关接口,能够使数据从 关系型数据库向Neo4进行自动迁移,不需要人工参与。 [007门]当然应意识到,虽然通过本发明的示例已经进行了前面的描述,但是对本发明做 山的将对木领域的技术人员显而易见的这样和其他的改进及改变应认为落入如木文提出 的本发明宽广范围内因此,尽管本发明己经参照了伉选的实施方式进行描述,但是,共意 并不是使具新颖性的没备由此而受到限制,相反,其旨在包括符合述公开部分、权利要求 的广阔范围之内的各种改进和等问修改 8 CN105930361A 说明书附图 1/3页 提取关系型数据库的概悆模型,所述关系型数据库的概念模型包括表 S1 和主外键关系 从步驟S1中得到的关系型数据库的搋念模型中筛选需要转换的表 枃建Nen4概念模型转换框槊:所述Neoj棁念模型转换框架包括标签 实体转换樞架和关系实体转换框架 从步骤S2中筛选得到的需要转换的表中查浅主键由两个外键组成的表 S生 ,并根据步骤S3中得到的关系实体转换框架将所述主键由两个外键组十 成的表转换为Neo4概念模型中带属性的关系实体 换的表中共余木进行转换的表转换为N4念模型中节点的标签实/55 根据步驟S3中得到的标签实体转换框架将步驟S2中筛选得到的需要转 将除步骤S4中查找出的表相关的主外键关系之外的其他所有主外键关 S6 系,根据步骤S3中得到的关系实徠转换樞架转擿为N∞o4概念模型中 不带属性的关系实体 由步躲S4得到的Neo4概念模型中带属性的关系实体、步骤S5得到的Ne Q4j概念模型中节点的标签实体和步骤S6得到的Neo4j概念模型中不带属 性的关系实体組成完整的Neo4概念模型 将步骤S1中得到的关系型数据库的概念模型指定为原数据的位置,将步 S8 骤$7中得到的Neo4的概念模型指定为目标数据的位置,进行数据迁移 CN105930361A 说明书附图 2/3页 Label lationshi 标签标题 关系标题 ID属性 起始围D属性 属性1 月的D属性 属性2 属性1 属性2 属性n 属性n 图2 图3 Acto: ID(PK〕 Actor: ID(FK)PK) First Name Actor ID(Actor) Film ID(FK)(PK) LastName 1 Actor ID(Fifm. Actar) Last update Last update Film iD(Fil Film ID(Film Actor) Language ID(PK) Language ID(Language) Language_ID(Film) Fil m ID(PK) Name Last: Update Title Description Release Year Language: ID(FK. Film_D(PK) Title De scription 图4 10

...展开详情
试读 11P 一种关系型数据库向Neo4j模型转换和数据迁移方法.pdf
立即下载 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
一种关系型数据库向Neo4j模型转换和数据迁移方法.pdf 45积分/C币 立即下载
1/11
一种关系型数据库向Neo4j模型转换和数据迁移方法.pdf第1页
一种关系型数据库向Neo4j模型转换和数据迁移方法.pdf第2页
一种关系型数据库向Neo4j模型转换和数据迁移方法.pdf第3页

试读结束, 可继续读1页

45积分/C币 立即下载