System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据同步,尤其涉及一种json数据同步方法、装置、存储介质和数据同步设备。
技术介绍
1、面对从接口或埋点同步到数据库的json数据,通常只能将整个json串存储在单一字段中,然后借助sql语句来解析json并提取出必要的字段。这个过程根据json的复杂性,往往需要我们编写大量sql代码,工作量极其繁重。另一方面,有些json数据本身体积巨大,对于只需取用其中一两个关键参数的需求,全部存储json数据显然会导致很多无谓的存储消耗。
2、seatunnel是一种数据同步工具,该数据同步工具包括数据源、目标端、数据处理引擎和table api,其中,数据源用于从各种数据源中读取数据,包含了目前所有常见的数据库,湖和仓库,以及国内外的saas服务。目标端主要负责写入数据,目标端包含了目前常见的数据库、湖、仓,以及国内外的saas服务。数据处理引擎用于使用自己的引擎seatunnelengine同步数据。table api基于table api上层用户可以做web端或者以table api的形式创建应用。
3、目前,利用seatunnel进行json数据同步仍然存在工作量较大的问题。
技术实现思路
1、本申请的主要目的在于提供一种json数据同步方法、装置、存储介质和数据同步设备,旨在解决在同步json数据时,借助sql语句提取有用的json数据并进行同步的工作量较大的技术问题。
2、为实现上述目的,本申请提供一种json数据同步方法,包括:获
3、可选地,在获取源数据库中保存的包含json对象的json数据之前,所述json数据同步方法还包括:响应于数据同步请求,在实时数据集成管道组件中加入扩展的jsonpath组件,获得所述预配置的实时数据集成管道组件。
4、可选地,所述利用预配置的实时数据集成管道组件处理所述json对象,获得所述json对象每一层的第一键值对组和所述第一键值对组的每个值对应的路径名称,以及第二键值对组和第二键值对组的每个所述值对应的路径名称,包括:利用预构建的第一jsonpath表达式处理所述json对象,获得所述json对象的第一层的所有键值对,根据第一层的所有所述键值对得到所述第一键值对组和所述第二键值对组;利用预构建的第二jsonpath表达式处理所述第一键值对组和第二键值对组,得到所述第一键值对组和所述第二键值对组包含的所有键元素和每个所述键元素对应的值;利用预构建的第三jsonpath表达式获得每个所述键元素对应的值的路径名称。
5、可选地,所述根据一一对应的所述第一子json数据流和所述第二子json数据流确定目标数据流并输出,包括:拼接一一对应的所述第一子json数据流和所述第二子json数据流得到json数据流;根据预构建的过滤规则处理所述json数据流,得到目标数据流;向目标数据库输出所述目标数据流。
6、可选地,所述根据预构建的过滤规则处理所述json数据流,得到目标数据流,包括:解析所述json数据流,获得所述json数据流中的多个键值对数据;利用预构建的过滤规则过滤所述多个所述键值对数据,得到多个剩余键值对数据;按照预设的第一组合规则组合所述多个所述剩余键值对数据得到目标数据流。
7、可选地,所述获取所述json数组的每一个所述json对象的值和路径名称,并利用每一个所述json对象的所述值和所述路径名称构建对应的第一子json数据流,包括:获取所述json数组的每一个所述json对象的值;基于每一个各json对象的值获得对应的路径名称;基于各json对象的每一个所述值和所述值对应的路径名称,创建对应的第三键值对;根据预设的第二组合规则组合多个所述第三键值对,得到所述json对象对应的所述第一子json数据流。
8、可选地,所述获取源数据库中保存的包含json对象的json数据,包括:利用所述实时数据集成管道组件的输入模块组获取源数据库文件系统上保存的json文件;解析所述json文件得到所述json数据。
9、8、一种json数据同步装置,其特征在于,包括:
10、数据获取模块,用于获取源数据库中保存的包含json对象的json数据;
11、处理模块,用于利用预配置的实时数据集成管道组件处理所述json对象,获得所述json对象每一层的第一键值对组、第二键值对组和每个值对应的路径名称,其中,所述第一键值对组包括具有多个json对象的json数组,第二键值对组包括除json数组之外的所有其他键值对;
12、第一子数据流生成模块,用于获取所述第一键值对组的每个所述json对象的值和路径名称,并利用所述值和所述路径名称生成每个所述json对象的第一子json数据流;
13、第二子数据流生成模块,用于获取所述第二键值对组的值和路径名称,根据所述第二键值对组的所述值和所述路径名称构建第二子json数据流,并所述第一子json数据流的数量,复制相同数量的第二子json数据流;
14、输出模块,用于根据一一对应的所述第一子json数据流和所述第二子json数据流确定目标数据流并输出。
15、此外,为实现上述目的,本申请还提供一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述任一项所述的json数据同步方法。
16、此外,为实现上述目的,本申请还提供一种数据同步设备,所述数据同步设备包括:至少一个处理器、存储器和输入输出单元;其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行根据上述任一项所述的json数据同步方法。本申请实施例提出的一种json数据同步方法、装置、存储介质和数据同步设备,该方法通过获取源数据库中保存的包含json对象的json数据;利用预配置的实时数据集成管道组件处理json对象,获得json对象每一层的第一键值对组和第一键值对组的每个值对应的路径名称,以及第二键值对组和第二键值对组的每个值对应的路径名称,其中,第一键值对组包括具有多个json本文档来自技高网...
【技术保护点】
1.一种JSON数据同步方法,其特征在于,包括:
2.如权利要求1所述的一种JSON数据同步方法,其特征在于,在获取源数据库中保存的包含JSON对象的JSON数据之前,所述JSON数据同步方法还包括:
3.如权利要求2所述的一种JSON数据同步方法,其特征在于,所述利用预配置的实时数据集成管道组件处理所述JSON对象,获得所述JSON对象每一层的第一键值对组和所述第一键值对组的每个值对应的路径名称,以及第二键值对组和第二键值对组的每个所述值对应的路径名称,包括:
4.如权利要求1所述的一种JSON数据同步方法,其特征在于,所述根据一一对应的所述第一子JSON数据流和所述第二子JSON数据流确定目标数据流并输出,包括:
5.如权利要求4所述的一种JSON数据同步方法,其特征在于,所述根据预构建的过滤规则处理所述JSON数据流,得到目标数据流,包括:
6.如权利要求1所述的一种JSON数据同步方法,其特征在于,所述获取所述JSON数组的每一个所述JSON对象的值和路径名称,并利用每一个所述JSON对象的所述值和所述路径名称构
7.如权利要求1所述的一种JSON数据同步方法,其特征在于,所述获取源数据库中保存的包含JSON对象的JSON数据,包括:
8.一种JSON数据同步装置,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,其包括指令,当其在计算机上运行时,使得计算机执行权利要求1~7中的任一项所述的JSON数据同步方法。
10.一种数据同步设备,其特征在于,所述数据同步设备包括:
...【技术特征摘要】
1.一种json数据同步方法,其特征在于,包括:
2.如权利要求1所述的一种json数据同步方法,其特征在于,在获取源数据库中保存的包含json对象的json数据之前,所述json数据同步方法还包括:
3.如权利要求2所述的一种json数据同步方法,其特征在于,所述利用预配置的实时数据集成管道组件处理所述json对象,获得所述json对象每一层的第一键值对组和所述第一键值对组的每个值对应的路径名称,以及第二键值对组和第二键值对组的每个所述值对应的路径名称,包括:
4.如权利要求1所述的一种json数据同步方法,其特征在于,所述根据一一对应的所述第一子json数据流和所述第二子json数据流确定目标数据流并输出,包括:
5.如权利要求4所述的一种json数据同步方法,其特征...
【专利技术属性】
技术研发人员:吴生勇,梁尧博,曹茜,刘恒,苏德财,罗杰,
申请(专利权)人:成都虚谷伟业科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。