数据入数据库的方法、装置和计算机设备制造方法及图纸

技术编号:25396285 阅读:31 留言:0更新日期:2020-08-25 23:01
本申请揭示了数据入数据库的方法,包括:获取待拆分的第一文件对应的特征值;获取数据库中的数据分区数量,并依据第一文件对应的特征值以及所述数据库中的数据分区数量,计算第一文件的拆分模值;将第一文件拆分成指定数量的第二文件,并将各第二文件一一写入与拆分模值对应的数据分区的主机数据表内,形成携带数据的各子任务,其中,各子任务包括向数据库中数据分区导入数据,指定数量小于或等于数据库中的数据分区数量;控制任务注册域内各主机分别抓取各子任务,并通过各主机分别对应的线程通道,将各第二文件对应的数据分别导入数据库的数据分区。通过计算拆分模值,实现子文件与数据分区的对应,并行写入不同数据分区。

【技术实现步骤摘要】
数据入数据库的方法、装置和计算机设备
本申请涉及到计算机领域,特别是涉及到数据入数据库的方法、装置和计算机设备。
技术介绍
对账是银行交易系统中清算资金流程的重要环节,对账的效率也直接影响了资金清算作业的时效。面对日益增长的发卡用户数量及收单业务的不断拓展,对账系统接收到的对账清算文件也越来越大,数据量增长迅速,对目前对账系统的交易数据解析入账造成了很大的考验。以借记卡发卡交易为例,目前借记卡交易系统一天的交易量平均在180万到200万之间,对账系统每天对账清算流程中完成借记卡发卡交易的主机C/H文件及银联文件入库耗时在40分钟左右,随着业务量的增长,对账清算流程消耗在文件解析入库上的时间将对应成正比的上升,并且按照现有的对账文件解析入库模式,单机处理对服务器的运行压力也将越来越大,除了时间的增长外,服务器的高负荷运行也带来了很多不稳定因素,数据准确入库效率低。
技术实现思路
本申请的主要目的为提供数据入数据库的方法,旨在解决现有数据准确入库效率低,易受主机内存和运行能力限制的技术问题。本申请提出一种数据入数据库的方法,包括:获取待拆分的第一文件对应的特征值,以对所述第一文件进行平均分配;获取数据库中的数据分区数量,并依据所述第一文件对应的特征值以及所述数据库中的数据分区数量,计算所述第一文件的拆分模值;将所述第一文件拆分成指定数量的第二文件,并根据所述拆分模值将各所述第二文件一一写入与所述拆分模值对应的数据分区的主机数据表内,形成携带数据的各子任务,其中,各所述子任务包括向所述数据库中数据分区导入数据,所述指定数量小于或等于所述数据库中的数据分区数量;控制任务注册域内各主机分别抓取各所述子任务,并通过各所述主机分别对应的线程通道,将各所述第二文件对应的数据分别导入数据库的数据分区。优选地,所述特征值包括具有连续排布规律的文件编号,文件编号的指定末尾位置上的数字除以所述数据库中数据分区的数量,对应得到的指定余数作为所述拆分模值,所述将所述第一文件拆分成指定数量的第二文件,并根据所述拆分模值将各所述第二文件一一写入与所述拆分模值对应的数据分区的主机数据表内,形成携带数据的各子任务的步骤,包括:将第一子文件的文件编码的指定末尾位置上的数字除以所述数据库中数据分区的数量,得到的余数为第一余数,其中,所述第一子文件为所有所述第二文件中的任一文件;根据任务脚本获取所述第一余数对应的第一数据分区,其中,所述第一余数为所述指定余数中的任一余数,所述第一数据分区为所有所述数据分区中的任一数据分区;将所述第一子文件对应的数据导入与所述第一数据分区对应的主机数据表中形成第一子任务,其中,所述第一子任务包含于所有子任务中;根据所述第一子任务的形成过程,形成各所述第二文件分别对应的子任务。优选地,所述控制任务注册域内各主机分别抓取各所述子任务,并通过各所述主机分别对应的线程通道,将各所述第二文件对应的数据分别导入数据库的数据分区的步骤,包括:通过各所述主机抓取各所述子任务后形成任务队列;控制各所述主机按照所述任务队列依次调用服务器的文件解析组件进行文件解析;将解析后的各第二文件通过与各所述子任务分别对应的Redis订阅频道并发写入各所述数据分区。优选地,所述将解析后的各第二文件通过与各所述子任务分别对应的Redis订阅频道并发写入各所述数据分区的步骤之后,包括:接收各所述Redis订阅频道分别对应的运行记录;判断是否存在运行记录为运行失败的指定Redis订阅频道;若是,则控制所述指定Redis订阅频道重复运行;判断所述指定Redis订阅频道重复运行的次数是否超过预设次数;若是,则反馈所述指定Redis订阅频道对应的子任务失败,并标记所述指定Redis订阅频道对应的子任务中的第二文件;接收标记后的第二文件的修改内容,形成更改后的第二文件,重新运行所述指定Redis订阅频道对应的子任务,将更改后的第二文件写入数据库的数据分区,其中,重新运行时更改前后第二文件对应的数据分区相同。优选地,所述获取待拆分的第一文件对应的特征值的步骤之前,包括:判断指定文件的数据量是否大于预设数据量,其中,所述预设数据量为大文件对应的最低数量级;若是,则将所述指定文件的文件名后缀添加拆分标识符;确定拆分所述指定文件对应的特征值类型;根据所述指定文件对应的特征值类型,将各携带拆分标识符的指定文件添加至对应的文件拆分队列。优选地,所述任务注册域包括连接各主机的节点,所述控制任务注册域内各主机分别抓取各所述子任务,并通过各所述主机分别对应的线程通道,将各所述第二文件对应的数据分别导入数据库的数据分区的步骤之后,包括:判断所述任务注册域内各主机是否正常;若否,则标记出现异常的主机对应的节点信息,并排除所述异常的主机;判断排除所述异常的主机后,所述任务注册域内剩余主机数量是否满足所述数据分区的数量所需的主机数量;若否,则发出增加节点的提示,以增添主机。优选地,所述特征值包括文件数据量,所述文件数据量通过文件总行数表示,所述拆分模值等于文件总行数除以所述数据库中数据分区的数量,所得到的余数,所述将所述第一文件拆分成指定数量的第二文件,并根据所述拆分模值将各所述第二文件一一写入与所述拆分模值对应的数据分区的主机数据表内,形成携带数据的各子任务的步骤,包括:根据所述拆分模值确定第二子文件的理论总行数,其中,所述第二子文件包含于所有所述第二文件中;根据所述理论总行数确定所述第一文件的指定行,为所述第二子文件的终结行;判断所述终结行内是否包括终结符号;若否,则根据分别计算所述终结行与第一行的第一关联系数,以及所述终结行与第二行的第二关联系数,其中,与所述终结行相邻的前一行为所述第一行,与所述终结行相邻的后一行为所述第二行,x为所述终结行中关键字对应的向量,y为所述第一行或所述第二行中关键字的向量,r表示关联系数,n为(x,y)的成对数量,x、y分别为正数,n为大于1的自然数;若所述第一关联系数大于或等于所述第二关联系数,则以位于所述终结行之前的最近的终结符号作为所述第二子文件的终止处;若所述第一关联系数小于所述第二关联系数,则以位于所述终结行之后的最近的终结符号作为所述第二子文件的终止处。本申请还提供了一种数据入数据库的装置,包括:第一获取模块,用于获取待拆分的第一文件对应的特征值,以对所述第一文件进行平均分配;第二获取模块,用于获取数据库中的数据分区数量,并依据所述第一文件对应的特征值以及所述数据库中的数据分区数量,计算所述第一文件的拆分模值;拆分模块,用于将所述第一文件拆分成指定数量的第二文件,并根据所述拆分模值将各所述第二文件一一写入与所述拆分模值对应的数据分区的主机数据表内,形成携带数据的各子任务,其中,各所述子任务包括向所述数据库中数据分区导入数据,所述指定数量小于或本文档来自技高网...

【技术保护点】
1.一种数据入数据库的方法,其特征在于,包括:/n获取待拆分的第一文件对应的特征值,以对所述第一文件进行平均分配;/n获取数据库中的数据分区数量,并依据所述第一文件对应的特征值以及所述数据库中的数据分区数量,计算所述第一文件的拆分模值;/n将所述第一文件拆分成指定数量的第二文件,并将各所述第二文件一一写入与所述拆分模值对应的数据分区的主机数据表内,形成携带数据的各子任务,其中,各所述子任务包括向所述数据库中数据分区导入数据,所述指定数量小于或等于所述数据库中的数据分区数量;/n控制任务注册域内各主机分别抓取各所述子任务,并通过各所述主机分别对应的线程通道,将各所述第二文件对应的数据分别导入数据库的数据分区。/n

【技术特征摘要】
1.一种数据入数据库的方法,其特征在于,包括:
获取待拆分的第一文件对应的特征值,以对所述第一文件进行平均分配;
获取数据库中的数据分区数量,并依据所述第一文件对应的特征值以及所述数据库中的数据分区数量,计算所述第一文件的拆分模值;
将所述第一文件拆分成指定数量的第二文件,并将各所述第二文件一一写入与所述拆分模值对应的数据分区的主机数据表内,形成携带数据的各子任务,其中,各所述子任务包括向所述数据库中数据分区导入数据,所述指定数量小于或等于所述数据库中的数据分区数量;
控制任务注册域内各主机分别抓取各所述子任务,并通过各所述主机分别对应的线程通道,将各所述第二文件对应的数据分别导入数据库的数据分区。


2.根据权利要求1所述的数据入数据库的方法,其特征在于,所述特征值包括具有连续排布规律的文件编号,文件编号的指定末尾位置上的数字除以所述数据库中数据分区的数量,得到的指定余数作为所述拆分模值,所述将所述第一文件拆分成指定数量的第二文件,并将各所述第二文件一一写入与所述拆分模值对应的数据分区的主机数据表内,形成携带数据的各子任务的步骤,包括:
将第一子文件的文件编码的指定末尾位置上的数字除以所述数据库中数据分区的数量,得到的余数为第一余数,其中,所述第一子文件为所有所述第二文件中的任一文件;
根据任务脚本获取所述第一余数对应的第一数据分区,其中,所述第一余数为所述指定余数中的任一余数,所述第一数据分区为所有所述数据分区中的任一数据分区;
将所述第一子文件对应的数据导入与所述第一数据分区对应的主机数据表中形成第一子任务,其中,所述第一子任务包含于所有子任务中;
根据所述第一子任务的形成过程,形成各所述第二文件分别对应的子任务。


3.根据权利要求1所述的数据入数据库的方法,其特征在于,所述控制任务注册域内各主机分别抓取各所述子任务,并通过各所述主机分别对应的线程通道,将各所述第二文件对应的数据分别导入数据库的数据分区的步骤,包括:
通过各所述主机抓取各所述子任务后形成任务队列;
控制各所述主机按照所述任务队列依次调用服务器的文件解析组件进行文件解析;
将解析后的各第二文件通过与各所述子任务分别对应的Redis订阅频道并发写入各所述数据分区。


4.根据权利要求3所述的数据入数据库的方法,其特征在于,所述将解析后的各第二文件通过与各所述子任务分别对应的Redis订阅频道并发写入各所述数据分区的步骤之后,包括:
接收各所述Redis订阅频道分别对应的运行记录;
判断是否存在运行记录为运行失败的指定Redis订阅频道;
若是,则控制所述指定Redis订阅频道重复运行;
判断所述指定Redis订阅频道重复运行的次数是否超过预设次数;
若是,则反馈所述指定Redis订阅频道对应的子任务失败,并标记所述指定Redis订阅频道对应的子任务中的第二文件;
接收标记后的第二文件的修改内容,形成更改后的第二文件,重新运行所述指定Redis订阅频道对应的子任务,将更改后的第二文件写入数据库的数据分区,其中,重新运行时更改前后第二文件对应的数据分区相同。


5.根据权利要求1所述的数据入数据库的方法,其特征在于,所述获取待拆分的第一文件对应的特征值的步骤之前,包括:
判断指定文件的数据量是否大于预设数据量,其中,所述预设数据量为大文件对应的最低数...

【专利技术属性】
技术研发人员:刘巍
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东;44

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

1