CN113886505A - 一种基于搜索引擎和关系型数据库实现动态建模的管理*** - Google Patents
一种基于搜索引擎和关系型数据库实现动态建模的管理*** Download PDFInfo
- Publication number
- CN113886505A CN113886505A CN202111051887.3A CN202111051887A CN113886505A CN 113886505 A CN113886505 A CN 113886505A CN 202111051887 A CN202111051887 A CN 202111051887A CN 113886505 A CN113886505 A CN 113886505A
- Authority
- CN
- China
- Prior art keywords
- model
- data
- dynamic
- search engine
- relational database
- 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
- 238000005457 optimization Methods 0.000 claims abstract description 11
- 238000004364 calculation method Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 12
- 230000001960 triggered effect Effects 0.000 claims description 12
- 238000000034 method Methods 0.000 claims description 11
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 7
- 238000013515 script Methods 0.000 claims description 7
- 230000008676 import Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 claims description 4
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 abstract description 56
- 238000013523 data management Methods 0.000 abstract description 3
- 230000008859 change Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- 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/2455—Query execution
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于搜索引擎和关系型数据库实现动态建模的管理***,包括以关系模型来组织数据的关系型数据库和按数据内容进行全文检索的搜索引擎,以及以下各组件:基础模型管理组件提供面向关系型数据库的基础模型统一操作;动态模型管理组件提供面向关系型数据库的动态模型统一操作;数据操作组件提供面向关系型数据库和搜索引擎数据写入的统一操作;数据搜索优化组件提供面向两种数据管理***的业务对象数据的统一搜索;模型同步一致性管理组件提供关系型数据库中的基础模型以及动态模型同搜索引擎数据管理***的同步。本发明通过提供联合关系型数据库和搜索引擎使用,解决了针对多属性关键字查询匹配的问题。
Description
技术领域
本发明属于应用***技术领域,涉及一种基于搜索引擎和关系型数据库实现动态建模的管理***。
背景技术
企业级应用***构建依赖于大量业务模型、模型关系和对应的数据管理,模型和数据采用结构化数据方式持久化在关系型数据库,现有技术条件下应用***访问关系型数据库技术方案:1)采用SQL操作语言编写的脚本实现业务模型和模型关系的创建、修改和搜索;2)采用SQL操作语言编写的脚本实现业务数据和数据关系的操作和搜索;3)应用***采用对象和模型映射方式,实现应用***实体模型和数据库模型的操作。
现有技术条件下应用***访问关系型数据库方案存在如下问题:
应用***业务变化涉及到业务模型变化,现有技术下需要关系型数据库物理模型修改,应用***实体模型需要代码调整和部署,对象实体模型和物理模型映射关系需要重新配置,无法实现无代码配置方式响应变化。
企业级应用***业务对象建模,传统方式下大多数采用关系型数据库实现,针对以下两个实际场景分别采用的解决技术方案如下:
当***正式上线运行后,业务需求的变更会触发业务模型及模型间关系的修改,一般通过采用关系型数据库结构变更与预留冗余字段相结合的方式实现,然后修改应用***代码并需要编译后重新部署。此传统技术实现方式在面向工业领域的复杂数据关系管理等应用场景下存在的问题:频繁变更的业务需求导致的模型变化,无法实现的无代码修改或者配置方式快速响应。
目前企业级应用***在实现相关业务数据查询功能的时候,基于关系型数据库,需要使用通过搜索条件匹配对应的属性字段值进行实现。此种解决方案存在的问题:搜索条件匹配方式单一,无法满足一个关键字匹配多个属性条件的查询以及查询搜索的效率低下。
发明内容
本发明解决的技术问题在于提供一种基于搜索引擎和关系型数据库实现动态建模的管理***,通过动态配置扩展业务模型类型和业务属性、通过快速配置部署方式快速响应模型调整,实现应用搜索引擎解决关键字快速搜索。
本发明是通过以下技术方案来实现:
一种基于搜索引擎和关系型数据库实现动态建模的管理***,包括以关系模型来组织数据的关系型数据库和按数据内容进行全文检索的搜索引擎,以及以下各组件:
基础模型管理组件,对基础模型进行分服务、分应用进行管理,根据输入的基础模型和模型关系的定义文件;在关系型数据库中生成基础模型和模型关系的属性记录,以及相互之间的关联关系;为关系型数据库提供基础模型的统一操作;
动态模型管理组件,根据基于基础模型输入的动态模型、动态属性的定义文件,在关系型数据库中生成动态模型以及动态属性的记录;并继承于基础类型的表结构,生成用于存储动态模型类型定义、动态属性定义的表达式;为关系型数据库提供动态模型的统一操作;
数据操作组件,为关系型数据库和搜索引擎提供数据写入的统一操作,是在将业务与数据存储到结构型数据库的同时,同步到搜索引擎数据库中;并保证关系型数据库和搜索引擎的数据库中的数据相一致;
数据搜索优化组件,为关系型数据库和搜索引擎提供业务对象数据的统一搜索;
模型同步一致性管理组件,基于关系型数据库的基础模型结构以及动态模型和属性数据,为关系型数据库与搜索引擎提供包括基础模型、动态模型在内的数据同步;
数据同步完整性补偿组件,为关系型数据库与搜索引擎提供同步数据同步一致操作。
所述的基础模型管理组件提供的统一操作包括:单一基础模型的数据处理和多基础模型之间关联关系处理;并提供针对基础模型的新增、修改、删除、查询、导出、导入,以及物理表结构创建、表结构更新、表间约束更新和删除;
所述基础模型的模型关系包括:通过基础模型的主-外键方式实现的1: N关系,以及基于关系表定义的Source-Target实现的M:N关系。
所述基础模型管理组件还提供基础模型信息的代码生成工具。
所述基础模型管理组件对基础模型进行分服务、分应用进行管理为:
当需要新增业务模型或者修改业务模型,首先判断添加的模型是基础模型,还是动态的模型类型;
若当添加或者变更的基础模型为已存在的基础模型以及属性,则使用 SQL脚本更新数据库结构,并且更新基础模型管理组件的实体模型代码以映射对应的数据库结构;在服务重新部署后生效;
若添加或者变更的基础模型为动态类型和属性,在记录动态模型数据和属性数据到数据之后,不需要更新就将新添加和变动的模型类型和属性在业务环境中启用。
所述基础模型管理组件包括以下功能接口:
Create APP,用于创建管理模型的容器;
Create Base Model,用于创建基础模型,以及基础模型中的基础属性;
Create Base Property,用于创建基础模型的基础属性;
Create Link,用于创建多模型之间对应的关联关系;
Alter,用于修改基础模型和属性的信息;
Delete,用于删除基础模型和基础属性的信息;
Search,用于查询基础模型和基础属性的信息;
Export,用于导出模型的信息;
Import,用于为目标环境导入模型信息;
Generate Update File,用于生成更新数据结构和实现代码文件。
所述的动态模型管理组件提供的统一操作包括:创建基于基础模型的动态模型,以及为基础模型创建动态类型和动态属性,并支持动态类型的层级结构的创建;
所述动态模型,是继承于基础模型的定义与关系定义而形成的子模型,面向关系型数据库是以JSON格式存在于基础模型的一个属性,面向搜索引擎是与基础类型以平行方式作为索引存在。
所述动态模型管理组件包括以下功能接口:
Create Dynamic Model,基于基础模型类型创建动态模型类型;
Create Dynamic Property,基于基础模型或者动态模型创建动态属性;
Create Extra Property,为模型创建扩展属性,利用动态属性实现模型间的关联关系;
Alter,修改动态模型类型和动态属性;
Delete,删除动态模型类型和动态属性;
Search,用于查看动态模型类型,动态属性和扩展属性信息。
所述的模型同步一致性管理组件,通过以下处理提供的数据同步包括创建索引和属性,保证动态类型和属性的继承:
输入基础模型,判断输入模型是否存在同名模型;如果不存在同名模型,则进行关系型数据库的数据结构更新,并创建模型之间的关联关系,同步在 NoSQL搜索引擎数据库中创建模型的索引信息;
如果存在同名模型,则需要继续判断输入模型是否为动态类型;若是动态类型,则不需要更新关系型数据库结构,但需要在NoSQL搜索引擎数据库创建对应的动态类型模型的索引信息;在更新后触发计算索引的数据计算;刷新完成,则模型同步完成;
若不是动态类型,则存在关系型数据库同名模型的情况下,根据最新结构更新关系型数据库结构以及关系,并且更新对应的NoSQL搜索引擎数据库中的索引信息;在索引更新后,进一步判断是否需要重新触发计算索引的数据计算;
若更新的索引信息关系到计算索引,则触发计算索引相关数据的重新计算;若更新的索引信息未涉及到计算索引,则完成模型同步。
所述的数据操作组件提供的数据写入,是通过模型对应的业务数据写入关系型数据库,通过模型和对象的映射,提供数据的CRUD操作;对搜索引擎的数据同步写入包括实时写入和队列异步写入,并且保证扩展属性和聚合计算属性的数据正确性;
所述业务数据,是指基础模型、模型关系和动态模型对应的数据记录,由属性组成。
所述数据搜索优化组件,通过配置能力为关系型数据库和搜索引擎数据库提供统一的搜索条件;并且通过配置,预先将参与关键字查询的属性的业务数据值存储到搜索引擎数据库的索引属性中,实现关键字搜索匹配多字段;
搜索条件执行来源的配置包括关系型数据库或来源于搜索引擎数据库;针对关系型数据库提供条件查询的接口,默认搜索对象的名称;针对搜索引擎数据库提供关键字以及文件内容全文检索的接口,搜索条件,面向模型、关系包含的属性进行关键字搜索或者条件判断搜索的表达式。
所述数据同步完整性补偿组件,通过对关系型数据库和搜索引擎数据库之间结构和索引的对比,对搜索引擎数据完整性进行校验、通过全部历史数据导入,和阶段历史数据的补偿导入保证数据的数据同步和一致性,数据包括业务对象的记录,以及对应的各个属性值;
当业务模型对应的业务数据以及关系数据进行了更新,触发数据同步机制;对应的事件被触发后,若采用事务写入方式,则在更新关系型数据库数据之后,进行搜索引擎数据库的数据记录更新;若不采用事务写入方式,则触发异步同步,并校验完整性,满足完整性,则更新搜索引擎数据;而当数据不完整则进行数据补偿计算,并同步搜索引擎数据。
与现有技术相比,本发明具有以下有益的技术效果:
本发明提供的基于搜索引擎和关系型数据库实现动态建模的管理***,解决了模型更新需要修改关系型数据库结构和对象实体模型映射关系,从而导致的无法实现无代码配置方式响应变化的问题;通过提供联合关系型数据库和搜索引擎使用,解决了针对多属性关键字查询匹配的问题。
本发明的动态模型管理组件,通过柔性定义动态类型和动态属性,实现无代码的模型和属性更新,以及响应业务模型变化;本发明的关系型数据库和搜索引擎两种数据库的应用适配,外部应用***通过本产品发明统一抽象能力接入,同时发挥SQL和NoSQL优势,实现了读写分离接入;本发明的模型同步和数据同步,基于关系型数据库事务一致性特征,实现两种数据库下模型和数据同步一致性,可实现多场景监听机制出同步有效性。
附图说明
图1为本发明的结构示意图;
图2为基础模型维护及动态扩展的示意图;
图3为模型同步一致性管理组件的处理示意图;
图4为数据同步完整性补偿组件的处理示意图;
图5为基础模型、关系及属性的示意图;
图6为动态模型的示意图;
图7为动态模型的动态属性示意图。
具体实施方式
下面结合实施例对本发明做进一步详细描述,所述是对本发明的解释而不是限定。
为解决模型更新需要修改关系型数据库结构和对象实体模型映射关系,从而导致的无法实现无代码配置方式响应变化的问题,本发明提供一种基于搜索引擎和关系型数据库实现动态建模的管理***,提供联合关系型数据库和搜索引擎使用,实现针对多属性关键字查询匹配。
参见图1,包括以关系模型来组织数据的关系型数据库和按数据内容进行全文检索的搜索引擎,以及以下各组件:
基础模型管理组件,对基础模型进行分服务、分应用进行管理,根据输入的基础模型和模型关系的定义文件;在关系型数据库中生成基础模型和模型关系的属性记录,以及相互之间的关联关系;为关系型数据库提供基础模型的统一操作;
动态模型管理组件,根据基于基础模型输入的动态模型、动态属性的定义文件,在关系型数据库中生成动态模型以及动态属性的记录;并继承于基础类型的表结构,生成用于存储动态模型类型定义、动态属性定义的表达式;为关系型数据库提供动态模型的统一操作;
数据操作组件,为关系型数据库和搜索引擎提供数据写入的统一操作,是在将业务与数据存储到结构型数据库的同时,同步到搜索引擎数据库中;并保证关系型数据库和搜索引擎的数据库中的数据相一致;
数据搜索优化组件,为关系型数据库和搜索引擎提供业务对象数据的统一搜索;
模型同步一致性管理组件,基于关系型数据库的基础模型结构以及动态模型和属性数据,为关系型数据库与搜索引擎提供包括基础模型、动态模型在内的数据同步;
数据同步完整性补偿组件,为关系型数据库与搜索引擎提供同步数据同步一致操作。
下面对各组件具体说明
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,这一系列的行和列被称为表,一组表组成了数据库。本发现各组件通过采用结构化查询语言(即数据库行业的标准SQL)来对数据库进行查询,它能够支持数据库的CRUD(增加,查询,更新,删除)操作, SQL可以采用类似索引的方法来加快查询操作。主流的关系型数据库有 Oracle、DB2、MySQL、Microsoft SQL Server、Microsoft Access等多个品种,本发明以Oracle作为示范例。
搜索引擎,以各类数据如文本、声音、图像等为对象,提供按数据的内容而不是外在特征来进行的信息检索,其特点是能对海量的数据进行有效管理和快速检索。Elasticsearch是一个分布式、高扩展、高实时的搜索与数据分析引擎,本发明以最受欢迎的企业搜索引擎Elasticsearch作为示范例。
I3-基础模型管理组件
基础模型管理组件,提供将基础模型分服务,分应用进行管理。并提供基本的新增,修改,删除,查询供基础模型的数据操作。在提供单一模型数据的处理能力之外,同时还具备提供多模型之间关联关系的数据处理能力。额外的,提供基础模型信息的导出导入,方便多环境迁移。提供基础模型信息的代码生成工具,方便开发人员基于基础模型进行开发,减少代码编写工作。
根据输入的基础模型和模型关系的定义文件,在关系型数据库中生成基础模型和模型关系的属性记录,以及相互之间的关联关系,实现针对关系型数据库生成操作的SQL脚本,包括物理表结构创建、表结构更新、表间约束更新和删除;
基础模型,是面向数据库表结构的定义而言;
模型关系,分为两种,一种是通过基础模型的主-外键方式实现的“1:N”关系,另一种是基于关系表定义的“Source-Target”实现的“M:N”关系;
参见图2,下面给出基础模型维护及动态扩展模型类型和属性过程:
【2-1】当需要新增业务模型或者修改业务模型,通过判断添加的基础模型(属性)还是动态的模型类型(属性),选择不同的处理逻辑。
【2-2】根据2-1的判断,如果添加或者变更的基础模型以及属性,那么在模型数据之后,如果需要启动模型的变化,需要使用数据脚本更新数据库结构,并且更新实现代码用以匹配数据库结构,还需要服务重新部署后方能起作用。
【2-3】根据2-1判断,当添加或者变更的为动态类型和属性,在记录动态模型数据和属性数据到数据之后,不需要任何的更新,就可以将新添加和变动的模型类型和属性在业务环境中启用。
基础模型管理组件的具体功能接口如表1所示。
表1基础模型管理组件
I4-动态模型管理组件
动态模型管理组件,提供基于基础模型,为基础模型创建动态类型,动态属性的能力。并且支持动态类型的层级结构的创建。
根据基于基础模型输入的动态模型,动态属性的定义文件,在关系型数据库中生成动态模型以及动态属性的记录,继承于基础类型的表结构,生成用于存储动态模型类型定义、动态属性定义(普通属性、扩展属性)的JSON 格式表达式。
动态模型,是继承于基础模型的定义与关系定义而形成的子模型,差异在于面向关系型数据库以具体表存在,以JSON格式存在于基础模型的一个属性,面向搜索引擎内与基础类型以平行方式作为索引存在;
动态模型管理组件的功能接口如表2所示。
表2动态模型管理组件
C2-模型同步一致性管理组件
基于关系型数据库的基础模型结构以及动态模型和属性数据,对搜索引擎数据库进行索引同步,包括创建索引和属性,保证动态类型和属性的继承。如图3所示,具体模型同步实现说明如下:
【4-1】输入基础模型,判断输入模型是否存在同名模型以进行逻辑判断的处理。
【4-2】基于4-1的判断,如果不存在同名模型,则进行关系型数据库的数据结构更新。并创建模型之间的关联关系。
【4-3】基于4-1的判断,如果存在同名模型,则需要继续判断输入模型是否为动态类型以进行不同逻辑的处理。
【4-4】4-2在更新了关系型数据库相关结构以及关联关系后,同步在NoSQL搜索引擎数据库中创建模型的索引信息。
【4-5】基于4-3的判断,如果是动态类型,则不需要更新关系型数据库结构,但是需要在NoSQL搜索引擎数据库创建对应的动态类型模型的索引信息。
【4-6】基于4-4和4-5中对NoSQL搜索引擎索引的更新,触发计算索引的数据计算。刷新完成,则模型同步完成。
【4-7】基于4-3的判断,如果不是动态类型,那么存在关系型数据库同名模型的情况下,根据最新结构更新关系型数据库结构以及关系。并且更新对应的NoSQL搜索引擎数据库中的索引信息。
【4-8】基于4-7的索引更新,判断是否需要重新触发计算索引的数据计算。
【4-9】基于4-8的判断,更新的索引信息关系到计算索引,则触发计算索引相关数据的重新计算。
【4-10】基于4-8的判断,更新的索引信息未设计到计算索引,则完成模型同步。
C2模型同步一致性管理组件,提供接口,触发关系型数据库结构和 NoSQL搜索引擎数据库索引同步更新。
模型同步一致管理组件的功能接口如表3所示。
表3模型同步一致管理组件
I2-数据操作组件
I2数据操作组件,提供适配,在将业务与数据存储到结构型数据库的同时,同步到NoSQL搜索引擎数据库中。并且在写入过程中,保证结构型数据库和NoSQL搜索引擎数据库中的数据保持一致。
提供模型对应的业务数据写入关系型数据库的接口,通过模型和对象的映射,提供数据的CRUD操作。同时提供搜索引擎数据同步写入方法包括实时写入和队列异步写入,并且保证扩展属性和聚合计算属性的数据正确性。
业务数据,是指基础模型、模型关系和动态模型对应的数据记录,由属性组成。
数据操作组件的功能接口如表4所示。
表4数据操作组件
I1-数据搜索优化组件
I1数据搜索优化组件,根据配置确定数据是从NoSQL搜索引擎数据库查询得到,还是从结构型数据库中查询得到。并且通过配置,预先将参与关键字查询的属性的业务数据值存储到NoSQL搜索引擎数据库的索引属性FullText中,实现关键字搜索匹配多字段。
针对关系型数据库和搜索引擎数据库提供统一的搜索条件的配置能力,通过不同的搜索条件配置,提供根据条件返回结果的搜索接口。针对搜索引擎数据库提供关键字以及文件内容全文检索的接口。
搜索条件,面向模型、关系包含的属性进行关键字搜索或者条件判断搜索的表达式。
数据搜索优化组件的功能接口如表5所示。
表5数据搜索优化组件
C1-数据同步完整性补偿组件
通过对关系型数据库和搜索引擎数据库之间结构和索引的对比,对搜索引擎数据完整性进行校验、通过全部历史数据导入,和阶段历史数据的补偿导入保证数据的数据同步和一致性,数据包括业务对象的记录,以及对应的各个属性值。
参见图4,下面给出数据同步补偿处理过程:
【7-1】当业务模型对应的业务数据以及关系数据进行了更新,触发数据同步机制。
【7-2】7-1对应的事件被触发后,需要确定是否使用事务实时写入,根据判断结果采取不同的逻辑处理。
【7-3】基于7-2的检查结果,采用事务写入方式,则在更新关系型数据库数据之后,进行NoSQL搜索引擎数据库的数据记录更新。
【7-4】基于7-2的检查结果,不采用事务写入方式。则触发异步同步,并校验完整性,满足完整性,则更新NoSQL搜索引擎数据
【7-5】基于7-4的校验结果,当数据不完整则进行数据补偿计算,并同步NoSQL搜索引擎数据。
【7-6】基于7-5的处理结果以及在7-4的处理结果,刷新计算属性的记录值。
C1数据同步完整性补充组件,保证结构型数据库的业务数据和NoSQL 搜索引擎数据库中的业务数据保持一致。
数据同步完整性补偿组件的功能接口如表6所示。
表6数据同步完整性补偿组件
下面给出实现“文档管理”应用的具体实施例
***实施软件与硬件环境
硬件环境:4核x86CPU,64G内存,500G硬盘;
操作***:CentOS 7.2;
关系型数据库:Oracle 11g;
搜索引擎:Elastic Search 7.4;
基于搜索引擎和关系型数据库实现动态建模的管理***,在进行文档管理时包括以下操作:
1)创建“文档”、“文件附件”、“目录”等基础模型及关联关系;
该操作主要涉及基础模型、关系及属性;
创建“文档管理”应用,调用“基础模型管理组件”接口“Create APP”;
如图5所示关系,创建“文档”、“文件附件”、“目录”等基础模型及关联关系,调用“基础模型管理组件”接口“Create Base Model”、“Create Base Property”、“CreateLink”;
在Oracle数据库中生成模型对应的表SQL语句“DxDocument”、“DocumentReferentLink”、“DxDocumentFlolder”。
2)创建“管理文件”、“工艺文件”、“软件文件”等动态模型及动态属性;
该操作主要涉及动态模型及动态属性;
参见图6,创建动态类型:“测试文件”、“管理文件”、“工艺文件”、“立项文件”、“试验文件”等动态类型,调用“Create Dynamic Model”生成SQL,在 Oracle表“DxDocument”中生成对应动态类型Json格式配置项;
参见图7,创建动态属性:“密级”、“阶段”等动态属性,调用“Create DynamicProperty”在Oracle表“DxDocument”中生成对应动态属性Json格式配置项;
3)发布文档管理应用,同步模型到搜索引擎;
发布应用并同步模型
调用“模型同步一致管理组件”接口“APP Publish”,进行模型同步判断,在搜索引擎Elastic Search中创建动态模型索引“testDoc”、“managementDoc”、“craftDoc”、“projectDoc”、“experimentDoc”,属性与图7保存一致;
动态模型与动态属性实时生效,无需修改代码及数据库结构;
4)新建“管理文件”类型的文件数据,上传相应附件;
新建文档,调用“数据操作组件”中“Write”接口,***动态类型对象“xxx 管理文件”,更新“DxDocument”;
5)同步新建文件到搜索引擎;
新增事务中调用“SyncData”同步数据到搜索引擎索引“managementDoc”中。
6)采用关键字在搜索引擎中查询文件对象;
根据关键字查询文档:调用“数据搜索优化组件”中“Search”接口,采用关键字“管理”,查询到所有属性包含“管理”的对象记录。
下面给上述实施例的搜索文档性能对比
以上给出的实施例是实现本发明较优的例子,本发明不限于上述实施例。本领域的技术人员根据本发明技术方案的技术特征所做出的任何非本质的添加、替换,均属于本发明的保护范围。
Claims (10)
1.一种基于搜索引擎和关系型数据库实现动态建模的管理***,其特征在于,包括以关系模型来组织数据的关系型数据库和按数据内容进行全文检索的搜索引擎,以及以下各组件:
基础模型管理组件,对基础模型进行分服务、分应用进行管理,根据输入的基础模型和模型关系的定义文件;在关系型数据库中生成基础模型和模型关系的属性记录,以及相互之间的关联关系;为关系型数据库提供基础模型的统一操作;
动态模型管理组件,根据基于基础模型输入的动态模型、动态属性的定义文件,在关系型数据库中生成动态模型以及动态属性的记录;并继承于基础类型的表结构,生成用于存储动态模型类型定义、动态属性定义的表达式;为关系型数据库提供动态模型的统一操作;
数据操作组件,为关系型数据库和搜索引擎提供数据写入的统一操作,是在将业务与数据存储到结构型数据库的同时,同步到搜索引擎数据库中;并保证关系型数据库和搜索引擎的数据库中的数据相一致;
数据搜索优化组件,为关系型数据库和搜索引擎提供业务对象数据的统一搜索;
模型同步一致性管理组件,基于关系型数据库的基础模型结构以及动态模型和属性数据,为关系型数据库与搜索引擎提供包括基础模型、动态模型在内的数据同步;
数据同步完整性补偿组件,为关系型数据库与搜索引擎提供同步数据同步一致操作。
2.如权利要求1所述的基于搜索引擎和关系型数据库实现动态建模的管理***,其特征在于,所述的基础模型管理组件提供的统一操作包括:单一基础模型的数据处理和多基础模型之间关联关系处理;并提供针对基础模型的新增、修改、删除、查询、导出、导入,以及物理表结构创建、表结构更新、表间约束更新和删除;
所述基础模型的模型关系包括:通过基础模型的主-外键方式实现的1:N关系,以及基于关系表定义的Source-Target实现的M:N关系。
所述基础模型管理组件还提供基础模型信息的代码生成工具。
3.如权利要求2所述的基于搜索引擎和关系型数据库实现动态建模的管理***,其特征在于,所述基础模型管理组件对基础模型进行分服务、分应用进行管理为:
当需要新增业务模型或者修改业务模型,首先判断添加的模型是基础模型,还是动态的模型类型;
若当添加或者变更的基础模型为已存在的基础模型以及属性,则使用SQL脚本更新数据库结构,并且更新基础模型管理组件的实体模型代码以映射对应的数据库结构;在服务重新部署后生效;
若添加或者变更的基础模型为动态类型和属性,在记录动态模型数据和属性数据到数据之后,不需要更新就将新添加和变动的模型类型和属性在业务环境中启用。
4.如权利要求1、2或3所述的基于搜索引擎和关系型数据库实现动态建模的管理***,其特征在于,所述基础模型管理组件包括以下功能接口:
Create APP,用于创建管理模型的容器;
Create Base Model,用于创建基础模型,以及基础模型中的基础属性;
Create Base Property,用于创建基础模型的基础属性;
Create Link,用于创建多模型之间对应的关联关系;
Alter,用于修改基础模型和属性的信息;
Delete,用于删除基础模型和基础属性的信息;
Search,用于查询基础模型和基础属性的信息;
Export,用于导出模型的信息;
Import,用于为目标环境导入模型信息;
Generate Update File,用于生成更新数据结构和实现代码文件。
5.如权利要求1所述的基于搜索引擎和关系型数据库实现动态建模的管理***,其特征在于,所述的动态模型管理组件提供的统一操作包括:创建基于基础模型的动态模型,以及为基础模型创建动态类型和动态属性,并支持动态类型的层级结构的创建;
所述动态模型,是继承于基础模型的定义与关系定义而形成的子模型,面向关系型数据库是以JSON格式存在于基础模型的一个属性,面向搜索引擎是与基础类型以平行方式作为索引存在。
6.如权利要求1或5所述的基于搜索引擎和关系型数据库实现动态建模的管理***,其特征在于,所述动态模型管理组件包括以下功能接口:
Create Dynamic Model,基于基础模型类型创建动态模型类型;
Create Dynamic Property,基于基础模型或者动态模型创建动态属性;
Create Extra Property,为模型创建扩展属性,利用动态属性实现模型间的关联关系;
Alter,修改动态模型类型和动态属性;
Delete,删除动态模型类型和动态属性;
Search,用于查看动态模型类型,动态属性和扩展属性信息。
7.如权利要求1所述的基于搜索引擎和关系型数据库实现动态建模的管理***,其特征在于,所述的模型同步一致性管理组件,通过以下处理提供的数据同步包括创建索引和属性,保证动态类型和属性的继承:
输入基础模型,判断输入模型是否存在同名模型;如果不存在同名模型,则进行关系型数据库的数据结构更新,并创建模型之间的关联关系,同步在NoSQL搜索引擎数据库中创建模型的索引信息;
如果存在同名模型,则需要继续判断输入模型是否为动态类型;若是动态类型,则不需要更新关系型数据库结构,但需要在NoSQL搜索引擎数据库创建对应的动态类型模型的索引信息;在更新后触发计算索引的数据计算;刷新完成,则模型同步完成;
若不是动态类型,则存在关系型数据库同名模型的情况下,根据最新结构更新关系型数据库结构以及关系,并且更新对应的NoSQL搜索引擎数据库中的索引信息;在索引更新后,进一步判断是否需要重新触发计算索引的数据计算;
若更新的索引信息关系到计算索引,则触发计算索引相关数据的重新计算;若更新的索引信息未涉及到计算索引,则完成模型同步。
8.如权利要求1所述的基于搜索引擎和关系型数据库实现动态建模的管理***,其特征在于,所述的数据操作组件提供的数据写入,是通过模型对应的业务数据写入关系型数据库,通过模型和对象的映射,提供数据的CRUD操作;对搜索引擎的数据同步写入包括实时写入和队列异步写入,并且保证扩展属性和聚合计算属性的数据正确性;
所述业务数据,是指基础模型、模型关系和动态模型对应的数据记录,由属性组成。
9.如权利要求1所述的基于搜索引擎和关系型数据库实现动态建模的管理***,其特征在于,所述数据搜索优化组件,通过配置能力为关系型数据库和搜索引擎数据库提供统一的搜索条件;并且通过配置,预先将参与关键字查询的属性的业务数据值存储到搜索引擎数据库的索引属性中,实现关键字搜索匹配多字段;
搜索条件执行来源的配置包括关系型数据库或来源于搜索引擎数据库;针对关系型数据库提供条件查询的接口,默认搜索对象的名称;针对搜索引擎数据库提供关键字以及文件内容全文检索的接口,搜索条件,面向模型、关系包含的属性进行关键字搜索或者条件判断搜索的表达式。
10.如权利要求1所述的基于搜索引擎和关系型数据库实现动态建模的管理***,其特征在于,所述数据同步完整性补偿组件,通过对关系型数据库和搜索引擎数据库之间结构和索引的对比,对搜索引擎数据完整性进行校验、通过全部历史数据导入,和阶段历史数据的补偿导入保证数据的数据同步和一致性,数据包括业务对象的记录,以及对应的各个属性值;
当业务模型对应的业务数据以及关系数据进行了更新,触发数据同步机制;对应的事件被触发后,若采用事务写入方式,则在更新关系型数据库数据之后,进行搜索引擎数据库的数据记录更新;若不采用事务写入方式,则触发异步同步,并校验完整性,满足完整性,则更新搜索引擎数据;而当数据不完整则进行数据补偿计算,并同步搜索引擎数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111051887.3A CN113886505B (zh) | 2021-09-28 | 2021-09-28 | 一种基于搜索引擎和关系型数据库实现动态建模的管理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111051887.3A CN113886505B (zh) | 2021-09-28 | 2021-09-28 | 一种基于搜索引擎和关系型数据库实现动态建模的管理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113886505A true CN113886505A (zh) | 2022-01-04 |
CN113886505B CN113886505B (zh) | 2024-04-30 |
Family
ID=79008812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111051887.3A Active CN113886505B (zh) | 2021-09-28 | 2021-09-28 | 一种基于搜索引擎和关系型数据库实现动态建模的管理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113886505B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543960A (zh) * | 2022-09-16 | 2022-12-30 | 北京神舟航天软件技术股份有限公司 | 一种业务对象的动态建模方法和*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294695A (zh) * | 2016-08-08 | 2017-01-04 | 深圳市网安计算机安全检测技术有限公司 | 一种面向实时大数据搜索引擎的实现方法 |
US20180300345A1 (en) * | 2012-06-29 | 2018-10-18 | Open Text Corporation | Methods and systems for providing a search service application |
CN212380215U (zh) * | 2020-06-17 | 2021-01-19 | 西安阳易信息技术有限公司 | 一种金属膜电阻器封装装置 |
CN112988863A (zh) * | 2021-02-09 | 2021-06-18 | 苏州中科蓝迪软件技术有限公司 | 一种基于Elasticsearch的异构多数据源的高效搜索引擎方法 |
-
2021
- 2021-09-28 CN CN202111051887.3A patent/CN113886505B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180300345A1 (en) * | 2012-06-29 | 2018-10-18 | Open Text Corporation | Methods and systems for providing a search service application |
CN106294695A (zh) * | 2016-08-08 | 2017-01-04 | 深圳市网安计算机安全检测技术有限公司 | 一种面向实时大数据搜索引擎的实现方法 |
CN212380215U (zh) * | 2020-06-17 | 2021-01-19 | 西安阳易信息技术有限公司 | 一种金属膜电阻器封装装置 |
CN112988863A (zh) * | 2021-02-09 | 2021-06-18 | 苏州中科蓝迪软件技术有限公司 | 一种基于Elasticsearch的异构多数据源的高效搜索引擎方法 |
Non-Patent Citations (2)
Title |
---|
王伟;魏乐;刘文清;舒红平;: "基于ElasticSearch的分布式全文搜索***", 电子科技, no. 08, 27 July 2018 (2018-07-27) * |
钟瑞琼;周黎;韩德志;: "中小型网站站内搜索引擎的设计与实现", 现代计算机(专业版), no. 08, 25 April 2011 (2011-04-25) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543960A (zh) * | 2022-09-16 | 2022-12-30 | 北京神舟航天软件技术股份有限公司 | 一种业务对象的动态建模方法和*** |
CN115543960B (zh) * | 2022-09-16 | 2024-01-05 | 北京神舟航天软件技术股份有限公司 | 一种业务对象的动态建模方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN113886505B (zh) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102177190B1 (ko) | 유연한 스키마를 사용한 데이터 관리 | |
US20230084389A1 (en) | System and method for providing bottom-up aggregation in a multidimensional database environment | |
US9792327B2 (en) | Self-described query execution in a massively parallel SQL execution engine | |
US6611838B1 (en) | Metadata exchange | |
US7849114B2 (en) | Method, system, and program product for generating a virtual database | |
US20110145210A1 (en) | System and Method for Managing One or More Databases | |
Khan et al. | SQL Database with physical database tuning technique and NoSQL graph database comparisons | |
Chavan et al. | Survey paper on big data | |
US9740713B1 (en) | Dynamic modeling of data in relational databases | |
US10296542B2 (en) | Integration database framework | |
CN110955655B (zh) | 动态cmdb数据库模型存储方法和*** | |
JPH10501086A (ja) | 記憶プレーン編成及びそれに基づく記憶システム | |
US7624117B2 (en) | Complex data assembly identifier thesaurus | |
US11449550B2 (en) | Ad-hoc graph definition | |
US10534797B2 (en) | Synchronized updates across multiple database partitions | |
US11442934B2 (en) | Database calculation engine with dynamic top operator | |
US20070255685A1 (en) | Method and system for modelling data | |
US11561976B1 (en) | System and method for facilitating metadata identification and import | |
CN113704248B (zh) | 一种基于外置索引的区块链查询优化方法 | |
CN113886505B (zh) | 一种基于搜索引擎和关系型数据库实现动态建模的管理*** | |
JP2007133624A (ja) | 連結関係情報を用いた情報管理方法及び装置 | |
Sreemathy et al. | Data validation in ETL using TALEND | |
Suárez-Otero et al. | Leveraging conceptual data models to ensure the integrity of Cassandra databases | |
US20210303583A1 (en) | Ranking filter algorithms | |
US11526513B2 (en) | SQL interface for embedded graph subqueries |
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 |