本发明专利技术公开了一种将文件导入数据库的方法及装置,该方法包括将待入库文件按照分拣规则分拣为与数据库表对应的数据文件;以每个数据文件形成一个数据导入任务;以并行多任务方式执行所述数据导入任务。该装置包括数据分拣模块,用于将待入库文件按照分拣规则分拣为与数据库表对应的数据文件;任务工作单元,用于以并行多任务方式执行由每个数据文件形成的数据导入任务。本发明专利技术的方法及装置通过对待入库文件的分拣,形成与数据库表对应的数据文件,采用多任务并行入库方式,实现将海量数据快速导入到数据库中。
【技术实现步骤摘要】
本专利技术涉及移动通信业务支撑领域,特别涉及一种将文件导入数据库的方法及装置。
技术介绍
用户使用运营商的网络服务产生的服务使用记录,经过业务支撑系统计费批价处 理后形成了用户话单。为了方便用户查询话单和工作人员在后台对话单进行统计,用户话 单(即文件)需要导入数据库中。 对于运营商来说,随着用户数的增多和多种业务开展,用户话单数量也在剧增,例 如某拥有1500万用户的运营商,每天需要入库的话单有15000万条话单,其中语音8000万 条,短信4000万条左右。对于如此海量的话单,如何快速的导入数据库中,以方便用户实时 查询、统计和分析? 目前,一般采用数据库批量处理技术将话单数据文件导入数据库中。如在一篇申 请号为200610059825的中国专利申请文件中公开了一种数据快速入库方法。 其中,所述方法包括(1)、下级节点收到数据包,将数据包处理成数据文件形式并 保存,并将数据文件路径保存至下级节点中的数据队列中;(2)、下级节点中的数据处理线 程根据下级节点中数据队列中保存的数据文件路径,采用数据库批处理技术将数据文件批 量导入下级节点中的数据库中;(3)、下级节点将下级节点需要上报的数据文件压縮成数据 压縮包,并上传至上级节点;(4)、上级节点收到数据压縮包后将数据压縮包进行解压縮,将 解压縮后的数据文件进行保存,并将数据文件路径保存至上级节点中的数据队列中;(5)、 上级节点中的数据处理线程根据上级节点中数据队列中保存的数据文件路径,采用数据库 批处理技术将数据文件批量导入上级节点中的数据库中。 现有的话单入库技术存在如下缺陷只是对话单数据文件进行排队、然后采用数 据库批处理技术将话单文件导入数据库中,这种方式只能对单个话单数据文件进行批量导 入处理,不能对多个话单文件同时进行批量处理,特别是某个话单文件需要导入到多个数 据库表时,必须对话单文件进行处理,形成和数据库表匹配的数据格式,对此数据文件进行 多次批量导入,才可将此数据文件全部导入到数据库中。因此现有的话单入库技术对于海 量话单数据来说,无法达到快速入库的效果。
技术实现思路
本专利技术的目的是为了克服上述现有技术中的缺陷,通过对待入库文件的分拣,形 成与数据库表对应的数据文件,采用多任务并行入库方式,实现将海量数据快速导入到数 据库中。 本专利技术提供的将文件导入数据库的方法包括以下步骤将待入库文件按照分拣规 则分拣为与数据库表对应的数据文件;以每个数据文件形成一个数据导入任务;以并行多 任务方式执行所述数据导入任务。 上述技术方案中,分拣规则记录待入库文件的文件名以及该待入库文件需要导入 的至少一个数据库表;将待入库文件按照分拣规则分拣为数据文件进一步包括由待入库 文件生成至少一个数据文件,所述数据文件分别对应于该待入库文件需要导入的所有数据 库表。 上述技术方案中,还包括接收多个待入库文件,并行执行由多个待入库文件形成 的数据导入任务。 上述技术方案中,以并行多任务方式执行数据导入任务进一步包括数据导入任 务与任务工作单元一一对应;多个任务工作单元接收数据导入任务;多个任务工作单元并 行完成数据导入任务,将数据批量导入到数据库中。 上述技术方案中,还包括根据数据导入任务的负荷情况,对任务工作单元的数量 以及任务工作单元所在的任务工作池的容量进行控制。 上述技术方案中,将待入库文件按照分拣规则分拣为与数据库表对应的数据文件 的步骤之前还可以包括根据待入库文件名匹配规则搜索入口处的待入库文件,并将待入 库文件列表装入内存。 上述技术方案中,还可以包括对所述搜索、分拣的结果进行记录,并对数据导入任 务的分发进行控制。 本专利技术提供的将文件导入数据库的装置,包括数据分拣模块,用于将待入库文件 按照分拣规则分拣为与数据库表对应的数据文件;任务工作单元,用于以并行多任务方式 执行由每个数据文件形成的数据导入任务。 上述涉及装置的技术方案中,还包括任务工作池容量控制模块,用于根据数据导 入任务的负荷情况,对任务工作单元的数量以及任务工作单元所在的任务工作池的容量进 行控制。 上述涉及装置的技术方案中,还包括待入库文件搜索模块,用于根据待入库文件 名匹配规则搜索入口处的待入库文件,并将待入库文件列表装入内存。 上述涉及装置的技术方案中,还包括事务控制模块,用于对搜索、分拣的结果进 行记录,并将数据导入任务分发至相应的任务工作单元进行控制。 与现有技术相比,本专利技术具有以下优点 通过对待入库文件分拣,形成与数据库表对应的数据文件,避免多个待入库文件 同时导入同一张数据表中造成资源访问频繁,带来效率不高问题;以并行多任务方式执行 数据导入任务,縮短了文件入库处理时间。附图说明 图1是本专利技术将文件导入数据库(以一批话单文件为例)的装置示意图(实施例1) ; 图2是本专利技术实施例1中主工作单元结构示意图; 图3是本专利技术实施例1中协调工作单元结构示意图。 图4是本专利技术将文件导入数据库(以一批话单文件为例)的方法示意图(实施例2) ;具体实施例方式下面结合附图,对本专利技术的具体实施方式进行详细描述。图l示出了话单快速入库装置的结构示意图,主要涉及主工作单元、协调工作单元、任务工作池。 具体说明如下 主工作单元101 主工作单元中保存了话单文件名匹配规则、数据分拣规则、配置数据、事务表,主 要负责准备数据导入任务、配置数据维护和日志处理。 主工作单元包括话单文件搜索模块、数据分拣模块、事务控制模块、日志处理、配 置数据维护模块。 图2示出了主工作单元的结构示意图,主要涉及话单文件搜索模块、数据分拣模 块、事务控制模块、日志处理、配置数据维护模块。 主工作单元的话单文件搜索模块201根据话单文件名匹配规则搜索入口处的多 个话单文件,可以搜索全部文件,也可以搜索某些类型的文件,将话单文件列表按时间顺序 装载进内存的链表中;并向事务控制模块反馈批量话单文件的名称,记录在事务表中; 数据分拣模块202负责对内存中话单文件列表按数据分拣规则分拣成和数据库 表对应的数据文件, 一个数据文件对应一个数据导入任务。 一个话单文件有可能会导入到 多个数据库表中,某个数据库表的数据可能由多个话单文件中的数据导入,因此需要将话 单文件进行分拣。数据分拣模块将数据导入任务列表和状态反馈给事务控制模块,记录进 事务表中。 事务控制模块203负责将批量文件名称和对应的数据导入列表、处理状态记录进事务表中,保证话单文件完整无误的从入口直到导入到数据库中,同时进行事务的断点记录,若出错则记录日志,若临时中断则将从事务的断点处恢复处理。事务表由事务唯一标识标志每条事务,每条事务中记录了批量话单名称列表,数据导入任务列表和状态,只有某批量话单对应的数据导入任务全部完成后,才将批量话单移动到出口目录。 日志处理模块204负责将所有模块的日志记录,分模块、分严重级别记录运行日志和处理日志。 配置数据维护模块205负责主工作单元初始化时加载配置数据,动态发现配置数 据文件的变化,维护内存中的配置数据。 主工作单元和协调工作单元连接主工作单元向协调工作单元提供数据导入任 务,并从协调工作单元处获取任务完成状态,进行事务控制,只有一批话单文件对应的所有 数据导入任务完成后,事务才算完成。 协调工作单元本文档来自技高网...
【技术保护点】
一种将文件导入数据库的方法,其特征在于,包括:将待入库文件按照分拣规则分拣为与数据库表对应的数据文件;以每个数据文件形成一个数据导入任务;以并行多任务方式执行所述数据导入任务。
【技术特征摘要】
一种将文件导入数据库的方法,其特征在于,包括将待入库文件按照分拣规则分拣为与数据库表对应的数据文件;以每个数据文件形成一个数据导入任务;以并行多任务方式执行所述数据导入任务。2. 根据权利要求1所述的方法,其特征在于,所述分拣规则记录待入库文件的文件名 以及该待入库文件需要导入的至少一个数据库表;所述将待入库文件按照分拣规则分拣为数据文件进一步包括由所述待入库文件生成 至少一个数据文件,所述数据文件分别对应于该待入库文件需要导入的所有数据库表。3. 根据权利要求1所述的方法,其特征在于,所述方法还包括接收多个待入库文件, 并行执行由所述多个待入库文件形成的数据导入任务。4. 根据权利要求1至3任意一项所述的方法,其特征在于,所述以并行多任务方式执行 数据导入任务进一步包括数据导入任务与任务工作单元一一对应; 多个所述任务工作单元接收数据导入任务;多个任务工作单元并行完成数据导入任务,将数据批量导入到数据库中。5. 根据权利要求4所述的方法,其特征在于,还包括根据数据导入任务的负荷情况,对 所述任务工作单元的数量以及任务工作单元所在的任务工作池的容量进行控制。6. 根据权利要求1至3中任意...
【专利技术属性】
技术研发人员:余鹰,
申请(专利权)人:中国移动通信集团安徽有限公司,
类型:发明
国别省市:34[中国|安徽]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。