将数据导入数据库的方法、装置、设备及计算机存储介质制造方法及图纸

技术编号:37774881 阅读:25 留言:0更新日期:2023-06-06 13:42
本申请公开了一种将数据导入数据库的方法、装置、设备及计算机存储介质,涉及数据库技术领域,该方法通过对待传输的目标数据文件进行分片处理,将每个分片文件作为一个传输任务,提升数据传输的并行程度,且在执行传输任务时,需要根据该任务的任务偏移量,定位至目标分片文件中的数据读取位置,并基于数据读取位置读取的数据,生成本批次的数据库导入指令,以将生成的数据库导入指令发送给目标数据库实现这些数据的导入,同时,更新任务偏移量以便后续能够知晓哪些数据已经传输,从而定位到后续的数据读取位置,从而实现了数据的断点重传功能,从而避免任务失败时就需要删除数据重新执行传输,提升了数据导入的效率。提升了数据导入的效率。提升了数据导入的效率。

【技术实现步骤摘要】
将数据导入数据库的方法、装置、设备及计算机存储介质


[0001]本申请涉及计算机
,尤其涉及数据库
,提供一种将数据导入数据库的方法、装置、设备及计算机存储介质。

技术介绍

[0002]随着大数据技术的普及,越来越多的企业引入大数据技术栈,并使用大数据技术对海量数据进行处理与挖掘,然后把计算结果传输给下游系统进行使用。
[0003]相关技术中,将计算结果提供给下游系统主要通过两种方式,一种方式是在获得计算结果数据后,将计算结果数据卸载到本地,并通过文件传输工具分发到下游系统,从而下游系统通过数据加载工具加载到数据库中,但是,这种方式导入到数据库的过程流程长,不仅容易出错并且时延较高。另一种方式是通过大数据技术栈直接写入到下游数据库,但是这种方式在写入下游系统的数据库的过程中,在中途失败时,为了数据的完整性,就必须先删除所有数据,再重头进行导入,这样会浪费大量时间,使得导入效率极低。

技术实现思路

[0004]本申请实施例提供一种将数据导入数据库的方法、装置、设备及计算机存储介质,用于实现数据导入数据库时的断点重传功能,提升数据导入的效率。
[0005]一方面,提供一种将数据导入数据库的方法,该方法包括:
[0006]基于预设的源数据存储路径,读取待导入的目标数据文件;
[0007]对所述目标数据文件进行分片处理,并基于获得的多个分片文件,更新传输任务列表;其中,在所述传输任务列表中,每个传输任务对应一个分片文件;
[0008]循环遍历所述传输任务列表,直至所述传输任务列表为空为止;其中,在每次遍历时读取一个传输任务,并分批次将所述传输任务对应的目标分片文件导入目标数据库中,每一个批次的导入过程包括:
[0009]根据相应的任务偏移量,定位至所述目标分片文件中的数据读取位置,并基于所述数据读取位置读取的数据,生成本批次的数据库导入指令;其中,所述任务偏移量用于指示所述目标分片文件中已完成导入的数据;
[0010]将生成的数据库导入指令发送给所述目标数据库,并更新所述任务偏移量。
[0011]一方面,提供一种将数据导入数据库的装置,所述装置包括:
[0012]数据读取单元,用于基于预设的源数据存储路径,读取待导入的目标数据文件;
[0013]分片处理单元,用于对所述目标数据文件进行分片处理,并基于获得的多个分片文件,更新传输任务列表;其中,在所述传输任务列表中,每个传输任务对应一个分片文件;
[0014]并行传输单元,用于循环遍历所述传输任务列表,直至所述传输任务列表为空为止;其中,在每次遍历时读取一个传输任务,并分批次将所述传输任务对应的目标分片文件导入目标数据库中,每一个批次的导入过程包括:
[0015]根据相应的任务偏移量,定位至所述目标分片文件中的数据读取位置,并基于所
述数据读取位置读取的数据,生成本批次的数据库导入指令;其中,所述任务偏移量用于指示所述目标分片文件中已完成导入的数据;
[0016]将生成的数据库导入指令发送给所述目标数据库,并更新所述任务偏移量。
[0017]在一种可能的实施方式中,所述数据读取单元,还用于:
[0018]响应于数据库导入操作,获得本次数据库导入任务所需的任务运行参数,所述任务运行参数包括数据源信息以及源数据操作信息;
[0019]基于所述数据源信息,确定待导入的数据源的数据源类型;
[0020]若所述数据源类型为内部数据源,且基于所述源数据操作信息,确定无需针对源数据进行数据库操作,则将所述内部数据源的存储路径更新为源数据存储路径;
[0021]若所述数据源类型为外部数据源,且基于所述源数据操作信息,确定无需针对源数据进行数据库操作,则从外部数据源中读取源数据,并存储至所述源数据存储路径。
[0022]在一种可能的实施方式中,所述数据读取单元,还用于:
[0023]若为内部数据源,且基于所述源数据操作信息确定需要针对源数据进行数据库操作,则从所述内部数据源读取源数据并执行所述数据库操作后,将操作后的源数据存储至所述内部数据源,并将内部数据源的存储路径更新为源数据存储路径;
[0024]若所述数据源类型为外部数据源,且基于所述源数据操作信息,确定无需针对源数据进行数据库操作,则从外部数据源中读取源数据并执行所述数据库操作后,将操作后的源数据存储至所述源数据存储路径。
[0025]在一种可能的实施方式中,所述源数据存储路径指示分布式文件系统的存储路径;则所述数据读取单元,具体用于:
[0026]通过大数据计算引擎,从所述外部数据源中读取源数据,并存储至所述分布式文件系统中。
[0027]在一种可能的实施方式中,所述分片处理单元,具体用于:
[0028]若指定了分片处理所需的基准字段,则基于所述目标数据文件中所述基准字段的取值,确定分片参考值;
[0029]若未指定分片处理所需的基准字段,则基于所述目标数据文件中的主键的取值,确定所述分片参考值;
[0030]基于所述分片参考值,以及指定的分片数量,确定所述目标数据文件进行分片处理时的分片划分点;
[0031]基于所述分片划分点,对所述目标数据文件进行分片处理,相应获得多个分片文件。
[0032]在一种可能的实施方式中,所述并行传输单元,具体用于:
[0033]在每次遍历时读取一个传输任务,并将所述传输任务添加至任务执行池中;
[0034]通过多个并行传输线程中空闲的目标进程,从所述任务执行池读取待执行的传输任务,并分批次将所述传输任务对应的目标分片文件导入目标数据库中。
[0035]在一种可能的实施方式中,所述并行传输单元,具体用于:
[0036]根据相应的任务偏移量,定位至所述目标分片文件中的数据读取位置;
[0037]确定所述数据读取位置是否为所述目标分片文件的末尾;
[0038]若非末尾,则基于所述数据读取位置依次读取数据,且每读取一次数据,则基于读
取的数据,生成本批次的数据库导入指令;
[0039]则将生成的数据库导入指令发送给所述目标数据库,包括:
[0040]则若生成的数据库导入指令的数量达到本批次的数量上限值,则将生成的数据库导入指令发送给所述目标数据库。
[0041]在一种可能的实施方式中,所述并行传输单元,具体用于:
[0042]若为末尾,确定所述更新传输任务列表中是否还有未完成的传输任务;
[0043]若不存在,则将本次数据库导入任务的任务状态更新为成功状态;
[0044]若存在,则继续读取新的传输任务,并将所述新的传输任务添加至任务执行池中。
[0045]在一种可能的实施方式中,所述并行传输单元,还用于:
[0046]若本次数据库导入任务失败,则输出任务失败指示;
[0047]响应于针对所述任务失败指示发起的重传指示,则从所述传输任务列表中继续读取传本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种将数据导入数据库的方法,其特征在于,所述方法包括:基于预设的源数据存储路径,读取待导入的目标数据文件;对所述目标数据文件进行分片处理,并基于获得的多个分片文件,更新传输任务列表;其中,在所述传输任务列表中,每个传输任务对应一个分片文件;循环遍历所述传输任务列表,直至所述传输任务列表为空为止;其中,在每次遍历时读取一个传输任务,并分批次将所述传输任务对应的目标分片文件导入目标数据库中,每一个批次的导入过程包括:根据相应的任务偏移量,定位至所述目标分片文件中的数据读取位置,并基于所述数据读取位置读取的数据,生成本批次的数据库导入指令;其中,所述任务偏移量用于指示所述目标分片文件中已完成导入的数据;将生成的数据库导入指令发送给所述目标数据库,并更新所述任务偏移量。2.如权利要求1所述的方法,其特征在于,在所述基于预设的源数据存储路径,读取待导入的目标数据文件之前,所述方法还包括:响应于数据库导入操作,获得本次数据库导入任务所需的任务运行参数,所述任务运行参数包括数据源信息以及源数据操作信息;基于所述数据源信息,确定待导入的数据源的数据源类型;若所述数据源类型为内部数据源,且基于所述源数据操作信息,确定无需针对源数据进行数据库操作,则将所述内部数据源的存储路径更新为源数据存储路径;若所述数据源类型为外部数据源,且基于所述源数据操作信息,确定无需针对源数据进行数据库操作,则从外部数据源中读取源数据,并存储至所述源数据存储路径。3.如权利要求2所述的方法,其特征在于,在所述基于所述数据源信息,确定待导入的数据源的数据源类型之后,所述方法还包括:若为内部数据源,且基于所述源数据操作信息确定需要针对源数据进行数据库操作,则从所述内部数据源读取源数据并执行所述数据库操作后,将操作后的源数据存储至所述内部数据源,并将内部数据源的存储路径更新为源数据存储路径;若所述数据源类型为外部数据源,且基于所述源数据操作信息,确定无需针对源数据进行数据库操作,则从外部数据源中读取源数据并执行所述数据库操作后,将操作后的源数据存储至所述源数据存储路径。4.如权利要求2所述的方法,其特征在于,所述源数据存储路径指示分布式文件系统的存储路径;则所述从外部数据源中读取源数据,并存储至所述源数据存储路径,包括:通过大数据计算引擎,从所述外部数据源中读取源数据,并存储至所述分布式文件系统中。5.如权利要求1所述的方法,其特征在于,所述对所述目标数据文件进行分片处理,包括:若指定了分片处理所需的基准字段,则基于所述目标数据文件中所述基准字段的取值,确定分片参考值;若未指定分片处理所需的基准字段,则基于所述目标数据文件中的主键的取值,确定所述分片参考值;
基于所述分片参考值,以及指定的分片数量,确定所述目标数据文件进行分片处理时的分片划分点;基于所述分片划分点,对所述目标数据文件进行分片处理,相应获得多个分片文件。6.如权利要求1~5任一所述的方法,其特征在于,在每次遍历时读取一个传输任务,并分批次将所述传输任务对应的目标分片文件导入目标数据库中,包括:在每次遍历时读取一个...

【专利技术属性】
技术研发人员:蒋松
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:

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

1