一种实现数据处理批量入库的方法和系统技术方案

技术编号:17007519 阅读:81 留言:0更新日期:2018-01-11 03:52
本发明专利技术公开了一种实现数据处理批量入库的方法,该方法包括以下步骤:启动数据处理服务,然后将SQL脚本解析并存储到内存中;按照接口形态配置解析后的SQL脚本;将多个请求中的数据按照接口形态归类;将归类的数据压入队列;将配置后的SQL脚本与数据进行匹配;以及将具有同一接口形态的数据与配置后的SQL脚本进行拼接。本发明专利技术的方法解决了服务端并发请求数过高的情况,使服务端处理数据的吞吐量增加,并且解决了服务端处理并发数据中断异常和数据处理不安全的问题。

【技术实现步骤摘要】
一种实现数据处理批量入库的方法和系统
本专利技术涉及数据库存储领域,更具体地,特别是指一种实现数据处理批量入库的方法和系统。
技术介绍
在现代信息化系统中,根据实际业务需要往往需要将大量的数据集中存储,而数据库系统就是一种能够实现上述目的的应用系统。数据库是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。在现有技术中,数据的采集和写入数据库通常采用同步方式,这种在数据库层面实现数据同步的方式的问题及缺点是:1.如果在高并发的情况下,读写不一致(读的快,写的慢)会造成数据丢失;2.同步插入数据,需要处理完成后,接口才能返回,系统响应慢,吞吐量低,并发低。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提出一种实现数据处理批量入库的方法和系统,能够解决服务端接口并发请求数过高的问题,使服务端处理数据的吞吐量增加,并且能够解决服务端处理并发数据中断异常和数据处理不安全的问题。基于上述目的,本专利技术实施例的一方面提供了一种实现数据处理批量入库的方法,所述方法包括以下步骤:启动数据处理服务,然后将SQL脚本解析并存储到内存中;按照接口形态配置解析后的所述SQL脚本;将多个请求中的数据按照所述接口形态归类;将归类的所述数据压入队列;将配置后的所述SQL脚本与所述数据进行匹配;以及将具有同一接口形态的所述数据与配置后的所述SQL脚本进行拼接。在一些实施方式中,采用异步线程将所述SQL脚本解析。在一些实施方式中,将所述SQL脚本解析为SqlElement对象并将所述SqlElement对象存储到内存中。在一些实施方式中,每一种接口形态对应一种业务数据的上报结构。在一些实施方式中,对压入队列的所述数据进行轮询解析,并根据所述接口形态将配置后的所述SQL脚本与所述数据进行匹配。在一些实施方式中,将具有同一接口形态的所述数据拼接为一条SQL语句入库。本专利技术实施例的另一方面,还提供了一种实现数据处理批量入库的系统,所述系统执行上述方法。本专利技术实施例的另一方面,还提供了一种计算机设备,包括存储器、至少一个处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时执行上述方法。本专利技术实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行上述方法。本专利技术实施例的另一方面,还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算程序,所述计算程序包括指令,当所述指令被计算机执行时,使所述计算机执行上述方法。本专利技术具有以下有益技术效果:本专利技术实施例提供的实现数据处理批量入库的方法和系统,通过使用以一种批量处理的方式将数据批量拼接为一条SQL语句入库的技术方案,能够在高并发请求的情况下实现数据批量入库,使服务端处理数据的吞吐量增加,并且能够解决服务端处理并发数据中断异常和数据处理不安全的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为根据本专利技术一个实施例的方法的流程示意图;图2为根据本专利技术一个实施例的高并发异步处理数据入库的流程示意图;图3为根据本专利技术一个实施例的系统设计架构图;图4为本专利技术提供的执行所述方法的计算机设备的一个实施例的硬件结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”和“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,后续实施例对此不再一一说明。基于上述目的,本专利技术实施例的第一个方面,提出了实现数据处理批量入库的方法的一个实施例,能够解决服务端接口并发请求数过高的问题,使服务端处理数据的吞吐量增加,并且能够解决服务端处理并发数据中断异常和数据处理不安全的问题。图1示出的是根据本专利技术一个实施例的方法的流程示意图。所述的方法可包括以下步骤:步骤S101,启动数据处理服务,然后将SQL脚本解析并存储到内存中。需要说明的是,在对客户端每种业务进行处理时,首先要保证服务端数据处理服务正常启动,然后才能上报数据,才能对每一类的产品所对应的SQL脚本进行解析,并以SqlElement对象存储到内存。其中,优选地,采用异步线程将SQL脚本解析。SQL脚本的结构如下所示:步骤S102,按照接口形态配置解析后的SQL脚本,需要说明的是,每一种接口形态对应一种业务数据的上报结构。通过配置与接口形态相对应的SQL脚本来对每一类接口进行归类,SQL脚本内部配置与接口传参必须一致,并附有该类接口的业务逻辑。接口形态如下表所示:步骤S103,将多个请求中的数据按照接口形态归类,需要说明的是,在服务端并发请求数比较高的情况下,服务端可以通过TCP服务和UDP服务将请求转发到届时处理并发任务较少的数据处理服务端。步骤S104,将归类的数据压入队列,其中,优选地,将客户端上报的数据校验后,通过LinkedBlockingQueue<String[]>压入队列,待数据与SQL脚本匹配时轮询。步骤S105,将配置后的SQL脚本与数据进行匹配,其中,优选地,对压入队列的数据进行轮询解析,并根据约定的MaxCode(例如:00FF0A00)和MinCode(例如:00016004)将配置后的SQL脚本与请求数据进行匹配,匹配后,通过内存中已有的SqlElement对象,开始对sql语句进行拼接。步骤S106,将具有同一接口形态的数据与配置后的SQL脚本进行拼接。将上报数据的接口形态与SQL脚本匹配后,开始将数据与SQL脚本进行拼接。拼接好的SQL语句例如为insertintotableName(column1,column2...)values(value1,value2...),(value3,value4...)。从上述实施例可以看出,本专利技术实施例提供的实现数据处理批量入库的方法,针对以往各个框架同步处理数据入库的问题进行优化,通过使用以一种批量处理的方式将数据批量拼接为一条SQL语句入库的技术方案,能够在高并发请求的情况下实现数据批量入库,使服务端处理数据的吞吐量增加,并且能够解决服务端处理并发数据中断异常和数据处理不安全的问题。如图2所示,为根据本专利技术一个实施例的高并发异步处理数据入库的流程示意图。首先,服务端接收客户端请求数据并校验数据的正确性,然后返回客户端信息。将高并发请求数据,使用LinkedBlockingQueue<String[]>压入队列,优选地,队列的内部结构为MaxCode、MinCode和具体上报的JSON数据,这里包含了上报数据的JSON格式的校验,校验通过,则异步返回客户端数据校验本文档来自技高网...
一种实现数据处理批量入库的方法和系统

【技术保护点】
一种实现数据处理批量入库的方法,其特征在于,所述方法包括以下步骤:启动数据处理服务,然后将SQL脚本解析并存储到内存中;按照接口形态配置解析后的所述SQL脚本;将多个请求中的数据按照所述接口形态归类;将归类的所述数据压入队列;将配置后的所述SQL脚本与所述数据进行匹配;以及将具有同一接口形态的所述数据与配置后的所述SQL脚本进行拼接。

【技术特征摘要】
1.一种实现数据处理批量入库的方法,其特征在于,所述方法包括以下步骤:启动数据处理服务,然后将SQL脚本解析并存储到内存中;按照接口形态配置解析后的所述SQL脚本;将多个请求中的数据按照所述接口形态归类;将归类的所述数据压入队列;将配置后的所述SQL脚本与所述数据进行匹配;以及将具有同一接口形态的所述数据与配置后的所述SQL脚本进行拼接。2.根据权利要求1所述的方法,其特征在于,采用异步线程将所述SQL脚本解析。3.根据权利要求1所述的方法,其特征在于,将所述SQL脚本解析为SqlElement对象并将所述SqlElement对象存储到内存中。4.根据权利要求1所述的方法,其特征在于,每一种接口形态对应一种业务数据的上报结构。5.根据权利要求1所述的方法,其特征在于,对压入队列的所述数据进行轮询解析,并根据所述接口形态将配置后的所述S...

【专利技术属性】
技术研发人员:拜山峰高林武毕永东
申请(专利权)人:北京北信源软件股份有限公司
类型:发明
国别省市:北京,11

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

1