一种数据处理方法及系统的制作方法

文档序号:10513013阅读:230来源:国知局
一种数据处理方法及系统的制作方法
【专利摘要】本发明公开了一种数据处理方法及系统,其中,所述方法包括:按照预设的文件拆分策略拆分数据文件得到子文件;按照预设的文件分发策略将所述子文件发送至多个缓存服务器;所述多个缓存服务器分别加载被分配的子文件并计算生成中间处理结果;根据所述多个缓存服务器分别生成的中间统计结果生成最终处理结果。采用本发明,通过数据文件拆分、文件分发、数据加载等手段,在并行处理生成中间处理结果之后再生成最终处理结果,从而能够针对数据文件进行高效处理。
【专利说明】
一种数据处理方法及系统
技术领域
[0001] 本发明涉及数据处理领域,更为具体而言,涉及一种数据处理方法及系统。
【背景技术】
[0002] 银监会让各大银行对各个第三方支付机构的备付金进行监管。为了满足这个要 求,第三方支付监管项目负责与多家支付机构建立了备付金存管关系,在每日的日终时,银 行收取各支付机构的当日明细文件并加工成报表报备银监会。
[0003] 由于报表的加工时间有限,而随着第三方支付机构的广泛应用,每个支付机构的 交易数据量日趋庞大。因此,迫切需要对报表加工过程进行良好的设计,才能确保系统对支 付机构数据的高效处理,但现有技术并不存在能够应对这一问题的数据处理方法。

【发明内容】

[0004] 鉴于现有技术的上述缺陷,本发明实施方式提供了一种数据处理方法及系统,能 够针对数据文件进行高效处理得到处理结果。
[0005] 具体地,本发明实施方式提供了一种数据处理方法,其包括:
[0006] 按照预设的文件拆分策略拆分数据文件得到子文件;
[0007] 按照预设的文件分发策略将所述子文件发送至多个缓存服务器;
[0008] 所述多个缓存服务器分别加载被分配的子文件并计算生成中间处理结果;
[0009] 根据所述多个缓存服务器分别生成的中间统计结果生成最终处理结果。
[0010] 相应地,本发明实施方式还提供了一种数据处理系统,其包括:
[0011] 文件预处理模块,用于按照预设的文件拆分策略拆分数据文件得到子文件,并按 照预设的文件分发策略将所述子文件发送至多个缓存服务器;
[0012] 所述多个缓存服务器,用于分别加载被分配的子文件并计算生成中间处理结果;
[0013] 计算模块,用于根据所述多个缓存服务器分别生成的中间统计结果生成最终处理 结果。
[0014] 采用本发明实施方式,通过数据文件拆分、文件分发、数据加载等手段,在并行处 理生成中间处理结果之后再生成最终处理结果,从而能够针对数据文件进行高效处理。
【附图说明】
[0015] 图1是根据本发明实施例的一种数据处理方法的流程示意图;
[0016] 图2是根据本发明实施例的一种数据处理系统的框图的一例;
[0017] 图3是图2所示数据处理系统的文件预处理模块的框图的一例;
[0018] 图4是根据本发明实施例的一种数据处理系统的框图的另一例;
[0019] 图5是根据本发明实施例的一种账号信息、数据库、表映射配置的一例。
【具体实施方式】
[0020] 为了便于理解本发明技术方案的各个方面、特征以及优点,下面结合附图对本发 明进行具体描述。应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的 保护范围。
[0021] 图1是根据本发明实施例的一种数据处理方法的流程示意图。参照图1,所述方法 包括:
[0022] 10:按照预设的文件拆分策略拆分数据文件得到子文件。
[0023] 可选地,在本实施例的一种实现方式中,所述数据文件包括第三方支付机构的交 易明细文件。换言之,在本发明实施例的一种应用场景中,本发明提供的方法可以应用于根 据交易明细文件生成报表的场景中。
[0024] 12:按照预设的文件分发策略将所述子文件发送至多个缓存服务器。
[0025] 14:所述多个缓存服务器分别加载被分配的子文件并计算生成中间处理结果。
[0026] 16:根据所述多个缓存服务器分别生成的中间统计结果生成最终处理结果。
[0027]需要说明的是,在本实施例中,中间处理结果可以通过合并或汇总生成最终处理 结果。换言之,各个中间处理结果是最终处理结果的一部分,而最终处理结果在不同领域可 以是已知的内容/形式,例如,可以是银行领域的报表形式。因此,本发明并不对中间处理结 果和最终处理结果的具体内容/形式进行限制。
[0028]采用本实施例提供的方法,通过数据文件拆分、文件分发、数据加载等手段,通过 多个缓存服务器并行处理生成中间处理结果之后再生成最终处理结果,从而能够针对数据 文件进行高效处理。
[0029]可选地,在本实施例的一种实现方式中,在处理10中,可以按照将所述数据文件拆 分为多个指定大小的子文件的策略拆分所述数据文件。例如,将所述数据文件拆分为多个 固定大小的子文件。
[0030]可选地,在本实施例的一种实现方式中,在处理12中,预设的文件分发策略优选为 能将数据文件的内容均匀地或大致均匀地分配给各个缓存服务器的策略。例如,按照将第P 个文件的第m个子文件发送至η个缓存服务器中的第[(p+m-l)mod η]个缓存服务器的策略 发送所述子文件。其中,P、m和η均为大于1的正整数。
[0031 ]可选地,在本实施例的一种实现方式中,如图1中的虚线框所示,所述方法还可以 包括:
[0032] 18:按照数据切分策略将所述多个缓存服务器接收到的子文件中的数据写入数据 库。
[0033] 在本实现方式中,考虑到单表的每日数据量较大,因此优选采用水平切分的方式 将接收到的子文件中的数据按照预设的映射配置写入所述数据库的相应表中。
[0034]图2是根据本发明实施例的一种数据处理系统的框图的一例,参照图2,数据处理 系统包括文件预处理模块21、多个缓存服务器22和计算模块23。下面分别进行说明。
[0035]在本实施例中,文件预处理模块21用于按照预设的文件拆分策略拆分数据文件得 到子文件,并按照预设的文件分发策略将所述子文件发送至多个缓存服务器。所述多个缓 存服务器22用于分别加载被分配的子文件并计算生成中间处理结果。计算模块23用于根据 所述多个缓存服务器分别生成的中间统计结果生成最终处理结果。
[0036]采用本实施例提供的数据处理系统,能够针对数据文件进行高效处理。例如,针对 第三方支付机构上传的交易明细文件进行高效处理生成报表。
[0037]可选地,在本实施例的一种实现方式中,如图3所示,文件预处理模块21包括:拆分 子模块211,用于按照将所述数据文件拆分为多个指定大小的子文件的策略拆分所述数据 文件;和/或,分发子模块212,用于按照将第P个文件的第m个子文件发送至η个缓存服务器 中的第[(P+m-l)mod η]个缓存服务器的策略发送所述子文件。
[0038]可选地,在本实施例的一种实现方式中,如图2中的虚线框所示,数据处理系统还 可以包括数据存储模块24,用于按照数据切分策略将所述多个缓存服务器接收到的子文件 中的数据写入数据库。例如,数据存储模块24采用水平切分的方式将接收到的子文件中的 数据按照预设的映射配置写入所述数据库的相应表中。
[0039] 本发明实施例提供的数据处理系统可以用于实施或执行图1所示的方法实施例, 而图1所示的方法实施例又可以理解为图2所示数据处理系统的逻辑处理过程。因此,在本 实施例中关于相关名词、术语的解释,关于各个模块或子模块所执行处理或可执行处理的 详细说明,请参见方法实施例中的说明,此处不再赘述。
[0040] 图4是根据本发明实施例的一种数据处理系统的框图的另一例。如图4所示,数据 处理系统包括共享文件服务器、缓存服务器和数据库。下面结合图4对本发明的部分细节进 行更详细的说明。
[0041 ]整体而言,采用本发明,银行在日终收到第三方支付机构上传的数据文件后,需要 对接收到的每一类文件进行切分,并且可以统一按照固定大小切分数据文件。为了保证效 率,在内存中进行大数据处理,因此,当日数据需要全部加载至缓存。在数据加载至缓存的 同时,缓存可以异步地将数据写入数据库中持久化。
[0042]参照图4,针对数据文件的整体处理流程如下:
[0043] Α.在共享文件服务器中,按照固定大小(例如,500万条记录)将每个源文件拆分成 若干个子文件(即,文件片段),并按顺序编号。例如,文件1可以拆分为子文件1、子文件2、子 文件3……子文件Μ,文件2可拆分为子文件1、子文件2、子文件3……子文件Κ。
[0044] Β.将第Ρ个文件的第m个子文件发送至η台缓存服务器中的第[p+m-l)mod η]台缓 存服务器的硬盘上。例如,假设有Ν台缓存服务器,文件1的1号子文件分配给服务器1,2号子 文件分配给服务器2,Μ号子文件分配给服务器(Mmod N);文件2的1号子文件分配给服务器 2,2号子文件分配给服务器3,K号子文件分配给服务器(K+lmod N)。这样能将大文件的内容 较为均匀地分配给各台缓存服务器。
[0045]结合图2所示实施例,本领域技术人员应当理解,图2所示文件预处理模块21可以 是图4所示的共享文件服务器或其中的一个部分/模块。
[0046] C.各个缓存服务器自行加载被分配的子文件中的数据,进而进行分批统计分析, 包括:计算统计量,计算中间处理结果。
[0047] D.在步骤C的同时,可通过缓存异步地将缓存数据按照数据切分策略写入数据库 实例的表中。哪条数据最终进入哪个数据库可以由分布式缓存集群确定。
[0048]结合图2,本领域技术人员应当理解,步骤D可以由数据存储模块24完成。
[0049] E.在步骤C之后,根据中间计算结果进行汇总生成最终处理结果。结合图2,本领域 技术人员应当理解,步骤E可以由计算模块23完成。
[0050]在本实施例中,在实际设计中,数据拆分、分发、汇总可以由应用批处理任务来完 成;数据加载、异步写入数据库和分批统计分析可以在缓存端实现。采用本实施例,能够充 分利用缓存并行计算的方式提升针对数据文件的处理性能。
[0051]以上结合附图对本发明的方法实施例和系统实施例进行了说明,下面结合实际开 发对本发明的部分内容进行说明。
[0052]【关于文件拆分】
[0053] 文件名称:
[0054]约定第三方支付机构上传的文件名包含如下重要数据:日期、第三方支付机构名 称、文件类型、文件编号。因此,第三方支付机构推送的文件名格式为:
[0058] 其中,拆分子文件编号是N位数字,如果N = 4,则每个文件的子文件的编号都是从 0001开始计算。
[0059] 配置文件:
[0060] 通过配置文件inst_split. properties定义每个机构拆分文件的策略,每行定义 一个机构,其中每行格式为:
[0061]
[0062]其中,子文件行数用于确定某机构的某种类型的文件做拆分时,多少行划为一个 子文件。
[0063]文件拆分:
[0064]通过shell(-种程序设计语言)对各个第三方支付机构上传的数据文件分别进行 文件切分。所述shell读取前述inst_spl it. properties获取文件拆分策略,然后调用linux (一款操作系统)的split命令进行文件拆分:
[0065]
[0066]上述split命令成功执行后,"日期_机构名称_文件类型_文件编号.dat"文件会拆 分成N个如"日期_机构名称_文件类型_文件编号.datOOOl"、"日期_机构名称_文件类型_文 件编号.dat0002"这样的文件。
[0067]最后使用rm命令将这些文件重命名,变成"日期_机构名称_文件类型_文件编号_ 0001. dat"、"日期_机构名称_文件类型_文件编号_0002. dat"的格式。
[0068]【关于文件选择】
[0069]文件选择可以通过提供统一的 API (Application Programming Interface,应用 程序编程接口)供数据加载时调用。
[0071 ] 其中,fileName是文件名,srvCount是执行导入文件的服务器数量,srvNo则是当 前机器在上述服务器内的编号,取值从0到srvCount-1。
[0072]分布式缓存通过如下方式判断某个文件是否由本机处理。首先判断后缀是否是 .dat,不是则不处理;其次读取文件编号和拆分子文件编号,进行以下判断并将结果以true 或false的形式返回:
[0074]以下方法则用于把一个文件标记为已完成,加入后缀.complete ?〇〇76]^【关于数据切分】
[0077]由于单表的每日数据量较大,不适用数据的垂直切分。因此,优选采用水平切分的 方式将同格式的数据分散到不同的数据库实例的不同表上。
[0078]对余额的切分,需考虑"第三方支付机构+客户号"的维度。如图5所示,首先将客户 按不同的支付机构分开,然后选取客户在第三方支付机构的客户号做hash(0,9999);然后, 采用"第三方支付机构+客户号哈希值范围"(也可称作账号信息)与真实数据库表的映射配 置,将这些数据分别对应到各个真实数据库的表中,其中可能多条配置对应一个真实的库, 然后将数据插入到该库的表中;最后,在需要查询某个第三方支付机构的某条账号的数据 记录时,也先查询映射关系找到真实数据库表,然后找到该表做该账号的查询S Q L (Structured Query Language,结构化查询语言)语句,这样可以避免多表查询合并结果的 麻烦,分页查询也变得更加方便。
[0079] 此外,映射关系可灵活配置,如果某个库的表数据量过大,可以将其拆到两个库 中,做好数据迀移后修改配置即可完成扩容,无需修改应用代码。选取hash值从0000-9999 可以支持最多10000个库。
[0080] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助 软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对【背景技术】做出贡 献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介 质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算 机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0081] 本领技术人员应当理解,以上所公开的仅为本发明的实施方式而已,当然不能以 此来限定本发明之权利范围,依本发明实施方式所作的等同变化,仍属本发明权利要求所 涵盖的范围。
【主权项】
1. 一种数据处理方法,其特征在于,所述方法包括: 按照预设的文件拆分策略拆分数据文件得到子文件; 按照预设的文件分发策略将所述子文件发送至多个缓存服务器; 所述多个缓存服务器分别加载被分配的子文件并计算生成中间处理结果; 根据所述多个缓存服务器分别生成的中间统计结果生成最终处理结果。2. 如权利要求1所述的方法,其特征在于,按照预设的文件拆分策略拆分数据文件得到 子文件包括: 按照将所述数据文件拆分为多个指定大小的子文件的策略拆分所述数据文件。3. 如权利要求1所述的方法,其特征在于,按照预设的文件分发策略将所述子文件发送 至多个缓存服务器包括: 按照将第P个文件的第m个子文件发送至η个缓存服务器中的第[(p+m-l)mod η]个缓存 服务器的策略发送所述子文件。4. 如权利要求1所述的方法,其特征在于,所述方法还包括: 按照数据切分策略将所述多个缓存服务器接收到的子文件中的数据写入数据库。5. 如权利要求4所述的方法,其特征在于,按照数据切分策略将接收到的子文件中的数 据写入数据库包括: 采用水平切分的方式将接收到的子文件中的数据按照预设的映射配置写入所述数据 库的相应表中。6. 如权利要求1所述的方法,其特征在于,所述数据文件包括第三方支付机构的交易明 细文件。7. -种数据处理系统,其特征在于,所述系统包括: 文件预处理模块,用于按照预设的文件拆分策略拆分数据文件得到子文件,并按照预 设的文件分发策略将所述子文件发送至多个缓存服务器; 所述多个缓存服务器,用于分别加载被分配的子文件并计算生成中间处理结果; 计算模块,用于根据所述多个缓存服务器分别生成的中间统计结果生成最终处理结 果。8. 如权利要求7所述的系统,其特征在于,所述文件预处理模块包括: 拆分子模块,用于按照将所述数据文件拆分为多个指定大小的子文件的策略拆分所述 数据文件。9. 如权利要求7所述的系统,其特征在于,所述文件预处理模块包括: 分发子模块,用于按照将第Ρ个文件的第m个子文件发送至η个缓存服务器中的第[(ρ+ m-l)mod η]个缓存服务器的策略发送所述子文件。10. 如权利要求7所述的系统,其特征在于,所述系统还包括: 数据存储模块,用于按照数据切分策略将所述多个缓存服务器接收到的子文件中的数 据写入数据库。11. 如权利要求10所述的系统,其特征在于,所述数据存储模块采用水平切分的方式将 接收到的子文件中的数据按照预设的映射配置写入所述数据库的相应表中。12. 如权利要求7所述的系统,其特征在于,所述数据文件包括第三方支付机构的交易 明细文件。
【文档编号】G06Q40/02GK105869048SQ201610182365
【公开日】2016年8月17日
【申请日】2016年3月28日
【发明人】聂砂, 白彧斐, 贾国琛, 洪翔, 李凌苍
【申请人】中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1