掌桥专利:专业的专利平台
掌桥专利
首页

一种多源异构数据自动融合方法、系统、设备及存储介质

文献发布时间:2024-04-18 19:52:40


一种多源异构数据自动融合方法、系统、设备及存储介质

技术领域

本发明属于多源异构数据融合技术领域,涉及一种多源异构数据自动融合方法、系统、设备及存储介质。

背景技术

大数据是推动数字经济发展的关键生产要素之一,在推进现代化经济的发展过程中,其发挥着至关重要的作用。然而,在当今信息爆炸的时代,海量的数据来源分散在不同的系统、数据库和应用程序中,这些数据又存在多样化的数据格式,形成了多源异构数据。

多源异构数据是指系统或环境中存在多个不同的数据源,并且这些数据源之间在结构、格式、类型或特性上存在差异,因此,多源异构数据导致数据孤岛、数据冗余和数据不一致等问题,想要将分散的数据整合成有意义的信息,实现全面的数据洞察力,一般采用数据融合技术解决这些问题。

数据融合是指将不同来源的数据集成在一起,消除数据冗余,提供一致和完整的数据视图。它旨在将分散的数据整合成有意义的信息,以支持决策制定、业务分析和业务流程优化等需求。数据融合即当源数据库接收到一个客户端发送的数据变更语句时通过source对象解析数据变更语句中的SQL的行变化机制,同步行变化机制至目标数据库。由于源数据是多源异构数据,源数据库是多源异构的数据库,导致了在数据同步过程中无法直接拷贝变化至目标数据库,需要进行复杂的数据清洗和数据建模关联。其中,行变更机制是指非单纯记录客户端发送的数据变更语句,而是解析变化规律记录实际变更的行数据记录,即记录携带主键指向性的数据,例如:把条件从针对修改时间在2023年4月25号之前的变为主键为多少的多条数据修改语句:Update ky_bill_detail set delflag=1whereupdate_time<“2023-04-25”变化为Update ky_bill_detail set delflag=1where id=?,?,?....。另一方面,目标数据库可能由于不可控因素,如:人为错误修改,目标数据库断电导致的数据丢失,出现数据不统一的情况下,数据增量同步出现数据缺失的问题,因此数据修复方案也成为了数据融合中至关重要的异步。

现有技术中,如公开号:CN112231402A,发明创造名称为一种异构数据实时同步方法、装置、设备和存储介质的专利申请中也提到数据在增量融合中需要设计状态线程和携程,这种异步操作虽然保证融合效率,但是也加大了系统复杂度,另外此专利申请中没有采用了传统的数据清洗方案,这在加大的技术的应用的难度之外,还会存在不适宜真实环境源数据库的情况。但开发大数据的应用对数据的依赖极高,数据的重要性远高于算法,因此最终只能形成了一些功能不够完善的大数据应用。

为了更好的实现数据融合,首先需要针对不同数据源中的不同数据格式和结构,进行数据清洗,以确保数据的格式和结构能够匹配和整合。其次,数据源之间的关联关系需要进行匹配和建模。最后,数据融合需要应用各种技术和工具,例如数据挖掘、机器学习和人工智能等,以提高数据融合的精度和效率。

实现数据融合的步骤时,数据源之间的关联关系需要进行匹配和建模,这需要专业的数据分析和建模技能。不同数据源之间可能存在一些隐藏的关联性,而这些关联性可能需要进行深入挖掘和分析,才能将不同数据源的数据进行整合,而数据源本身是一个信息量极大的对象,导致了数据挖掘和分析十分困难。在数据融合的过程中,可能会出现一些数据质量问题,例如数据丢失、错误和不完整等问题。数据融合需要应用各种技术和工具,这需要专业的技术团队和人才,以便运用这些技术和工具解决数据融合过程中的各种技术问题。

综上,现有技术中,存在以下技术问题:

首先数据融合开发流程冗长,其中数据清洗需要数据开发工程师,融合任务的管理需要数据运维工程师,数据源的分析与建模需要数据管理工程师在原业务开发人员的讲解下才能完成,最后数据挖掘需要机器学习工程师,而这一类开发工程师都是无法直接与业务挂钩,业务人员学习技术存在学习困难,导致数据融合的结果无法切实的贴紧业务需求。从另一方面出发,数据融合是一个非常复杂的过程,需要综合运用多种技术和工具,以克服多种挑战和难题。只有充分了解和掌握数据融合的技术和方法,才能够确保数据融合的精度和有效性,这也导致了企业数据融合工作的开展效率慢,且人工成本和错误率高。最后脏数据的繁多导致开发效率进一步受到影响。

发明内容

为了解决上述技术问题,本申请提供了一种多源异构数据自动融合方法、系统、设备及存储介质,本方案从图形化配置的形式出发,实现低学习成本和低代码的形式完成多源异构数据的自动融合,解决了现有工作人员结构复杂,各岗位间人员交流了解程度差,开发效率低的问题,同时可以解决脏数据类型繁多,结构复杂,噪音较多,难以过滤导致的多源异构数据融合效率低的问题。

本发明的目的通过以下技术方案来具体实现:

本发明公开了一种多源异构数据自动融合方法,该方法包括:

步骤一、获取多源异构数据的数据库操作语句,所述数据库操作语句携带源数据库和目标数据库信息;

步骤二、基于数据库操作语句,通过候鸟捕食的群智能优化算法或数据标准筛选算法,生成数据自动化评估和筛选模型;

步骤三、对数据库操作语句的源数据格式进行解析得到解析数据,将解析数据作为数据自动化评估和筛选模型的输入进行数据提取和清洗,剔除掉其中的脏数据,输出融合数据;并将融合数据导入目标数据通道里;

步骤四、生成融合数据对应的增量、全量、修复方案;

步骤五、将增量、全量、修复方案部署到平台中,并进行监控,完成多源异构数据自动融合。

步骤一中,获取多源异构数据的数据库操作语句的方法包括:

通过建立血缘关系得到多源异构数据的数据库操作语句;或接收客户端发送的多源异构数据的数据库操作语句。

进一步的,通过建立血缘关系得到多源异构数据的数据库操作语句的步骤包括:

基于多源异构数据的源数据库,建立具有血缘关系的数据字典;所述数据字典为记录和描述源数据库中数据元素属性的集合,集合中的数据元素属性携带数据逻辑字段;所述数据字典以树形嵌套的模式存储了数据逻辑字段对应的具有血缘关系的数据结构;

目标数据库中的参数字段嵌套数据字典中的数据逻辑字段,将目标数据库中的参数字段与数据字典中具有血缘关系的数据结构进行关联,自动生成多源异构数据的数据库操作语句。

步骤二中,基于数据库操作语句,通过候鸟捕食的群智能优化算法,生成数据自动化评估和筛选模型的步骤包括:

将数据库操作语句中的原始数据转换为机器学习模型中可分析的数字标签数据;

通过机器学习模型的主成分分析算法将数字标签数据转换为二维数据,随机选择预设正确点来完成二维数据的种群初始化;

通过比较种群初始化数据和设立预设标准值目标的欧式距离,定义下一次迭代的位置完成群体行为;

经过适应度评估和迭代,完成种群更新;

当获取到接近预设标准值的点停止迭代更新,生成数据自动化评估和筛选模型;

当数据库操作语句中的数据经过模型时,获取数据的预设标准值评分,剔除低于预设标准值评分的脏数据。

步骤二中,基于数据库操作语句,通过数据标准筛选算法,生成数据自动化评估和筛选模型的步骤包括:

基于数据库操作语句,根据预设的标准化的数据规划阀值,剔除不符合阀值的脏数据,生成数据自动化评估和筛选模型;

所述标准化的数据规划包括:数据完整性指标、数据准确性指标、数据一致性指标或数据唯一性指标中的一种或多种;

数据完整性指标:以缺失值比例来衡量,当某一列或某一行的缺失值比例超过阀值时,数据的完整性就受到了影响;

数据准确性指标:以错误值比例来衡量,当某一列或某一行的错误值比例超过阀值时,数据的准确性就受到了影响;

数据一致性指标:以重复值比例来衡量,当某一列或某一行的重复值比例超过阀值时,数据的一致性就受到了影响;

数据唯一性指标:以重复记录次数来衡量,当某一列或某一组记录的重复次数超过阀值次数时,数据的唯一性就受到了影响。

步骤三中,对数据库操作语句的源数据格式进行解析得到解析数据的步骤包括:

通过数据库操作语句携带的源数据库,根据Flink的数据流对象DataStream实现反序列协议接口DeserializationSchema中的反序列化方法deserialize()、流状态判断方法isEndOfStream()和流结果的获取方法getProducedType()的编写,完成了数据库操作语句中数据源信息的解析,基于解析后的数据源信息,得到源数据格式的数据源解析算子链,得到源数据格式;其中,

deserialize():用于将接收到的数据库操作语句中的字节数组转换为对象类型T;

isEndOfStream():用于判断转换为对象类型T后的当前数据是否为流的最后一条数据;

getProducedType():用于判断转换为对象类型T后的当前数据为流的最后一条数据时,返回解析器解析的数据类型。

步骤三中,将解析数据作为数据自动化评估和筛选模型的输入进行数据提取和清洗,剔除掉其中的脏数据,输出融合数据的步骤包括:

将解析源数据格式后的数据使用flink中提供的添加数据源的方法addSource()测试数据源的连接并创建数据源对象,完成常规数据源数据的解析,并把数据转化为数据流的模式,使其可以在新数据生成时,触发对应flink做的source表;source表为flink中定义的源表,flink会自动检测其产生的新的信息,并导入到对应落盘对象sink对象里;sink表的定义是数据的目标表;对数据流产生的数据导入到数据自动化评估和筛选模型中进行数据提取和清洗,构建了数据提取和清洗的算子链,剔除掉其中的脏数据,输出融合数据。

步骤三中,将融合数据导入目标数据通道里的步骤包括:

在创建数据源对象时,把源数据库转义到分布式的实时数据仓库Doris中,Doris运用外表技术实现了泛化数据库的查询语句,实现单一数据库操作语句在多个数据库版本中的映射,将融合数据由源数据库导入携带的目标数据库中的目标数据通道里,得到数据导入算子链。

步骤四中,生成融合数据对应的增量、全量、修复方案的步骤包括:

把融合数据中的源数据库和目标数据库分别导入到Flink中的数据流动流程图DAG图中对应的源对象source对象和落盘对象sink对象中;DAG图由源数据格式的数据源解析算子链、数据提取和清洗的算子链以及数据导入算子链组成;

source对象自动扫描源数据库的增量信息并自主完成目标数据库的落盘,生成了支持当前任务的数据增量方案;

数据增量在运行过程中,会记录意外发生的时间,选择调增source表中的起始时间点,并对接下来的数据操作替换执行为DML中的数据库自适应添加和修改的语句replace语句,replace操作就是完全幂等性操作,实现了数据修复的方案;

把source对象的全量数据转化为流式数据对象,完成把全量数据流式传输到对应目标数据库中,实现了数据库数据的全量生成。

步骤五中,将增量、全量、修复方案部署到平台中,并进行监控,完成多源异构数据自动融合的步骤包括:

平台自动或通过接收客户端发送的触发式命令,将增量、全量、修复方案进行部署;

接收用户端基于全量、增量或修复方案的执行操作,运行执行操作对应的方案,对该方案的运行进行监控,对监控服务进行心跳检测,并将方案的运行日志和服务状态发送给客户端,完成多源异构数据自动融合。

本发明还提供了一种多源异构数据自动融合系统,包括:

获取模块,用于获取多源异构数据的数据库操作语句,所述数据库操作语句携带源数据库和目标数据库信息;

模型生成模块,用于基于数据库操作语句,通过候鸟捕食的群智能优化算法或数据标准筛选算法,生成数据自动化评估和筛选模型;

DAG图创建模块,用于对数据库操作语句的源数据格式进行解析得到解析数据,将解析数据作为数据自动化评估和筛选模型的输入进行数据提取和清洗,剔除掉其中的脏数据,输出融合数据;并将融合数据导入目标数据通道里;

融合作业生成模块,用于生成融合数据对应的增量、全量、修复方案;

平台部署监控模块,用于将增量、全量、修复方案部署到平台中,并进行监控,完成多源异构数据自动融合。

本发明还提供了一种多源异构数据自动融合设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述一种多源异构数据自动融合方法的步骤。

本发明还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述一种多源异构数据自动融合方法的步骤。

本发明提供的一种多源异构数据自动融合方法、系统、设备及存储介质,解决的问题如下:

1:开发过程中需要很多不同行业的人去做,且这些方面人才较为稀少很难构建这样的团队,团队构建难;

2:无法引入业务开发人员,导致数据融合结果无法贴紧业务需求。

2:流程冗长,出错率高;

3:数据融合任务开发效率慢且难以管理的问题;

4:需要较大人力成本。

多源异构是指系统或环境中存在多个不同的数据源,并且这些数据源之间在结构、格式、类型或特性上存在差异,即非影子库。数据融合即当源数据库接收到一个客户端发送的数据变更语句时,通过source对象解析数据变更语句中的SQL的行变化机制,其中,行变更机制是指非单纯记录客户端发送的数据变更语句,而是解析变化规律记录实际变更的行数据记录,即记录携带主键指向性的数据例如:Update ky_bill_detail set delflag=1where update_time<“2023-04-25”变化为Update ky_bill_detail set delflag=1where id=?,?,?....,同步行变化机制至目标数据库,源数据库可以是多源异构的数据库。由于其源数据是多源异构,导致了在数据同步过程中无法如同影子库的构造,直接拷贝变化至目标数据库,也就引出了复杂的数据清洗和数据建模关联的步骤。其中,影子库是指在生产环境中与主数据库完全相同的一个副本数据库,适用屏蔽拓展业务的开发对原业务功能的影响。另一方面目标数据库可能由于不可控因素出现数据不统一的情况下,数据增量同步出现数据缺失的问题,如:人为错误修改,目标数据库断电导致的数据丢失;因此数据修复方案也成为了数据融合中至关重要的异步。为解决这一问题,本方案分别针对数据清洗、数据融合自动生成了对应的算子,算子是指包含数据处理的代码模块,达到从图形化配置的形式出发,实现低学习成本和低代码的形式完成多源异构数据库的同步融合。

本发明的有益效果是:

提高效率:自动化生成数据增量、全量和修复任务可以快速地生成可执行的代码,减少手动编写代码的时间,提高工作效率;

减少错误:由于自动生成的代码经过了多次测试和验证,可以避免手动编写代码时的错误和遗漏,保证数据操作的准确性和稳定性;

提高一致性:自动化生成的代码遵循一定的规范和标准,可以保证不同人编写的代码风格一致,提高代码的可读性和可维护性;

节约成本:自动化生成数据增量、全量和修复方案可以节省人力成本,减少编写和维护代码的人力投入,降低开发成本;

提高可扩展性:自动化生成的代码具有一定的通用性和可扩展性,可以根据业务需求进行灵活调整和扩展,满足不同的数据操作需求;

降低开发难度:降低了对特定技术框架的依赖和开发人员的专业技能要求。这样,开发人员可以更专注于业务逻辑的实现,而无需过多关注数据源的差异和集成细节,从而降低了开发难度;

数据清洗过程中采用了群智能优化算法,相比较普通的数据优化算法,他可以根据需求保留较低质量的数据,更适用于真实源数据库数据混乱的情况;

应用血缘关系自动生成sql,降低了sql出错的可能性。

附图说明

下面根据附图和实施例对本发明作进一步详细说明。

图1是本发明实施例提供的一种多源异构数据自动融合方法示意图。

图2是本发明实施例提供的候鸟捕食算法的迭代更新规律示意图。

图3是本发明实施例提供的Flink中DML示意图。

图4是本发明实施例提供的Flink算子链示意图。

图5是本发明实施例提供的驾驶舱示意图。

图6是本发明实施例提供的触发式运行示意图。

具体实施方式

实施例一

如图1所示,本发明实施例一提供了一种多源异构数据自动融合方法,该方法包括:

步骤一、获取多源异构数据的数据库操作语句,所述数据库操作语句携带源数据库和目标数据库信息;

其中,源数据库是指在数据迁移、数据同步或数据集成等过程中,要从中获取数据信息的原始数据库;目标数据库是指数据迁移、数据同步或数据集成等过程中,导入的数据库。它是接收数据信息的数据库,与源数据库进行数据传输和同步的对象,数据库操作语句为DML语句。

步骤二、基于数据库操作语句,通过候鸟捕食的群智能优化算法或数据标准筛选算法,生成数据自动化评估和筛选模型;

在源数据库长期运营的情况下,数据库版本的更换、数据库的设计问题、数据的转移错误、以及用户的错误输入或随意输入都会导致脏数据的出现。如果数据融合的情况下,缺乏对脏数据的适应性会导致代码的执行崩盘。例如,0000-00-00 00:00:00在mysql的5.4版本时,默认可以导入的timestamp字段中的,而到了5.9之后便无法直接导入了。因此在数据融合的时候需要完成数据的清洗。然而由于脏数据的类型是十分繁多的,因此需要对应的专业人员进行定向筛查,这也成为自动化数据融合实现的第一大难点。为了解决这一问题,经过多种算法验证试验,步骤二最终使用了候鸟捕食的群智能优化算法或数据标准筛选算法来自动完成数据清洗。

候鸟捕食的群智能优化算法是一种基于自然界中候鸟群体迁徙和捕食的行为模式而发展出的一种群智能优化算法,其具有一定的全局搜索和局部搜索能力,能够在保持足量数据的情况下剔除脏数据,更适宜真实环境的源数据库。

数据标准筛选算法,基于公认的数据质量评估的六大标准中的完整性(空值率)、准确性(熵值)、合法性(数据是否符合法律规定)。

由于这两种算法只能在数据大量合法的情况下才能执行成功,因此在自动化清洗过程之前,可以选择制作一条合法数据,在这条合法数据占据绝对筛选权重的下,通过算法生成数据自动化评估和筛选模型。数据自动化评估和筛选模型可以自动化的完成数据清理工作,实现原始数据清理、修复、转换和标准化等操作,达到提高数据质量、减少错误和噪声的目的。

步骤三、对数据库操作语句的源数据格式进行解析得到解析数据,将解析数据作为数据自动化评估和筛选模型的输入进行数据提取和清洗,剔除掉其中的脏数据,输出融合数据;并将融合数据导入目标数据通道里;其中,目标数据通道链接目标数据库;

本步骤最终生成解析器,通过Flink得到DAG图。

解析器完成数据的解析,数据的提取和清洗以及数据的导入工作。因此需要针对功能模块书写对应的融合算子和构建对应的算子链,再设计对应流程的DAG图完成整套数据流程的串联工作。

Flink是一个分布式数据流处理框架,支持从多种数据源读取数据,并且算子构建自定义算子链,算子是指执行特定操作的计算单元,它是数据流处理的基本组件,用于处理输入数据并生成输出数据,而算子链是指串联的算子用于解决数据处理流的任务。然后并定义自己的DAG图来完成自定义的解析器的构造实现对源数据进行解析和处理,DAG图是指Flink数据流处理程序的执行计划图,用于描述数据流处理任务中算子之间的依赖关系和执行顺序,通过自建的算子结合算子链实现数据提取、数据解析和数据导入的功能,并在数据解析之后引入数据清洗算子链,提高数据质量,最终形成自定义的数据解析器。

步骤四、生成融合数据对应的增量、全量、修复方案;

在结合数据库操作语句DML语句的时候,就可以提取到数据的源数据库信息和目标数据库信息,结合上述生成的解析器,就可完成数据从多源数据库到目标数据库的融合转移。便可自动引用上述的数据解析器生成对应的数据增量、全量和修复方案。

步骤五、将增量、全量、修复方案部署到平台中,并进行监控,完成多源异构数据自动融合。

平台自动将增量、全量、修复方案进行部署,平台启动心跳监控服务并把服务日志转移到平台中,用户端可以直接通过平台了解的服务的存活情况,且直接性的通过平台启用对应所需的服务,也可选择部署触发式服务管理。

步骤一中,获取多源异构数据的数据库操作语句的方法包括:

通过建立血缘关系得到多源异构数据的数据库操作语句;或接收客户端发送的多源异构数据的数据库操作语句。

其中,通过建立血缘关系得到多源异构数据的数据库操作语句DML的步骤包括:

基于多源异构数据的源数据库,建立具有血缘关系的数据字典;所述数据字典为记录和描述源数据库中数据元素属性的集合,集合中的数据元素属性携带数据逻辑字段;所述数据字典以树形嵌套的模式存储了数据逻辑字段对应的具有血缘关系的数据结构;

数据元素如:表、列、索引、约束等。数据逻辑字段如:存储的数据来源、数据类型和数据计算方式等。

目标数据库中的参数字段嵌套数据字典中的数据逻辑字段,将目标数据库中的参数字段与数据字典中具有血缘关系的数据结构进行关联,自动生成多源异构数据的数据库操作语句。

本方案可以进一步的降低数据融合的开发难度和对源数据库开发人员的依赖,提高开发效率,另一方面也方便数据的管理和溯源。本方案中,同样的字段不需要重复去配置,且更易于管理。

例如:生成血缘关系之前需要建立数据字典,数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等的定义和描述。在此主要记录了数据的源数据,包括数据的计算模式和数据初始的来源。这样所有字段就以粒子的形式拆分开来,例如入住率=入住人数/床位数,而床位数=select count(id)from bed,(床位数的数量等于床位表的数据条数)且入住人数=select*from person where delflag!=1and ins_id=?,(入住人数等于老人表里,所有未离院老人的数量)在此平台中,建立数据字典的同时以树形嵌套的模式存储了数据所需的数据结构。数据结构如下:

[数据字段名,自定义昵称,计算公式,[数据血缘]]

参数字段来源嵌套了[数据字段名,自定义昵称,计算公式,[数据血缘]的格式,因为数据逻辑在构成过程中存在以下情况(获取入住率月环比下降的程度):

∵当前入住率=当前入驻人数/床位数

∵上月入住率=上月入驻人数/上月床位数

∴入住率下降的程度=当前入住率-上月入住率

根据上面的公式,数据结构应该就是

[monthDownLiving,当月下降入驻率,currentLiving-lastMonthLiving,

[[currentLiving,当月入住率,person/bed,[…]],

[lastMonthLiving,上月入住率,lastMonth(person)/lastMonth(bed),[…]]]]

而每一个参数字段都有自己都在数据字典汇总存储了各自的生成逻辑。自此就建立一个完善的,且各自字段都携带了血缘来源的字段字典。依据于数据字典和建库工具,就可以在库字段建立成功时,自动获取数据的DML语句,由此可进一步降低了学习成本。

步骤二中,基于数据库操作语句,通过候鸟捕食的群智能优化算法,生成数据自动化评估和筛选模型的步骤包括:

将数据库操作语句中的原始数据转换为机器学习模型中的数字标签数据;

通过机器学习模型的主成分分析算法(PCA)将数字标签数据转换为二维数据,随机选择预设正确点来完成二维数据的种群初始化;

通过比较种群初始化数据和设立预设标准值目标的欧式距离,定义下一次迭代的位置完成群体行为;

经过适应度评估和迭代,完成种群更新;

当获取到最接近预设标准值的点停止迭代更新,生成数据自动化评估和筛选模型;

当数据库操作语句中的数据经过模型时,获取数据的预设标准值评分,剔除低于预设标准值评分的脏数据。

由于在真实环境中源数据库中存在较大量数据不符合数据标准,采用传统的数据剔除的方法,会导致数据丢失量过大。而候鸟捕食算法(Migrating Birds Optimization,MBO)是一种群智能优化算法,模拟了候鸟在迁徙过程中的捕食行为。该算法的主要思想是将待优化问题看作一群猎物,将解空间看作一个生态系统,在不同的生态环境中寻找最佳的捕食策略,最终找到最优解。这样可以依据“捕食”的目标评分,调整数据提取量,例如:设定0.8只剩下百分之20数据时就可以降低评分到0.7;把更多的自主权交使用者。方案中主要包括以下几步:

初始化数据:首先使用把文字数据标签化LabelEncode其主要功能是将分类变量中的不同类别标签映射为不同的多维数字变量,从而将其转换为数值变量。例如:颜色中存在红、绿、黄及分别转化为[1,0,0],[0,1,0],[0,0,1],把文本数据变为可分析的数值变量。在通过机器学习模型中的拉平成把数据变为一维的,再经过归一化算法降低单一特征对数据的过度影响例如:文本数字最多为1,而数值数据可以无限大,这就导致了文本数据在机器学习模型的系数难以定义。

初始化种群:针对多维数据的分析时十分缓慢的因此需要经过主成分分析算法(PCA)把数据转为数值向量,这样每一条数据都会转化为携带主要信息的且二维平面可表示的维度向量。组成鸟群规模,x是他的随机起始位置,v是的偏移速度,N是鸟群数量的总数。

群体行为:放入多个测试正确值,评估每种正确值最后反射出来的数据结果。

适应度评估:根据反射出来的数据量和数据标准度-即归一化后的熵值、平均的缺失值。

种群更新:把所有的测试正确值往目标点更新,更新的算法公式如下:

这个公式用于计算每一个测试对象的瞬时移动速度,其移动方向是适应度最高点所在位置(Px,Py),而当前点所在位置为

和y

停止准则:根据预设的标准0.80无限更新,而为了保护模型更新的安全,把最大可迭代数设置在2000次。迭代更新规律如图2所示。图2中所有的○都是预设的查询正确值的“候鸟”,他们都有自己的评分,所有的○都会朝分数评分最高的地方去移动,在迭代获取新的评分,以求获得满足条件的模型。

因为这种候鸟捕食算法在数据大部分都是合规的前提下才能够实现较好的数据剔除功能,因此用户也可以提前键入一个预设的标准数据,以其标准的值,在小幅度的更新算法模型,这样可以实现在数据满足要求的同时贴合用户的需求。

获取预估模型:把数据库的数据通过初始化数据,把所有数据变为机器学习模型中可分析的数据,再通过主成分分析算法(PCA)把所有数据变为携带x,y轴的二维数据,在随意选择几个预设正确点来完成族群的初始化,通过比较它和设立预设标准值目标的欧式距离,定义其下一次迭代的位置完成群体行为,经过上述适应度评估和不停的迭代,完成种群更新,当获取到最接近预设值的点便可停止模型的迭代更新,也就获取到了预估的模型。当单个数据经过模型时,就会获取他的评分,如果超过评分就留下,低于评分就剔除。

步骤二中,基于数据库操作语句,通过数据标准筛选算法,生成数据自动化评估和筛选模型的步骤包括:

基于数据库操作语句,根据预设的标准化的数据规划阀值,剔除不符合阀值的脏数据,生成数据自动化评估和筛选模型;

所述标准化的数据规划包括:数据完整性指标、数据准确性指标、数据一致性指标或数据唯一性指标中的一种或多种;

数据完整性指标:以缺失值比例来衡量,当某一列或某一行的缺失值比例超过阀值时,数据的完整性就受到了影响;例如:阀值可设定为20%。

数据准确性指标:以错误值比例来衡量,当某一列或某一行的错误值比例超过阀值时,数据的准确性就受到了影响;例如:阀值可设定为10%。

数据一致性指标:以重复值比例来衡量,当某一列或某一行的重复值比例超过阀值时,数据的一致性就受到了影响;例如:阀值可设定为10%。

数据唯一性指标:以重复记录次数来衡量,当某一列或某一组记录的重复次数超过阀值次数时,数据的唯一性就受到了影响。例如:阀值可设定为1。

结合标准的数据规则算法剔除数据中的数据,使其满足上述要求,因为这种数据的剔除是具备随机性的,因此用户可以放入个性化的条件来影响数据最终结果,或修改数据阀值例如接受缺失值为30%的数据。自此获取特定的模型,当新的数据经过时,就会对应数据完整性、准确性、一致性、唯一性进行对标,如果不满足就会相应的剔除数据。

当用户导入数据时,以及预设的数据完整性、准确性、一致性和唯一性的值,对数据进行打分;例如,同样id为3的出现一次为100,两次90,依次递减,且打分采取平均数的权重,既当数据打分结果取平均数。用户也可调大某个标准的分数占比,去获取更加满足需求的数据,这样就获取了既满足用户需求也满足数据标准的数据评估和筛选模型。

步骤三中,对数据库操作语句的源数据格式进行解析得到解析数据的步骤包括:

通过数据库操作语句携带的源数据库,根据Flink的数据流对象DataStream实现反序列协议接口DeserializationSchema中的反序列化方法deserialize()、流状态判断方法isEndOfStream()和流结果的获取方法getProducedType()的编写,完成了数据库操作语句中数据源信息的解析,基于解析后的数据源信息,得到源数据格式的数据源解析算子链,得到源数据格式;其中,

deserialize()例如:deserialize(byte[]message):用于将接收到的数据库操作语句中的字节数组转换为对象类型T;

isEndOfStream()例如:isEndOfStream(T nextElement):用于判断转换为对象类型T后的当前数据是否为流的最后一条数据;

getProducedType():用于判断转换为对象类型T后的当前数据为流的最后一条数据时,返回解析器解析的数据类型。

步骤三中,将解析数据作为数据自动化评估和筛选模型的输入进行数据提取和清洗,剔除掉其中的脏数据,输出融合数据的步骤包括:

将解析源数据格式后的数据使用flink中提供的添加数据源的方法addSource()测试数据源的连接并创建数据源对象,完成常规数据源数据的解析,并把数据转化为数据流的模式,使其可以在新数据生成时,触发对应flink做的source表;source表为flink中定义的源表,flink会自动检测其产生的新的信息,并导入到对应落盘对象sink对象里;对数据流产生的数据导入到数据自动化评估和筛选模型中进行数据提取和清洗,构建了数据提取和清洗的算子链,剔除掉其中的脏数据,输出融合数据。

例如:结合用户提供的数据源地址、数据源用户、用户密码,可以使用flink中提供的添加数据源的方法addSource()测试数据源的连接方式并创建数据源对象,完成常规数据源数据的解析,并把数据转化为数据流的模式,使其可以在新数据生成时,触发对应flink做的source表(source表是flink中定义的源表,flink会自动检测其产生的新的信息,并导入到对应sink对象里)。对流式产生的数据导入到上述生成的数据自动化评估和筛选模型,使得数据在增量、修复和全量时都得到清洗。自此就构建了数据提取和清洗的算子链。

步骤三中,将融合数据导入目标数据通道里的步骤包括:

在创建数据源对象时,把源数据库转义到分布式的实时数据仓库Doris中,Doris运用外表技术实现了泛化数据库的查询语句,实现单一数据库操作语句在多个数据库版本中的映射,将融合数据由源数据库导入携带的目标数据库中的目标数据通道里,得到数据导入算子链。

如图3所示,数据库操作语句DML左侧是Application软件,Devices设备触发数据流信息的变化,导入到Flink平台中,平台会经过一系列的算子链进入对应的目标。如图4所示的Flink算子链,对应的是算子链中单子算子的代码和功能,例如source对应env.addsource,sink对应states.addsink。

例如:为了保证后续在基于用户提供的sql语句能够直接实现数据从源到端的导入,因此在创建数据源对象的时候把数据库转储到Doris中,Doris本身是一个分布式的实时数据仓库,本身支持多种数据源的实时导入和处理,包括MySQL、Kafka、HDFS等,且其运用外表技术实现了泛化数据库的查询语句如:SQL-on-Hadoop,实现单一DML在多个数据库版本中的映射。这样可以把源数据格式解析完成后转向导入到目标数据通道里,自此便完成了数据的提取和数据导入算子链。

步骤四中,生成融合数据对应的增量、全量、修复方案的步骤包括:

结合数据提取的算子链设计和形成DAG图,DAG图是Flink中的数据流动流程图,即流程设计图,实现把融合数据中的源数据库和目标数据库分别导入到Flink中DAG图中对应的源对象source对象和落盘对象sink对象中;且全流程经过了数据解析、数据提取和解析、数据导入的三个算子链。因为具备源数据到目标数据库的导入语句,DAG图由源数据格式的数据源解析算子链、数据提取和清洗的算子链以及数据导入算子链组成;

source对象自动扫描源数据库的增量信息并自主完成目标数据库的落盘,生成了支持当前任务的数据增量方案;

为了防止数据库的人为或非人为的意外崩盘,数据增量在运行过程中,会记录意外发生的时间,选择调增source表中的起始时间点,并对接下来的数据操作替换执行为DML中的数据库自适应添加和修改的语句replace语句,replace操作就是完全幂等性操作,即,多次同样的语句,结果依然一致;实现了数据修复的方案;

由于数据库会发生迁移且本身数据库的事务日志也是会被删除的,因此结合数据本身特性也应用了把source对象的全量数据转化为流式数据对象的方案来完成把全量数据流式传输到对应目标数据库中,达到数据库数据变化的全量迁移。

步骤五中,将增量、全量、修复方案部署到平台中,并进行监控,完成多源异构数据自动融合的步骤包括:

平台自动或通过接收客户端发送的触发式命令,将增量、全量、修复方案进行部署;

接收用户端基于全量、增量或修复方案的执行操作,运行执行操作对应的方案,对该方案的运行进行监控,如图5所示,图5所示为平台的驾驶舱,监控服务的地方,flink部署的服务会自动生成流程的UML图,包括下方表格中展示了每一步的信息流动情况。对监控服务进行心跳检测,并将方案的运行日志和服务状态发送给客户端,完成多源异构数据自动融合。

例如:生成数据全量、增量和修复的方案以后,用户可以在平台中对应选择需要执行的方案,方案的会自主的在服务管理平台中运行和监控,平台对所有服务进行了心跳检测,用户可直接通过平台查看服务的运行日志和服务状态。至此便完成整套多源异构数据的融合和数据同步监控。另一方面,用户可以选择增量和修复方案的触发式运行,流程图如图6所示周期间检测数据的增量服务,如果服务出现异常,对应提取出故障的触发时间和自启数据修复算子服务,完成自主修复的流程。

当服务处在自我监控的模式下,会在消耗少量的资源下完成及时性的数据修复,这也为线上服务的数据提供及时可靠的数据。

实施例二

本发明实施例二提供了一种多源异构数据自动融合系统,包括:

获取模块,用于获取多源异构数据的数据库操作语句,所述数据库操作语句携带源数据库和目标数据库信息;

模型生成模块,用于基于数据库操作语句,通过候鸟捕食的群智能优化算法或数据标准筛选算法,生成数据自动化评估和筛选模型;

DAG图创建模块,用于对数据库操作语句的源数据格式进行解析得到解析数据,将解析数据作为数据自动化评估和筛选模型的输入进行数据提取和清洗,剔除掉其中的脏数据,输出融合数据;并将融合数据导入目标数据通道里;

融合作业生成模块,用于生成融合数据对应的增量、全量、修复方案;

平台部署监控模块,用于将增量、全量、修复方案部署到平台中,并进行监控,完成多源异构数据自动融合。

实施例三

本发明实施例三提供了一种多源异构数据自动融合设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述实施例一提供的方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

实施例四

本发明实施例四提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例一提供的方法的步骤。

本发明实施例提供的一种多源异构数据自动融合方法、系统、设备及存储介质,解决的问题如下:

1:开发过程中需要很多不同行业的人去做,且这些方面人才较为稀少很难构建这样的团队,团队构建难;

2:流程冗长很容易犯错误;

3:数据融合任务开发效率慢且难以管理的问题;

4:需要较大人力成本。

多源异构是指系统或环境中存在多个不同的数据源,并且这些数据源之间在结构、格式、类型或特性上存在差异,即非影子库。数据融合即当源数据库接收到一个客户端发送的数据变更语句时,通过source对象解析数据变更语句中的SQL的行变化机制,其中,行变更机制是指非单纯记录客户端发送的数据变更语句,而是解析变化规律记录实际变更的行数据记录,即记录携带主键指向性的数据例如:Update ky_bill_detail set delflag=1where update_time<“2023-04-25”变化为Update ky_bill_detail set delflag=1where id=?,?,?....,同步行变化机制至目标数据库,源数据库可以是多源异构的数据库。由于其源数据是多源异构,导致了在数据同步过程中无法如同影子库的构造,直接拷贝变化至目标数据库,也就引出了复杂的数据清洗和数据建模关联的步骤。其中,影子库是指在生产环境中与主数据库完全相同的一个副本数据库,适用屏蔽拓展业务的开发对原业务功能的影响。另一方面目标数据库可能由于不可控因素出现数据不统一的情况下,数据增量同步出现数据缺失的问题,如:人为错误修改,目标数据库断电导致的数据丢失;因此数据修复方案也成为了数据融合中至关重要的异步。为解决这一问题,本方案分别针对数据清洗、数据融合自动生成了对应的算子,算子是指包含数据处理的代码模块,达到从图形化配置的形式出发,实现低学习成本和低代码的形式完成多源异构数据库的同步融合。

本发明实施例的有益效果是:

提高效率:自动化生成数据增量、全量和修复任务可以快速地生成可执行的代码,减少手动编写代码的时间,提高工作效率;

减少错误:由于自动生成的代码经过了多次测试和验证,可以避免手动编写代码时的错误和遗漏,保证数据操作的准确性和稳定性;

提高一致性:自动化生成的代码遵循一定的规范和标准,可以保证不同人编写的代码风格一致,提高代码的可读性和可维护性;

节约成本:自动化生成数据增量、全量和修复方案可以节省人力成本,减少编写和维护代码的人力投入,降低开发成本;

提高可扩展性:自动化生成的代码具有一定的通用性和可扩展性,可以根据业务需求进行灵活调整和扩展,满足不同的数据操作需求;

降低开发难度:降低了对特定技术框架的依赖和开发人员的专业技能要求。这样,开发人员可以更专注于业务逻辑的实现,而无需过多关注数据源的差异和集成细节,从而降低了开发难度;

数据清洗过程中采用了群智能优化算法,相比较普通的数据优化算法,他可以根据需求保留较低质量的数据,更适用于真实源数据库数据混乱的情况;

应用血缘关系自动生成sql,降低了sql出错的可能性。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

技术分类

06120116329775