本发明涉及数据同步技术领域,具体而言,涉及一种基于大数据的数据同步方法、装置及电子设备。
背景技术:
随着大数据的发展,数据同步已成为数据处理中非常重要的一环。例如,企业中大量业务数据保存在各个业务系统数据库中,在一些情况下需要对这些业务数据库进行同步。常见的数据同步方法包括以下几种:
(1)各个数据使用方在业务低峰时期从各个业务系统数据库中抽取所需要的业务数据进行同步,然而这种方式存在重复多次抽取的问题。
(2)通过统一的数仓平台通过sqoop抽取方法从各个业务系统数据库中抽取数据进行同步,但是这种方法的时效性差,一般都是t 1的时效性。
(3)基于trigger或时间戳的方式从业务系统数据库中获得变化的业务数据并进行同步,这种方法的缺点是对业务系统数据库的侵入性大,会降低业务系统数据库的性能损失。
技术实现要素:
为了至少克服现有技术中的上述不足,本发明的目的之一在于提供一种基于大数据的数据同步方法、装置及电子设备。
本发明实施例的第一方面,提供了一种基于大数据的数据同步方法,应用于电子设备,所述电子设备与多个关系型数据库通信,所述方法至少包括:
从每个关系型数据库中读取每个关系型数据库对应的增量日志;
将读取到的每个关系型数据库对应的增量日志同步至开源流处理平台;
检测所述开源流处理平台中的所有增量日志中是否存在更新的第一目标增量日志,在所述开源流处理平台中所述增量日志中存在所述第一目标增量日志时,拉取所述第一目标增量日志在所述第一目标增量日志对应的关系型数据库中的第一增量数据并拉取所述开源流处理平台中除所述第一目标增量日志之外的第二目标增量日志对应的关系型数据库中的第二增量数据;
在所述开源流处理平台中将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式,以得到所述第一增量数据对应的第一目标数据以及所述第二增量数据对应的第二目标数据;其中,所述第一目标增量数据和所述第二目标增量数据为同步之后的数据;
将所述第一目标数据和所述第二目标数据进行输出。
在一种可替换的实施方式中,所述在所述开源流处理平台中将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式,包括:
在所述开源流处理平台中为所述第一增量数据以及各第二增量数据分配对应的数据格式转换线程流;
运行每个数据格式转换线程流,以实现对所述第一增量数据和各第二增量数据的数据格式转换。
在一种可替换的实施方式中,所述运行每个数据格式转换线程流,以实现对所述第一增量数据和各第二增量数据的数据格式转换,包括:
统计每个数据格式转换线程流的进程百分比;
当统计出的所有进程百分比中存在达到设定百分比的第一进程百分比时,将所述第一进程百分比对应的数据格式转换线程流对应的第一线程资源进行释放;
将释放的第一线程资源加载到所述所有进程百分比中的第二进程百分比对应的数据格式转换线程流,所述第二进程百分比为所述所有进程百分比中的最小值。
在一种可替换的实施方式中,所述方法还包括:
当统计出的所有进程百分比中存在达到设定百分比的第三进程百分比时,将所述第三进程百分比对应的数据格式转换线程流对应的第三线程资源进行释放;
将释放的第三线程资源加载到所述所有进程百分比中的第四进程百分比对应的数据格式转换线程流,所述第四进程百分比为所述所有进程百分比中除所述第二进程百分比之外的最小值。
在一种可替换的实施方式中,所述方法还包括:
针对每个关系型数据库,实时检测该关系型数据库对应的增量日志中是否存在异常数据并按照第一设定时长间隔向该关系型数据库发送问候信息;
检测在发送所述问候信息的第二设定时长内是否接收到该关系型数据库反馈的响应信息;
在发送所述问候信息的第二设定时长内没有接收到该关系型数据库反馈的响应信息,判定该关系型数据库出现异常,输出第一预警信息;
在发送所述问候信息的第二设定时长内接收到该关系型数据库反馈的响应信息,若该关系型数据库对应的增量日志中存在异常数据,判定该关系型数据库出现异常,输出第二预警信息。
在一种可替换的实施方式中,所述将所述第一目标数据和所述第二目标数据进行输出,包括:
确定出接收所述第一目标数据和所述第二目标数据对应的数据接收方;
根据所述数据接收方的标识信息确定出所述数据接收方的数据接收权限;
根据所述数据接收权限将所述第一目标数据中的至少部分数据或所述第二目标数据中的至少部分数据发送给所述数据接收方。
在一种可替换的实施方式中,所述根据所述数据接收权限将所述第一目标数据中的至少部分数据或所述第二目标数据中的至少部分数据发送给所述数据接收方,包括:
确定所述数据接收权限对应的第一权限等级;
确定所述第一目标数据中的所有数据对应的第二权限等级以及所述第二目标数据中的所有数据对应的第三权限等级;
将所述第一目标数据中的所有数据中的第二权限等级小于等于所述第一权限等级的数据发送给所述数据接收方;
将所述第二目标数据中的所有数据中的第三权限等级小于等于所述第二权限等级的数据发送给所述数据接收方。
本发明实施例的第二方面,提供了一种基于大数据的数据同步装置,应用于电子设备,所述电子设备与多个关系型数据库通信,所述装置至少包括:
读取模块,用于从每个关系型数据库中读取每个关系型数据库对应的增量日志;
同步模块,用于将读取到的每个关系型数据库对应的增量日志同步至开源流处理平台;
检测模块,用于检测所述开源流处理平台中的所有增量日志中是否存在更新的第一目标增量日志,在所述开源流处理平台中所述增量日志中存在所述第一目标增量日志时,拉取所述第一目标增量日志在所述第一目标增量日志对应的关系型数据库中的第一增量数据并拉取所述开源流处理平台中除所述第一目标增量日志之外的第二目标增量日志对应的关系型数据库中的第二增量数据;
转换模块,用于在所述开源流处理平台中将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式,以得到所述第一增量数据对应的第一目标数据以及所述第二增量数据对应的第二目标数据;其中,所述第一目标增量数据和所述第二目标增量数据为同步之后的数据;
输出模块,用于将所述第一目标数据和所述第二目标数据进行输出。
本发明实施例的第三方面,提供了一种电子设备,包括处理器以及与所述处理器连接的存储器和总线;其中,所述处理器和所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述的基于大数据的数据同步方法。
本发明实施例的第四方面,提供了一种可读存储介质,其上存储有程序,该程序被处理器执行时实现上述的基于大数据的数据同步方法。
本发明实施例所提供的一种基于大数据的数据同步方法、装置及电子设备,能够将每个关系型数据库对应的增量日志同步至开源流处理平台,如此,无需对关系型数据库中的业务数据进行多次抽取,且通过开源流处理平台检测增量日志是否更新,能够确保在增量日志出现更新时第一时间获取到更新信息,如此,确保了基于更新的增量日志进行数据同步的时效性,进一步地,在开源流处理平台中基于第一目标增量日志和第二目标增量日志拉取对应的第一增量数据和第二增量数据并进行数据格式转换,能够确保数据格式转换的时效性,进而确保数据同步的时效性,又由于数据同步是基于增量日志进行的,减少了对关系型数据库的侵入性,确保了关系型数据库的性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例所提供的一种基于大数据的数据同步方法的流程图。
图2为本发明实施例所提供的一种基于大数据的数据同步装置的功能模块框图。
图3为本发明实施例所提供的一种电子设备的方框示意图。
图标:
200-基于大数据的数据同步装置;201-读取模块;202-同步模块;203-检测模块;204-转换模块;205-输出模块;
300-电子设备;301-处理器;302-存储器;303-总线。
具体实施方式
下面将参照附图更详细地描述本发明公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
图1为根据本发明一个实施例提供的基于大数据的数据同步方法的流程图,应用于电子设备,所述电子设备与多个关系型数据库通信。可选地,在本实施例中,关系型数据库可以是mysql、oracle等数据库。进一步地,该方法可以包括以下内容:
步骤s21,从每个关系型数据库中读取每个关系型数据库对应的增量日志。
步骤s22,将读取到的每个关系型数据库对应的增量日志同步至开源流处理平台。
步骤s23,检测所述开源流处理平台中的所有增量日志中是否存在更新的第一目标增量日志,在所述开源流处理平台中所述增量日志中存在所述第一目标增量日志时,拉取所述第一目标增量日志在所述第一目标增量日志对应的关系型数据库中的第一增量数据并拉取所述开源流处理平台中除所述第一目标增量日志之外的第二目标增量日志对应的关系型数据库中的第二增量数据。
步骤s24,在所述开源流处理平台中将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式,以得到所述第一增量数据对应的第一目标数据以及所述第二增量数据对应的第二目标数据。
步骤s25,将所述第一目标数据和所述第二目标数据进行输出。
在步骤s23中,所述第一目标增量数据和所述第二目标增量数据为同步之后的数据。
在本实施例中,开源流处理平台可以是kafka。
在本实施例中,增量日志可以支持基于logstash,flume和filebeat的多种数据日志抽取方案。
在本实施例中,设定数据格式为json格式,相应地,第一目标数据和第二目标数据可以为ums数据。
可以理解,通过步骤s21-步骤s25,能够将每个关系型数据库对应的增量日志同步至开源流处理平台,如此,无需对关系型数据库中的业务数据进行多次抽取,且通过开源流处理平台检测增量日志是否更新,能够确保在增量日志出现更新时第一时间获取到更新信息,如此,确保了基于更新的增量日志进行数据同步的时效性。
进一步地,在开源流处理平台中基于第一目标增量日志和第二目标增量日志拉取对应的第一增量数据和第二增量数据并进行数据格式转换,能够确保数据格式转换的时效性,进而确保数据同步的时效性,又由于数据同步是基于增量日志进行的,减少了对关系型数据库的侵入性,确保了关系型数据库的性能。
为了确保数据格式转换的实时性,需要提高将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式的效率,为此,在一种可替换的实施方式中,在步骤s24中,所述在所述开源流处理平台中将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式,具体可以包括以下内容:
步骤s241,在所述开源流处理平台中为所述第一增量数据以及各第二增量数据分配对应的数据格式转换线程流。
步骤s242,运行每个数据格式转换线程流,以实现对所述第一增量数据和各第二增量数据的数据格式转换。
可以理解,通过步骤s241-步骤s242,能够实现每个数据格式转换线程流的并行运行,从而提高将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式的效率,进而确保数据格式转换的实时性。
在具体实施时,为了进一步提高数据转换的时效性,在一种可替换的实施方式中,在步骤s242中,所述运行每个数据格式转换线程流,以实现对所述第一增量数据和各第二增量数据的数据格式转换,还可以包括以下具体内容:
步骤s2421,统计每个数据格式转换线程流的进程百分比。
步骤s2422,当统计出的所有进程百分比中存在达到设定百分比的第一进程百分比时,将所述第一进程百分比对应的数据格式转换线程流对应的第一线程资源进行释放。
步骤s2423,将释放的第一线程资源加载到所述所有进程百分比中的第二进程百分比对应的数据格式转换线程流,所述第二进程百分比为所述所有进程百分比中的最小值。
在本实施例中,通过步骤s2421-步骤s2423,能够将完成数据格式转换的数据格式转换线程流对应的第一线程资源进行释放,进而为最慢的数据格式转换线程流提供速率加成,进一步提高数据转换的时效性。
在具体实施时,为了尽可能确保所有数据格式转换线程流的同步,在上述步骤s2423的基础上,还可以包括以下内容:
步骤s2424,当统计出的所有进程百分比中存在达到设定百分比的第三进程百分比时,将所述第三进程百分比对应的数据格式转换线程流对应的第三线程资源进行释放。
步骤s2425,将释放的第三线程资源加载到所述所有进程百分比中的第四进程百分比对应的数据格式转换线程流,所述第四进程百分比为所述所有进程百分比中除所述第二进程百分比之外的最小值。
可以理解,通过步骤s2424-步骤s2425,能够避免将所有释放的线程资源加载到同一个数据格式转换线程流中,进而确保了线程资源加载的均匀性,从而确保所有数据格式转换线程流的同步。
在具体实施时,为了确保每个关系型数据库的数据安全性,需要对每个关系型数据库对应的增量日志进行实时监测,为此,在步骤s21-步骤s25的基础上,还可以包括以下内容:
步骤s261,针对每个关系型数据库,实时检测该关系型数据库对应的增量日志中是否存在异常数据并按照第一设定时长间隔向该关系型数据库发送问候信息。
步骤s262,检测在发送所述问候信息的第二设定时长内是否接收到该关系型数据库反馈的响应信息。
步骤s263,在发送所述问候信息的第二设定时长内没有接收到该关系型数据库反馈的响应信息,判定该关系型数据库出现异常,输出第一预警信息。
步骤s264,在发送所述问候信息的第二设定时长内接收到该关系型数据库反馈的响应信息,若该关系型数据库对应的增量日志中存在异常数据,判定该关系型数据库出现异常,输出第二预警信息。
在本实施例中,第一设定时长间隔可以为30s,在一些数据交互较为频繁的场景下,第一设定时长间隔可以缩短为10s。
在本实施例中,第二设定时长可以为5s,当然,在具体实施时,也可以根据当前的网络延迟对第二设定时长进行适当延长。
可以理解,通过步骤s261-步骤s264,能够定时对每个关系型数据库对应的增量日志进行实时监测,从而确保每个关系型数据库的数据安全性。
在具体实施时,为了确保第一目标数据和第二目标数据的数据安全性,避免第一目标数据和第二目标数据的泄露,在步骤s25中,所述将所述第一目标数据和所述第二目标数据进行输出,具体可以包括以下内容:
步骤s251,确定出接收所述第一目标数据和所述第二目标数据对应的数据接收方。
步骤s252,根据所述数据接收方的标识信息确定出所述数据接收方的数据接收权限。
步骤s253,根据所述数据接收权限将所述第一目标数据中的至少部分数据或所述第二目标数据中的至少部分数据发送给所述数据接收方。
可以理解,通过步骤s251-步骤s253,能够对数据接收方的数据接收权限进行确定,从而根据数据接收权限将第一目标数据和第二目标数据进行部分发送,避免将第一目标数据和第二目标数据中权限较高的数据进行发送,进而确保了第一目标数据和第二目标数据的数据安全性,避免了第一目标数据和第二目标数据的泄露。
可选地,在步骤s253中,所述根据所述数据接收权限将所述第一目标数据中的至少部分数据或所述第二目标数据中的至少部分数据发送给所述数据接收方,具体可以包括以下内容:
确定所述数据接收权限对应的第一权限等级;确定所述第一目标数据中的所有数据对应的第二权限等级以及所述第二目标数据中的所有数据对应的第三权限等级;将所述第一目标数据中的所有数据中的第二权限等级小于等于所述第一权限等级的数据发送给所述数据接收方;将所述第二目标数据中的所有数据中的第三权限等级小于等于所述第二权限等级的数据发送给所述数据接收方。
可以理解,通过上述内容,能够避免将第一目标数据和第二目标数据中权限较高的数据进行发送,进而确保了第一目标数据和第二目标数据的数据安全性,避免了第一目标数据和第二目标数据的泄露。
在具体实施时,为了进一步确保数据输出的安全性,不仅需要考虑数据接收方的数据接收权限,还需要对数据接收方进行安全性验证,为此,在将所述第一目标数据和所述第二目标数据进行输出的步骤之前,该方法还可以包括以下内容:
确定出所述第一目标数据和所述第二目标数据对应的数据接收方的通信记录表单。
确定基于所述通信记录表单所提取到的多个通信方以及所述数据接收方与每个通信方建立通信的通信时刻。
针对所述多个通信方中的每个通信方,确定出该通信方与所述数据接收方对应的目标通信记录的安全系数。
根据每个安全系数对应的通信时刻确定出每个安全系数对应的权重值。
根据每个安全系数对应的权重值对每个安全系数进行加权求和得到所述数据接收方对应的目标安全系数。
判断所述目标安全系数是否达到设定系数,在所述目标安全系数达到所述设定系数时,判定所述数据接收方通过安全验证。
在本实施例中,所述安全系数用于表征所述数据接收方与该通信方进行通信时的数据风险等级,安全系数越高,数据风险等级越低。
在本实施例中,通信时刻越靠前的权重值越小,通信时刻越靠后的权重值越大。
在本实施例中,设定系数可以取0.9,可以理解,目标安全系数可以是位于0~1之间的数值。
可以理解,通过上述内容,能够对数据接收方对应的通信方进行分析,并根据通信时刻的实时性确定出数据接收方的目标安全系数,如此,能够根据目标安全系数确定数据接收方是否通过安全验证,从而确保数据输出的安全性。
在上述基础上,本发明实施例提供了一种基于大数据的数据同步装置200。图2为根据本发明一个实施例提供的一种基于大数据的数据同步装置200的功能模块框图,该基于大数据的数据同步装置200包括:
读取模块201,用于从每个关系型数据库中读取每个关系型数据库对应的增量日志。
同步模块202,用于将读取到的每个关系型数据库对应的增量日志同步至开源流处理平台。
检测模块203,用于检测所述开源流处理平台中的所有增量日志中是否存在更新的第一目标增量日志,在所述开源流处理平台中所述增量日志中存在所述第一目标增量日志时,拉取所述第一目标增量日志在所述第一目标增量日志对应的关系型数据库中的第一增量数据并拉取所述开源流处理平台中除所述第一目标增量日志之外的第二目标增量日志对应的关系型数据库中的第二增量数据。
转换模块204,用于在所述开源流处理平台中将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式,以得到所述第一增量数据对应的第一目标数据以及所述第二增量数据对应的第二目标数据;其中,所述第一目标增量数据和所述第二目标增量数据为同步之后的数据。
输出模块205,用于将所述第一目标数据和所述第二目标数据进行输出。
所述电子设备300包括处理器和存储器,上述读取模块201、同步模块202、检测模块203、转换模块204和输出模块205等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数避免对关系型数据库中的业务数据进行多次抽取,且能够确保数据同步的时效性,减少对关系型数据库的侵入性从而确保关系型数据库的性能。
本发明实施例提供了一种可读存储介质,其上存储有程序,该程序被处理器执行时实现所述基于大数据的数据同步方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行的所述基于大数据的数据同步方法如下:
a1.一种基于大数据的数据同步方法,应用于电子设备,所述电子设备与多个关系型数据库通信,所述方法至少包括:
从每个关系型数据库中读取每个关系型数据库对应的增量日志;
将读取到的每个关系型数据库对应的增量日志同步至开源流处理平台;
检测所述开源流处理平台中的所有增量日志中是否存在更新的第一目标增量日志,在所述开源流处理平台中所述增量日志中存在所述第一目标增量日志时,拉取所述第一目标增量日志在所述第一目标增量日志对应的关系型数据库中的第一增量数据并拉取所述开源流处理平台中除所述第一目标增量日志之外的第二目标增量日志对应的关系型数据库中的第二增量数据;
在所述开源流处理平台中将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式,以得到所述第一增量数据对应的第一目标数据以及所述第二增量数据对应的第二目标数据;其中,所述第一目标增量数据和所述第二目标增量数据为同步之后的数据;
将所述第一目标数据和所述第二目标数据进行输出。
a2.根据a1所述的方法,所述在所述开源流处理平台中将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式,包括:
在所述开源流处理平台中为所述第一增量数据以及各第二增量数据分配对应的数据格式转换线程流;
运行每个数据格式转换线程流,以实现对所述第一增量数据和各第二增量数据的数据格式转换。
a3.根据a2所述的方法,所述运行每个数据格式转换线程流,以实现对所述第一增量数据和各第二增量数据的数据格式转换,包括:
统计每个数据格式转换线程流的进程百分比;
当统计出的所有进程百分比中存在达到设定百分比的第一进程百分比时,将所述第一进程百分比对应的数据格式转换线程流对应的第一线程资源进行释放;
将释放的第一线程资源加载到所述所有进程百分比中的第二进程百分比对应的数据格式转换线程流,所述第二进程百分比为所述所有进程百分比中的最小值。
a4.根据a3所述的方法,所述方法还包括:
当统计出的所有进程百分比中存在达到设定百分比的第三进程百分比时,将所述第三进程百分比对应的数据格式转换线程流对应的第三线程资源进行释放;
将释放的第三线程资源加载到所述所有进程百分比中的第四进程百分比对应的数据格式转换线程流,所述第四进程百分比为所述所有进程百分比中除所述第二进程百分比之外的最小值。
a5.根据a1所述的方法,所述方法还包括:
针对每个关系型数据库,实时检测该关系型数据库对应的增量日志中是否存在异常数据并按照第一设定时长间隔向该关系型数据库发送问候信息;
检测在发送所述问候信息的第二设定时长内是否接收到该关系型数据库反馈的响应信息;
在发送所述问候信息的第二设定时长内没有接收到该关系型数据库反馈的响应信息,判定该关系型数据库出现异常,输出第一预警信息;
在发送所述问候信息的第二设定时长内接收到该关系型数据库反馈的响应信息,若该关系型数据库对应的增量日志中存在异常数据,判定该关系型数据库出现异常,输出第二预警信息。
a6.根据a1所述的方法,所述将所述第一目标数据和所述第二目标数据进行输出,包括:
确定出接收所述第一目标数据和所述第二目标数据对应的数据接收方;
根据所述数据接收方的标识信息确定出所述数据接收方的数据接收权限;
根据所述数据接收权限将所述第一目标数据中的至少部分数据或所述第二目标数据中的至少部分数据发送给所述数据接收方。
a7.根据a6所述的方法,所述根据所述数据接收权限将所述第一目标数据中的至少部分数据或所述第二目标数据中的至少部分数据发送给所述数据接收方,包括:
确定所述数据接收权限对应的第一权限等级;
确定所述第一目标数据中的所有数据对应的第二权限等级以及所述第二目标数据中的所有数据对应的第三权限等级;
将所述第一目标数据中的所有数据中的第二权限等级小于等于所述第一权限等级的数据发送给所述数据接收方;
将所述第二目标数据中的所有数据中的第三权限等级小于等于所述第二权限等级的数据发送给所述数据接收方。
本发明实施例中,如图3所示,电子设备300包括至少一个处理器301、以及与处理器301连接的至少一个存储器302、总线;其中,处理器301、存储器302通过总线303完成相互间的通信;处理器301用于调用存储器302中的程序指令,以执行上述的基于大数据的数据同步方法。本文中的电子设备300可以是电子设备、pc、pad、手机等。
本申请是参照根据本申请实施例的方法、电子设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理电子设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理电子设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,电子设备包括一个或多个处理器(cpu)、存储器和总线。电子设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储电子设备或任何其他非传输介质,可用于存储可以被计算电子设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者电子设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
1.一种基于大数据的数据同步方法,其特征在于,应用于所述电子设备,所述电子设备与所述多个关系型数据库通信,所述方法至少包括:
从每个关系型数据库中读取每个关系型数据库对应的所述增量日志;
将读取到的每个关系型数据库对应的增量日志同步至开源流处理平台;
检测所述开源流处理平台中的所有增量日志中是否存在更新的第一目标增量日志,在所述开源流处理平台中所述增量日志中存在所述第一目标增量日志时,拉取所述第一目标增量日志在所述第一目标增量日志对应的关系型数据库中的第一增量数据并拉取所述开源流处理平台中除所述第一目标增量日志之外的第二目标增量日志对应的关系型数据库中的第二增量数据;
在所述开源流处理平台中将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式,以得到所述第一增量数据对应的第一目标数据以及所述第二增量数据对应的第二目标数据;其中,所述第一目标增量数据和所述第二目标增量数据为同步之后的数据;
将所述第一目标数据和所述第二目标数据进行输出。
2.根据权利要求1所述的方法,其特征在于,所述在所述开源流处理平台中将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式,包括:
在所述开源流处理平台中为所述第一增量数据以及各第二增量数据分配对应的数据格式转换线程流;
运行每个数据格式转换线程流,以实现对所述第一增量数据和各第二增量数据的数据格式转换。
3.根据权利要求2所述的方法,其特征在于,所述运行每个数据格式转换线程流,以实现对所述第一增量数据和各第二增量数据的数据格式转换,包括:
统计每个数据格式转换线程流的进程百分比;
当统计出的所有进程百分比中存在达到设定百分比的第一进程百分比时,将所述第一进程百分比对应的数据格式转换线程流对应的第一线程资源进行释放;
将释放的第一线程资源加载到所述所有进程百分比中的第二进程百分比对应的数据格式转换线程流,所述第二进程百分比为所述所有进程百分比中的最小值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当统计出的所有进程百分比中存在达到设定百分比的第三进程百分比时,将所述第三进程百分比对应的数据格式转换线程流对应的第三线程资源进行释放;
将释放的第三线程资源加载到所述所有进程百分比中的第四进程百分比对应的数据格式转换线程流,所述第四进程百分比为所述所有进程百分比中除所述第二进程百分比之外的最小值。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
针对每个关系型数据库,实时检测该关系型数据库对应的增量日志中是否存在异常数据并按照第一设定时长间隔向该关系型数据库发送问候信息;
检测在发送所述问候信息的第二设定时长内是否接收到该关系型数据库反馈的响应信息;
在发送所述问候信息的第二设定时长内没有接收到该关系型数据库反馈的响应信息,判定该关系型数据库出现异常,输出第一预警信息;
在发送所述问候信息的第二设定时长内接收到该关系型数据库反馈的响应信息,若该关系型数据库对应的增量日志中存在异常数据,判定该关系型数据库出现异常,输出第二预警信息。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述将所述第一目标数据和所述第二目标数据进行输出,包括:
确定出接收所述第一目标数据和所述第二目标数据对应的数据接收方;
根据所述数据接收方的标识信息确定出所述数据接收方的数据接收权限;
根据所述数据接收权限将所述第一目标数据中的至少部分数据或所述第二目标数据中的至少部分数据发送给所述数据接收方。
7.根据权利要求6所述的方法,其特征在于,所述根据所述数据接收权限将所述第一目标数据中的至少部分数据或所述第二目标数据中的至少部分数据发送给所述数据接收方,包括:
确定所述数据接收权限对应的第一权限等级;
确定所述第一目标数据中的所有数据对应的第二权限等级以及所述第二目标数据中的所有数据对应的第三权限等级;
将所述第一目标数据中的所有数据中的第二权限等级小于等于所述第一权限等级的数据发送给所述数据接收方;
将所述第二目标数据中的所有数据中的第三权限等级小于等于所述第二权限等级的数据发送给所述数据接收方。
8.一种基于大数据的数据同步装置,其特征在于,应用于电子设备,所述电子设备与多个关系型数据库通信,所述装置至少包括:
读取模块,用于从每个关系型数据库中读取每个关系型数据库对应的增量日志;
同步模块,用于将读取到的每个关系型数据库对应的增量日志同步至开源流处理平台;
检测模块,用于检测所述开源流处理平台中的所有增量日志中是否存在更新的第一目标增量日志,在所述开源流处理平台中所述增量日志中存在所述第一目标增量日志时,拉取所述第一目标增量日志在所述第一目标增量日志对应的关系型数据库中的第一增量数据并拉取所述开源流处理平台中除所述第一目标增量日志之外的第二目标增量日志对应的关系型数据库中的第二增量数据;
转换模块,用于在所述开源流处理平台中将所述第一增量数据的第一数据格式和所述第二增量数据的第二数据格式转换为设定数据格式,以得到所述第一增量数据对应的第一目标数据以及所述第二增量数据对应的第二目标数据;其中,所述第一目标增量数据和所述第二目标增量数据为同步之后的数据;
输出模块,用于将所述第一目标数据和所述第二目标数据进行输出。
9.一种电子设备,其特征在于,包括处理器以及与所述处理器连接的存储器和总线;其中,所述处理器和所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述权利要求1-7任一项所述的基于大数据的数据同步方法。
10.一种可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时实现上述权利要求1-7任一项所述的基于大数据的数据同步方法。
技术总结