一种动态数据碰撞关联的方法和系统
技术领域
本发明涉及动态数据技术领域,具体涉及一种动态数据碰撞关联的方法和系统,特别是涉及将动态数据进行采集,动态存储,碰撞关联分析处理的方法及系统。
背景技术
随着信息化的发展,各企业的业务场景中各自的数据模型数据结构各不相同,如果想对这些数据模型挖掘其中的数据关联,那么就需要将他们建立在强耦合度的系统中,非常不灵活,也难以扩展。
由于各种数据模型的结构不是固定的,通常的处理方法是,对新结构的数据进行结构化设计,对于结构进行了修改的数据,则要对数据的结构进行扩展或修改。每次都要对数据库的结构进行修改,工作量非常大,并由于对数据库进行修改,很容易造成误操作,对软件造成很大的风险。
随着业务发展,碰撞的规则肯定不会一成不变,在强关联强耦合的设计中,当规则的变化必定引起原数据结构的调整,甚至由于数据类型不兼容导致无法实现,可见该系统设计可扩展维护性极低。
现有技术中申请号为“201610503664.9”的专利申请“一种基于数据碰撞的特征线索查询方法和系统”,实现了固化数据采集,碰撞,显示的一系列过程,但上述专利使用了固定的结构化数据,而没有涉及动态数据结构,因此不能适应多种业务场景数据场景,不具有灵活性,扩展性。
现有技术中申请号为“201610872779.5”的专利申请“一种基于多维数据碰撞的目标寻找方法及系统”,实现了数据采集,数据调用,数据分等过程,主要围绕多种业务场景数据的固化数据采集,然后由一个场景数据扩散关联到另一个场景数据,是一个扩散关联的过程,但该方案中数据采用固定的场景机构化数据,也仅仅能在该设定场景下使用,该公开的申请并没有涉及动态数据设计,不能适应各种业务场景数据场景。
现有技术中申请号为“201410626483.6”的专利申请“基于大规模数据碰撞获取业务模型数据和物理模型数据关系的方法”,公开了通过抓取外线系统业务模型和后台的全量模型进行比对,生成关系模型,但该方案主要应用在模型分析,模型生成方面,而没有应用在各种模型的数据进行数据分析,具有应用场景的限制。
从上述现有技术分析可以看出,一方面,从以上提出的专利以及参考国内很多其他相关专利的研究可以看出,目前针对数据碰撞更多是使用了固化的结构化数据;对能支持动态结构化数据碰撞的研究较少。另一方面,随着信息化的发展,各企业肯定有各种结构的数据模型,因此需要一套能够灵活地扩展碰撞的方法,能对各种模型的数据实现数据碰撞关联,因此设计了动态数据碰撞关联的方法和系统。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种动态数据碰撞关联的方法和系统,能适配多种数据模型,模型之间是完全解耦的,能够不断变化模型,并且碰撞规则使用动态控制,能够根据业务发展灵活调整,灵活设置,使得扩展性更好。
根据公开的实施例,本发明的第一方面公开了一种动态数据碰撞关联的方法,所述的方法包括下列步骤:
S1、客户端动态数据处理,具体如下:
S101、客户端设置全局字段含义;
S102、客户端设置全局碰撞规则;
S103、客户端数据采集,针对采集的数据模型,设置模型中各个字段的字段含义;
S104、客户端数据存储,对已经设置好字段含义的模型进行数据入库,将数据保存在MongoDB数据库中;
S105、客户端执行数据碰撞,根据全局碰撞规则和该规则的字段含义,从数据库所有模型记录中选取符合规则字段含义的记录,将选取的记录值再进行数据关联,最后得到碰撞结果集;
S106、客户端碰撞轨迹显示,将碰撞轨迹通过规则排序分组,显示轨迹结果;
S2、服务器端碰撞处理,具体如下:
S201、服务器端定义全局字段含义;
S202、服务器端定义全局碰撞规则;
S203、服务器端选择导入的数据模型;
S204、服务器端数据模型文件读取并加载数据;
S205、服务器端设置数据模型的所有字段的字段含义;
S206、服务器端将数据存储在MongoDB数据库;
S207、客户端向服务器端请求数据碰撞;
S208、服务器端接受到请求后,开始数据碰撞处理;
S209、服务器端加载最新的碰撞规则;
S2010、服务器端根据碰撞轨迹查询MongoDB数据库所有业务数据模型记录,选取所有符合规则的记录形成数据集合;
S2011、使用并行多线程计算,选取所有符合规则的关联记录,形成碰撞轨迹;
S2012、服务器端向客户端返回碰撞轨迹;
S2013、客户端将接收到的碰撞轨迹,按照规则分组排序,形成符合用户体验的阅读方式,呈现给用户。
进一步地,所述的全局字段含义采用键值对方式维护,具体如下:
{{Key:Value},{Key:Value}},其中键Key将用于各个数据模型的字段映射中,目的是此来记录各自的字段含义,Value代表具体的内容值。
进一步地,所述的全局碰撞规则采用集合方式维护,具体如下:
{{Key1,Key2},{Key11,Key12,Key13}},其中Key1、Key2、Key11、Key12、Key13代表全局字段含义,通过该规则设置,可以根据业务需求设置正确的灵活的碰撞规则。
根据公开的实施例,本发明的第二方面公开了一种动态数据碰撞关联的系统,所述的系统包括:客户端、服务器端、数据库端,
其中,所述的服务器端部署在服务器,用于快速并行计算碰撞轨迹、数据存储操作、给客户端提供服务接口,并连接所述的数据库端,实现对数据库的访问操作;
其中,所述的数据库端包括非结构化数据库和结构化数据库,所述的非结构化数据库,用于保存各种业务数据模型;所述的结构化数据库,用于保存结构化数据;
其中,所述的客户端,使用WPF技术,用于对字段含义管理,对碰撞规则的管理和维护,对导入数据模型的字段含义设定,调用服务接口实现数据碰撞,显示碰撞轨迹,并连接所述的服务器端。
进一步地,所述的服务器端使用微软WCF或WebService提供服务接口,实现分布式的软件服务架构。
进一步地,所述的非结构化数据库选用MongoDB文档型数据库,所述的结构化数据库选用Oracle数据库。
进一步地,所述的客户端的数据操作,都是通过调用服务接口。
进一步地,所述的客户端与所述的服务器端之间的交互使用WCF分布式技术。
本发明相对于现有技术具有如下的优点及效果:
1、本发明可以适应各种数据模型,形成动态数据,有很强的扩展性。
2、碰撞规则是可以动态扩展和灵活变化的,历史数据模型不受影响。
3、字段含义可以不断变更,细化,扩展。
4、分布式架构具有便捷性,服务器端与客户端相互分离,根据数据规模灵活控制服务器上的服务器端,通过网络连接,可以多客户端使用。
附图说明
图1是本发明的网络结构示意图;
图2是本发明的客户端动态数据处理功能流程图;
图3是本发明的服务器端碰撞功能流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
如图1所示,本发明的部署后的结构图,整套结构分为了客户端、服务器端、数据库端:
1、服务器端部署在服务器,用于快速并行计算碰撞轨迹、数据存储操作、给客户端提供服务接口,并连接数据库端,实现对数据库的访问操作,起到承上启下的作用。
服务器端使用微软WCF或WebService提供服务接口,实现分布式的软件服务架构。
2、数据库端,包括非结构化数据库和结构化数据库,其中,非结构化数据库,选用MongoDB文档型数据库,用于保存各种业务数据模型;结构化数据库,选用Oracle数据库,用于保存结构化数据,主要是字段含义和碰撞规则数据。
3、客户端,使用WPF技术。主要是用于对字段含义管理,对碰撞规则的管理和维护,对导入数据模型的字段含义设定,调用服务接口实现数据碰撞,显示碰撞轨迹。客户端的数据操作,都是通过调用服务接口。客户端与服务器端之间的交互可以使用WCF分布式技术。
客户端可以是CS或者BS模式实现。
本实施例还公开了一种动态数据碰撞关联的方法,该方法的具体实施基于上述公开的动态数据碰撞关系的系统架构,具体包括下列步骤:
S1、客户端动态数据处理步骤。
S101、客户端设置字段含义。设定全局的字段含义,字段含义采用键值对方式维护,例如:{{Key:Value},{Key:Value}},其中键Key将用于各个数据模型的字段映射中,目的是此来记录各自的字段含义。Value代表具体的内容值。
S102、客户端设置碰撞规则。设定全局的碰撞规则,碰撞规则采用集合方式维护,例如:{{Key1,Key2},{Key11,Key12,Key13}},其中Key代表全局字段含义,通过该规则设置,可以根据业务需求设置正确的灵活的碰撞规则。
S103、客户端数据采集。针对采集的数据模型,设置模型中各个字段的字段含义。
S104、客户端数据存储。对已经设置好字段含义的模型进行数据入库,将数据保存在MongoDB数据库中,其中各个字段应该包括{FieldKey:KeyN,FieldValue:Value},其中Key代表全局字段含义,Value代表该字段具体的值。
S105、客户端执行数据碰撞。根据全局碰撞规则和该规则的字段含义,从数据库所有模型记录中选取符合规则字段含义的记录,将选取的记录值再进行数据关联,最后得到碰撞结果集。
S106、客户端碰撞轨迹显示。将碰撞轨迹通过规则排序分组,显示轨迹结果。
S2、服务器端碰撞处理步骤。
S201、服务器端定义全局字段含义。
S202、服务器端定义全局碰撞规则。
S203、服务器端选择导入的数据模型。
S204、服务器端数据模型文件读取并加载数据。
S205、服务器端设置数据模型的所有字段的字段含义。
S206、服务器端将数据存储在MongoDB数据库。
S207、客户端向服务器端请求数据碰撞。
S208、服务器端接受到请求后,开始数据碰撞处理。
S209、服务器端加载最新的碰撞规则。
S2010、服务器端根据碰撞轨迹查询MongoDB数据库所有业务数据模型记录,选取所有符合规则的记录形成数据集合。
S2011、使用并行多线程计算,选取所有符合规则的关联记录,形成碰撞轨迹。
S2012、服务器端向客户端返回碰撞轨迹。
S2013、客户端将接收到的碰撞轨迹,按照规则分组排序,形成符合用户体验的阅读方式,呈现给用户。
综上所述,本发明可以适应各种数据模型,形成动态数据,有很强的扩展性;规则是可以动态扩展和灵活变化的,历史数据模型不受影响;字段含义可以不断变更,细化,扩展;分布式架构具有便捷性,服务器端与客户端相互分离,根据数据规模灵活控制服务器上的服务器端,通过网络连接,可以多客户端使用。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。