【技术实现步骤摘要】
一种避免数据重复的方法、装置、设备及介质
[0001]本申请涉及大数据计算
,具体涉及一种避免数据重复的方法、装置、设备及介质。
技术介绍
[0002]通常情况下基于单一数据引擎来对Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)上的数据进行更新、插入、删除等。Hudi作为一种数据湖的存储格式,在HDFS之上提供了更新数据和删除数据的能力以及消费变化数据的能力。
[0003]但是,在一种使用多个引擎写入数据的特殊业务场景下,使用实时流处理数据引擎将按照特定顺序(如事件发生的顺序)获取到的流式数据经过实时处理后写入Hudi数据湖中,然后会使用批处理数据引擎对一些被实时流处理数据引擎遗漏的数据或者需要更新的数据进行批处理后也写入Hudi数据湖。
[0004]对于多引擎写入数据的特殊业务场景,以数据D1为例,这中间会出现几种情况:
[0005]1)实时流处理数据引擎成功将D1写入,批处理数据引擎执行批处理不包括写入D1,则该场景在进行读取查询时不会出现数据重复。
[0006]2)实时流处理数据引擎成功将D1写入,批处理数据引擎执行批处理包括写入D1,该场景下批处理数据引擎处理的D1数据同数据湖里已存在的D1数据完全一致时,会在数据湖中再次写入D1数据,导致在进行读取查询时出现重复数据。
[0007]3)实时流处理数据引擎未成功将D1写入,不存在数据重复。
[0008]针对上述第二种场景下,需要提出一种如何避免在数据湖中 ...
【技术保护点】
【技术特征摘要】
1.一种避免数据重复的方法,其特征在于,所述方法包括:利用多个数据搜索引擎进行数据搜索,得到各数据搜索引擎对应的数据源文件;响应于目录索引确定指令,调用预先为各数据搜索引擎设置的目录索引确定单元解析所述数据源文件,生成各数据源文件对应的目录索引,其中,为各数据搜索引擎设置的目录索引确定单元的解析规则相同;调用各个数据搜索引擎根据确定的数据源文件对应的目录索引,将所述数据源文件写入与所述目录索引对应的数据存储单元。2.根据权利要求1所述的方法,其特征在于,所述目录索引包括桶分区标识Bucket id和文件组标识File id,所述方法还包括:响应于数据读取指令,确定读取的数据源文件所在的Bucket和File Group,基于各数据源文件的数据写入类型,调用各个数据搜索引擎读取Bucket id和Fileid索引到的数据源文件。3.根据权利要求1所述的方法,其特征在于,利用多个数据搜索引擎进行数据搜索,包括:响应于实时数据写入指令,利用实时流处理数据搜索引擎,按照特定顺序从前端服务器实时获取实时数据对应的数据源文件;响应于延时数据写入指令,利用批处理数据搜索引擎,从后台存储空间获取延时数据对应的数据源文件。4.根据权利要求1所述的方法,其特征在于,预先设置一个独立于各数据搜索引擎的目录索引确定单元,作为各数据搜索引擎共用的目录索引确定单元;或者预先在各个数据搜索引擎中设置对应的目录索引确定单元。5.根据权利要求1或2所述的方法,其特征在于,调用预先为各数据搜索引擎设置的目录索引确定单元解析所述数据源文件,确定各数据源文件对应的目录索引,包括:调用预先为各数据搜索引擎设置的目录索引确定单元,按照预设的哈希算法解析所述数据源文件的属性信息,生成各数据源文件对应的目录索引。6.根据权利要求2所述的方法,其特征在于,所述Bucket id用于标识所述数据源文件对应的数据存储单元所处的桶分区,所述File id用于标识所述数据源文件在所属桶分区中对应的文件组File Group,一个桶分区包括多个文件组File Group。7.根据权利要求1所述的方法,其特征在于,生成各数据源文件对应的目录索引之后,还包括:将各数据源文件对应的目录索引保存在内存变量中;调用各个数据搜索引擎确定数据源文件对应的目录索引,包括:调用各个数据搜索引擎访问内存变量,确定各数据源文件对应的目录索引。8.根据权利要求6所述的方法,其特征在于,基于各数据源文件的数据写入类型,调用各个数据搜索引擎根据确定的数据源文件对应的目录索引,将所述数据源文件写入与所述目录索引对应的数据存储单元,包括:确定所述数据源文件的数据写入类型为写时复制COW时,调用对应的数据搜索引擎将所述数据源文件作为文件片File Slice,以基本文件Base File的格式,写入Bucket id和
...
【专利技术属性】
技术研发人员:周明,
申请(专利权)人:建信金融科技有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。