CN111858638A - 一种大批量同质数据的批量入库方法 - Google Patents

一种大批量同质数据的批量入库方法 Download PDF

Info

Publication number
CN111858638A
CN111858638A CN202010741725.1A CN202010741725A CN111858638A CN 111858638 A CN111858638 A CN 111858638A CN 202010741725 A CN202010741725 A CN 202010741725A CN 111858638 A CN111858638 A CN 111858638A
Authority
CN
China
Prior art keywords
storage
data
batch
queue
successful
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010741725.1A
Other languages
English (en)
Inventor
李诗华
任海军
徐荣华
王文军
罗海强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhenlan Instrument Technology Co ltd
Original Assignee
Shanghai Zhenlan Instrument Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Zhenlan Instrument Technology Co ltd filed Critical Shanghai Zhenlan Instrument Technology Co ltd
Priority to CN202010741725.1A priority Critical patent/CN111858638A/zh
Publication of CN111858638A publication Critical patent/CN111858638A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • G06F16/2386Bulk updating operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种大批量同质数据的批量入库方法,包括如下步骤:S1,针对每张表创建存储线程,并为其建立对应的存库队列,对于所有的需要入库的表准备预编译的插入和更新命令;S2,当收到需要入库的数据时,取出入库数据转换为数据记录实体;S3,将数据记录实体加入对应的存库队列;S4,存储线程从对应的存库队列取出相应的数据记录实体,对其中字段类型进行匹配,加入对应的插入或者删除预编译队列。本发明,利于数据库的预编译、批量提交技术,结合单条提交的传统方案实现数据高效入库的同时保证数据完整性,从而实现大批量同质数据高效、完整入库的问题,降低数据库服务器压力。

Description

一种大批量同质数据的批量入库方法
技术领域
本发明涉及数据库技术领域,具体为一种大批量同质数据的批量入库方法。
背景技术
对于海量数据入库的场景,因为数据提供者往往是通过不同渠道、不同方式提供数据,而且存在服务端不易控制的高并发情况,因此高效完整的保存数据是大数据平台必须解决的问题。
当需要对数据库进行数据插入、更新或者删除的时候,程序会发送整个SQL语句给数据库处理和执行。数据库处理一个SQL语句,需要完成解析SQL语句、检查语法和语义以及生成代码;一般说来,处理时间要比执行语句所需要的时间长。预编译语句在创建的时候已经是将指定的SQL语句发送给了数据库,完成了解析、检查、编译等工作。因此,当一个SQL语句需要执行多次时,使用预编译语句可以减少处理时间,提高执行效率,这种技术对于海量的同质数据入库场景带来的效率提升是非常客观的。
但单一的批量提交入库对于数据完整度要求高的场景也会存在风险,如果单条数据异常造成无法入库就会本次批量提交的所有数据无法入库,造成数据丢失。
有鉴于此,我们设计并实现了结合预处理、批量提交、单条提交技术,针对大批量同质化数据高效、完整入库的优化方法。
发明内容
本发明的目的在于提供一种大批量同质数据的批量入库方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种大批量同质数据的批量入库方法,包括如下步骤:
S1,针对每张表创建存储线程,并为其建立对应的存库队列,对于所有的需要入库的表准备预编译的插入和更新命令;
S2,当收到需要入库的数据时,取出入库数据转换为数据记录实体;
S3,将数据记录实体加入对应的存库队列;
S4,存储线程从对应的存库队列取出相应的数据记录实体,对其中字段类型进行匹配,加入对应的插入或者删除预编译队列;
S5,预编译队列中数据记录数超过配置值时提交批处理命令,进入步骤S7;
S6,当预编译队列中数据记录数不为0且等待时间大于配置值时提交批处理命令;
S7,提交批处理命令;
S8,判断执行是否成功,如果成功则做存库成功对应的处理;
S9,命令执行失败,则将批量提交的数据记录拆为单条提交;
S10,对于每一条单独提交的数据记录,如果保存成功则做存库成功对应的处理,如果保存失败,则做存库失败对应处理。
与现有技术相比,本发明的有益效果是:
本发明,利于数据库的预编译、批量提交技术,结合单条提交的传统方案实现数据高效入库的同时保证数据完整性,从而实现大批量同质数据高效、完整入库的问题,降低数据库服务器压力。
附图说明
图1是本发明的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供一种技术方案:一种大批量同质数据的批量入库方法,包括如下步骤:
S1,针对每张表创建存储线程,并为其建立对应的存库队列,对于所有的需要入库的表准备预编译的插入和更新命令;
S2,当收到需要入库的数据时,取出入库数据转换为数据记录实体;
S3,将数据记录实体加入对应的存库队列;
S4,存储线程从对应的存库队列取出相应的数据记录实体,对其中字段类型进行匹配,加入对应的插入或者删除预编译队列;
S5,预编译队列中数据记录数超过配置值时提交批处理命令,进入步骤S7;
S6,当预编译队列中数据记录数不为0且等待时间大于配置值时提交批处理命令;
S7,提交批处理命令;
S8,判断执行是否成功,如果成功则做存库成功对应的处理;
S9,命令执行失败,则将批量提交的数据记录拆为单条提交;
S10,对于每一条单独提交的数据记录,如果保存成功则做存库成功对应的处理,如果保存失败,则做存库失败对应处理。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (1)

1.一种大批量同质数据的批量入库方法,其特征在于包括如下步骤:
S1,针对每张表创建存储线程,并为其建立对应的存库队列,对于所有的需要入库的表准备预编译的插入和更新命令;
S2,当收到需要入库的数据时,取出入库数据转换为数据记录实体;
S3,将数据记录实体加入对应的存库队列;
S4,存储线程从对应的存库队列取出相应的数据记录实体,对其中字段类型进行匹配,加入对应的插入或者删除预编译队列;
S5,预编译队列中数据记录数超过配置值时提交批处理命令,进入步骤S7;
S6,当预编译队列中数据记录数不为0且等待时间大于配置值时提交批处理命令;
S7,提交批处理命令;
S8,判断执行是否成功,如果成功则做存库成功对应的处理;
S9,命令执行失败,则将批量提交的数据记录拆为单条提交;
S10,对于每一条单独提交的数据记录,如果保存成功则做存库成功对应的处理,如果保存失败,则做存库失败对应处理。
CN202010741725.1A 2020-07-29 2020-07-29 一种大批量同质数据的批量入库方法 Pending CN111858638A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010741725.1A CN111858638A (zh) 2020-07-29 2020-07-29 一种大批量同质数据的批量入库方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010741725.1A CN111858638A (zh) 2020-07-29 2020-07-29 一种大批量同质数据的批量入库方法

Publications (1)

Publication Number Publication Date
CN111858638A true CN111858638A (zh) 2020-10-30

Family

ID=72948096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010741725.1A Pending CN111858638A (zh) 2020-07-29 2020-07-29 一种大批量同质数据的批量入库方法

Country Status (1)

Country Link
CN (1) CN111858638A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254461A (zh) * 2021-02-07 2021-08-13 浪潮云信息技术股份公司 一种基于nifi的实现数据库同步的优化方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263106A1 (en) * 2007-04-12 2008-10-23 Steven Asherman Database queuing and distributed computing
CN103577551A (zh) * 2013-10-16 2014-02-12 青岛海信传媒网络技术有限公司 一种数据批量提交到数据库的方法和装置
CN107220265A (zh) * 2016-03-22 2017-09-29 阿里巴巴集团控股有限公司 一种数据库语句编译和执行方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263106A1 (en) * 2007-04-12 2008-10-23 Steven Asherman Database queuing and distributed computing
CN103577551A (zh) * 2013-10-16 2014-02-12 青岛海信传媒网络技术有限公司 一种数据批量提交到数据库的方法和装置
CN107220265A (zh) * 2016-03-22 2017-09-29 阿里巴巴集团控股有限公司 一种数据库语句编译和执行方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
沈钧毅: "《数据库系统原理》", 28 February 2014, 西安交通大学出版社 , pages: 12 - 14 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254461A (zh) * 2021-02-07 2021-08-13 浪潮云信息技术股份公司 一种基于nifi的实现数据库同步的优化方法及系统

Similar Documents

Publication Publication Date Title
US7096231B2 (en) Export engine which builds relational database directly from object model
US8463818B2 (en) Single command data warehouse table update
US6438538B1 (en) Data replication in data warehousing scenarios
US11693912B2 (en) Adapting database queries for data virtualization over combined database stores
US20110153568A1 (en) High volume, high speed adaptive data replication
CN105868204A (zh) 一种转换Oracle脚本语言SQL的方法及装置
US8676785B2 (en) Translator of statistical language programs into SQL
US20100010962A1 (en) Deferred Compilation of Stored Procedures
CN106445618A (zh) 一种数据库自动升级方法
EP4170509A1 (en) Method for playing back log on data node, data node, and system
CN110674161A (zh) 上线sql的方法、系统、存储介质及sql操作平台
CN111984728A (zh) 异构数据库数据同步方法、装置、介质和电子设备
CN110851514B (zh) 基于flink的etl处理方法
CN111858638A (zh) 一种大批量同质数据的批量入库方法
US8126905B2 (en) System, method, and computer-readable medium for optimizing the performance of outer joins
CN114564500A (zh) 在区块链系统中实现结构化数据存储和查询的方法和系统
CN113111045A (zh) 异构数据比对方法及装置
CN117421302A (zh) 一种数据处理方法及相关设备
US20070088684A1 (en) Partial updating in a database proxy driver
CN114153813A (zh) 数据库间大数据表批量迁移的方法、系统、设备和介质
CN109800233A (zh) 一种大数据融合搜索方法
EP3082050A1 (en) Mass data fusion storage method and system
US20070067262A1 (en) Method and system for optimizing user database queries
CN114528347A (zh) 一种异构数据库系统间的数据同步方法
CN109857390B (zh) 一种Git仓库文件注解系统的注解传递方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Country or region after: China

Address after: No. 800 Songda Road, Qingpu District, Shanghai, 201799

Applicant after: ZENNER Metering Technology (Shanghai) Ltd.

Address before: 201702 building 4, 6558 Yinggang East Road, Qingpu District, Shanghai

Applicant before: ZENNER Metering Technology (Shanghai) Ltd.

Country or region before: China

CB02 Change of applicant information