一种非结构化数据的数据同步方法和装置制造方法及图纸

技术编号:37261134 阅读:14 留言:0更新日期:2023-04-20 23:35
本发明专利技术涉及一种非结构化数据的数据同步方法和装置,该方法包括:将非结构化数据写入MongoDB和Elasticsearch中;在Hive或者Doris中创建与MongoDB或Elasticsearch中第一数据表相对应的第二数据表;解析需要结构化的字段,并存储到第一列表中;从MongoDB或Elasticsearch中读取第一数据表中的目标数据,将目标数据中的目标字段存储到第二列表中,并将目标数据中必须存在的字段存储到第三列表中;将第二列表中的数据写入到指定文件中;执行指定文件,将数据同步至Hive或Doris中。通过本申请,解决了相关技术中需要同步的非结构化数据的数据量大,人工编写结构化同步代码,导致数据同步效率较低的问题,实现了提高数据同步效率的效果。高数据同步效率的效果。高数据同步效率的效果。

【技术实现步骤摘要】
一种非结构化数据的数据同步方法和装置


[0001]本专利技术涉及数据处理
,尤其涉及一种非结构化数据的数据同步方法、装置、计算机设备和计算机可读存储介质。

技术介绍

[0002]相关技术中的非结构化数据同步流程可以包括:将获取到的非结构化数据写入MongoDB和Elasticsearch;然后开发人员查看需求,确定解析字段,逐个字段解析,利用python手动编写代码;然后执行人工编写的代码,将需要及时分析的数据写入到Doris中,其他都写入到Hive中。
[0003]上述非结构数据数据同步流程存在以下问题:
[0004]1、需要从MongoDB和Elasticsearch同步的表非常多,达到五百多张表,每一张表的结构,需要结构化的字段都不一样,人工编写结构化同步代码工作量非常大,效率非常低,周期特别长。
[0005]2、确定每一张表需要解析的字段是人工手动查看确定,人工处理很容易出现字段写错或者逻辑问题,如果没有发现可能会有无法预估的问题或者经济损失。
[0006]目前,针对相关技术中需要同步的非结构化数据的数据量大,人工编写结构化同步代码,导致数据同步效率较低的问题,尚未提出有效的解决方案。

技术实现思路

[0007]本申请的目的是针对现有技术中的不足,提供一种非结构化数据的数据同步方法、装置、计算机设备和计算机可读存储介质,以至少解决相关技术中需要同步的非结构化数据的数据量大,人工编写结构化同步代码,导致数据同步效率较低的问题。
[0008]为实现上述目的,本申请采取的技术方案是:
[0009]第一方面,本申请实施例提供了一种非结构化数据的数据同步方法,包括:
[0010]将非结构化数据写入MongoDB和Elasticsearch中,其中,所述MongoDB或Elasticsearch中包括第一数据表;
[0011]在Hive或者Doris中创建与所述第一数据表相对应的第二数据表,其中,所述第二数据表中包括需要结构化的字段;
[0012]解析所述需要结构化的字段,并存储到第一列表中;
[0013]从MongoDB或Elasticsearch中读取所述第一数据表中的目标数据,将所述目标数据中的目标字段存储到第二列表中,并将所述目标数据中必须存在的字段存储到第三列表中,其中,所述目标字段为键值在所述第一列表中存在的数据字段;
[0014]将所述第二列表中的数据写入到指定文件中;
[0015]执行所述指定文件,将数据同步至Hive或Doris中。
[0016]在其中一些实施例中,解析所述需要结构化的字段,并存储到第一列表中包括:
[0017]通过python提供的pyhive包或者pymysql包,从Hive或者Doris中读取所述第二数
据表的schema,以获取所述需要结构化的字段;
[0018]将所述需要结构化的字段存储到所述第一列表中。
[0019]在其中一些实施例中,在将所述目标数据中必须存在的字段存储到第三列表中之后,还包括:
[0020]判断所述必须存在的字段是否能够获取到;
[0021]若所述必须存在的字段能获取到,则执行所述将所述第二列表中的数据写入到指定文件中的步骤;
[0022]若所述必须存在的字段不能获取到,则结束数据同步操作。
[0023]在其中一些实施例中,将非结构化数据写入MongoDB和Elasticsearch中包括:
[0024]将系统执行日志以非结构化的形式写入到Elasticsearch中;
[0025]将除所述系统执行日志以外的非结构化数据写入到MongoDB中。
[0026]第二方面,本申请实施例提供了一种非结构化数据的数据同步装置,包括:
[0027]第一写入单元,用于将非结构化数据写入MongoDB和Elasticsearch中,其中,所述MongoDB或Elasticsearch中包括第一数据表;
[0028]创建单元,用于在Hive或者Doris中创建与所述第一数据表相对应的第二数据表,其中,所述第二数据表中包括需要结构化的字段;
[0029]解析单元,用于解析所述需要结构化的字段,并存储到第一列表中;
[0030]处理单元,用于从MongoDB或Elasticsearch中读取所述第一数据表中的目标数据,将所述目标数据中的目标字段存储到第二列表中,并将所述目标数据中必须存在的字段存储到第三列表中,其中,所述目标字段为键值在所述第一列表中存在的数据字段;
[0031]第二写入单元,用于将所述第二列表中的数据写入到指定文件中;
[0032]同步单元,用于执行所述指定文件,将数据同步至Hive或Doris中。
[0033]在其中一些实施例中,所述解析单元包括:
[0034]读取模块,用于通过python提供的pyhive包或者pymysql包,从Hive或者Doris中读取所述第二数据表的schema,以获取所述需要结构化的字段;
[0035]存储模块,用于将所述需要结构化的字段存储到所述第一列表中。
[0036]在其中一些实施例中,还包括:
[0037]判断单元,用于在将所述目标数据中必须存在的字段存储到第三列表中之后,判断所述必须存在的字段是否能够获取到;
[0038]执行单元,用于若所述必须存在的字段能获取到,则执行所述将所述第二列表中的数据写入到指定文件中的步骤;
[0039]结束单元,用于若所述必须存在的字段不能获取到,则结束数据同步操作。
[0040]在其中一些实施例中,所述第一写入单元包括:
[0041]第一写入模块,用于将系统执行日志以非结构化的形式写入到Elasticsearch中;
[0042]第二写入模块,用于将除所述系统执行日志以外的非结构化数据写入到MongoDB中。
[0043]第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的非结构化数据的数据同步方法。
[0044]第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的非结构化数据的数据同步方法。
[0045]本申请采用以上技术方案,与现有技术相比,本申请实施例提供的非结构化数据的数据同步方法,通过将非结构化数据写入MongoDB和Elasticsearch中,其中,所述MongoDB或Elasticsearch中包括第一数据表;在Hive或者Doris中创建与所述第一数据表相对应的第二数据表,其中,所述第二数据表中包括需要结构化的字段;解析所述需要结构化的字段,并存储到第一列表中;从MongoDB或Elasticsearch中读取所述第一数据表中的目标数据,将所述目标数据中的目标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种非结构化数据的数据同步方法,其特征在于,包括:将非结构化数据写入MongoDB和Elasticsearch中,其中,所述MongoDB或Elasticsearch中包括第一数据表;在Hive或者Doris中创建与所述第一数据表相对应的第二数据表,其中,所述第二数据表中5包括需要结构化的字段;解析所述需要结构化的字段,并存储到第一列表中;从MongoDB或Elasticsearch中读取所述第一数据表中的目标数据,将所述目标数据中的目标字段存储到第二列表中,并将所述目标数据中必须存在的字段存储到第三列表中,其中,所述目标字段为键值在所述第一列表中存在的数据字段;0将所述第二列表中的数据写入到指定文件中;执行所述指定文件,将数据同步至Hive或Doris中。2.根据权利要求1所述的非结构化数据的数据同步方法,其特征在于,解析所述需要结构化的字段,并存储到第一列表中包括:通过python提供的pyhive包或者pymysql包,从Hive或者Doris中读取所述第二数据表的5schema,以获取所述需要结构化的字段;将所述需要结构化的字段存储到所述第一列表中。3.根据权利要求1所述的非结构化数据的数据同步方法,其特征在于,在将所述目标数据中必须存在的字段存储到第三列表中之后,还包括:判断所述必须存在的字段是否能够获取到;0若所述必须存在的字段能获取到,则执行所述将所述第二列表中的数据写入到指定文件中的步骤;若所述必须存在的字段不能获取到,则结束数据同步操作。4.根据权利要求1至3中任一项所述的非结构化数据的数据同步方法,其特征在于,将非结构化数据写入MongoDB和Elasticsearch中包括:5将系统执行日志以非结构化的形式写入到Elasticsearch中;将除所述系统执行日志以外的非结构化数据写入到MongoDB中。5.一种非结构化数据的数据同步装置,其特征在于,包括:第一写入单元,用于将非结构化数据写入MongoDB和Elasticsearch中,其中,所述MongoDB或Elasticsearch中包括第一数据表;创建单元,用于在Hive或者Dori...

【专利技术属性】
技术研发人员:陈秋石杨佳文
申请(专利权)人:上海旭荣网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1