System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,特别是涉及一种数据同步方法、装置、电子设备和存储介质。
技术介绍
1、在数据同步任务中,hbase(非关系型分布式数据库)一般是重要的目标源,例如将数据从其它数据库同步到hbase,是常见的需求。在将数据同步到hbase的过程中,通常通过hbase的put操作实现数据的写入,其中,所述put操作用于向指定的hbase表中插入一行数据或更新已存在的行数据。然而,每一条put操作所操作的数据有限,无法实现批量数据的同步。
2、现有技术中,通常使用importtsv工具(hbase提供的一个命令行工具)来进行批量数据的同步。但是importtsv工具无法正确处理作为字段分隔符的转义字符,例如,importtsv工具有时会将转义字符识别为普通字符,以及当设定指定字符为分隔字符时,将数据中作为普通字符的指定字符识别为分隔字符,因此,现有的批量同步方法存在影响数据同步的准确性和完整性的情况。
3、因此,如何实现在数据批量同步时兼顾数据同步的准确性和完整性,成为亟需解决的问题。
技术实现思路
1、本申请实施例的目的在于提供一种数据同步方法、装置、电子设备和存储介质,以实现在数据批量同步时兼顾数据同步的准确性和完整性。具体技术方案如下:
2、第一方面,本申请提供了一种数据同步方法,应用于数据同步工具,所述方法包括:
3、从目标数据源获取待同步数据;
4、将所述待同步数据按orc文件格式写入到hadoop集群的hdfs中
5、调用预设的文件转换工具,以将所述指定目录中的所述目标orc文件,转换为目标hfile文件;其中,所述目标hfile文件中存储有所述待同步数据,且所述目标hfile文件中所包括的字段与目标表中的字段相同,所述目标表为预先确定的在hbase集群中用于同步所述待同步数据的数据表;
6、调用所述hbase集群的预定加载工具,以将所述目标hfile文件的数据加载到hbase集群的所述目标表中。
7、可选的,所述调用预设的文件转换工具,以将所述指定目录中的所述目标orc文件,转换为目标hfile文件之前,所述方法还包括:
8、获取用户输入的命令行参数;其中,所述命令行参数的参数内容包括所述指定目录中的所述目标orc文件的文件路径、目标存储地址、所述目标表的表名以及所述目标orc文件的字段信息;所述目标存储地址表征所述目标hfile文件在所述hdfs上存放的地址;
9、所述调用预设的文件转换工具,以将所述指定目录中的所述目标orc文件,转换为目标hfile文件,包括:
10、调用预设的文件转换工具,以解析所述命令行参数,得到所述参数内容,基于所述参数内容,配置mapreduce作业,并将所述mapreduce作业提交至hadoop集群,以使得所述hadoop集群中的预设数据转换模块执行所述mapreduce作业,以将所述指定目录中的所述目标orc文件,转换为目标hfile文件;
11、其中,所述mapreduce作业的作业参数包括所述文件路径、所述目标存储地址、所述目标表的表名以及所述目标orc文件的字段信息;
12、所述预设数据转换模块执行所述mapreduce作业的过程包括:
13、基于所述文件路径,从所述hdfs的所述指定目录中读取所述目标orc文件,并解析所读取到的所述目标orc文件,得到所述目标orc文件中的每一行数据;
14、基于目标映射关系,确定所述目标orc文件中的每一行数据对应的目标行数据,并基于各条目标行数据,生成目标hfile文件并存储于所述目标存储地址;所述目标映射关系为依据所述目标orc文件的数据结构和所述目标表的数据结构,确定的所述目标orc文件的各字段和各指定字段的映射关系;所述目标orc文件的数据结构和各字段为基于所述目标orc文件的字段信息确定出的;各指定字段为基于所述表名所确定出的目标表中的各字段;所述目标表的数据结构为基于所述表名所确定出的;
15、其中,每一行数据对应的目标行数据为按照所述目标映射关系将该行数据的各字段的字段值,映射到相应指定字段后所得到的、用于写入所述目标表的行数据。
16、可选的,其中,各指定字段中包括所述目标表中的行键,以及,所述目标表中的除所述行键以外的其他各字段,所述行键用于唯一标识目标表中的行数据;
17、所述将所述待同步数据按orc文件格式写入到hadoop集群的hdfs中的指定目录,以在所述hdfs中生成目标orc文件包括:
18、针对所述待同步数据中的每一行数据,基于所述目标表的行键规则,生成该行数据对应的行键的键值;
19、将每一行数据对应的行键的键值和所述待同步数据,以orc文件格式写入到hadoop集群的hdfs中的指定目录,以在所述hdfs中生成目标orc文件。
20、可选的,其中,各指定字段包括所述目标表的除行健以外的各个字段,所述行键用于唯一标识目标表中的行数据;
21、所述预设数据转换模块解析所读取到的所述目标orc文件,得到所述目标orc文件中的每一行数据后,
22、针对所述目标orc文件中的每一行数据,基于所述目标表的行键规则,生成该行数据对应的行键的键值;
23、所述基于目标映射关系,确定所述目标orc文件中的每一行数据对应的目标行数据包括:
24、基于目标映射关系,将所述目标orc文件中的每一行数据的各字段的字段值,映射到相应指定字段,得到每一行数据对应的映射结果;
25、基于每一行数据对应的映射结果和每一行数据对应的行键的键值,生成每一行数据对应的目标行数据。
26、可选的,所述调用所述hbase集群的预定加载工具,以将所述目标hfile文件的数据加载到hbase集群的所述目标表中包括:
27、调用所述hbase集群的预定加载工具,以基于所述目标表的分区规则,确定所述目标hfile文件中各行数据对应的至少一个目标区域,针对每一目标区域,将所述目标hfile文件发送到所述hbase集群中该目标区域对应的目标服务器,以使所述目标服务器将所述目标hfile文件中对应于该目标区域的各个行数据,加载到该目标区域中;
28、其中,所述分区规则定义了行键与所述目标区域的对应关系,每一目标分区负责存储所述目标表中的一部分数据。
29、可选的,在调用所述hbase集群的预定加载工具,以将所述目标hfile文件的数据加载到hbase集群的所述目标表中之后,所述方法还包括:
30、向hdfs发送第一删除指令,以将所述hdfs中存储的所述目标orc文件删除;
31、和/或,
32、向hbase集群发送第二删除指令,以将所述hbase集群中存储的所述hfile文件删除。
33、第本文档来自技高网...
【技术保护点】
1.一种数据同步方法,其特征在于,应用于数据同步工具,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述调用预设的文件转换工具,以将所述指定目录中的所述目标ORC文件,转换为目标HFile文件之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,其中,各指定字段中包括所述目标表中的行键,以及,所述目标表中的除所述行键以外的其他各字段,所述行键用于唯一标识目标表中的行数据;
4.根据权利要求2所述的方法,其特征在于,其中,各指定字段包括所述目标表的除行健以外的各个字段,所述行键用于唯一标识目标表中的行数据;
5.根据权利要求1所述的方法,其特征在于,所述调用所述HBase集群的预定加载工具,以将所述目标HFile文件的数据加载到HBase集群的所述目标表中包括:
6.根据权利要求1所述的方法,其特征在于,在调用所述HBase集群的预定加载工具,以将所述目标HFile文件的数据加载到HBase集群的所述目标表中之后,所述方法还包括:
7.一种数据同步装置,其特征在于,应用于数据同步工具,所
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法。
...【技术特征摘要】
1.一种数据同步方法,其特征在于,应用于数据同步工具,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述调用预设的文件转换工具,以将所述指定目录中的所述目标orc文件,转换为目标hfile文件之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,其中,各指定字段中包括所述目标表中的行键,以及,所述目标表中的除所述行键以外的其他各字段,所述行键用于唯一标识目标表中的行数据;
4.根据权利要求2所述的方法,其特征在于,其中,各指定字段包括所述目标表的除行健以外的各个字段,所述行键用于唯一标识目标表中的行数据;
5.根据权利要求1所述的方法,其特征在于,所述调用所述hbase集群的预定加载工具,以将所述目标hfile文...
【专利技术属性】
技术研发人员:宋福健,张建涛,许哲,马丽霞,
申请(专利权)人:中信建投证券股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。