CN106934037A - 一种高并发实现数据库快速加载数据的方法 - Google Patents

一种高并发实现数据库快速加载数据的方法 Download PDF

Info

Publication number
CN106934037A
CN106934037A CN201710152982.XA CN201710152982A CN106934037A CN 106934037 A CN106934037 A CN 106934037A CN 201710152982 A CN201710152982 A CN 201710152982A CN 106934037 A CN106934037 A CN 106934037A
Authority
CN
China
Prior art keywords
data
realizes
high concurrent
database
loading
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
CN201710152982.XA
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710152982.XA priority Critical patent/CN106934037A/zh
Publication of CN106934037A publication Critical patent/CN106934037A/zh
Pending legal-status Critical Current

Links

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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

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

Abstract

本发明公开了一种高并发实现数据库快速加载数据的方法,所述方法通过shell实现多线程和线程数控制,结合数据加载工具实现高并发的数据加载。本发明方法可以并行多线程调用数据加载工具进行数据加载,实现数据加载的自动化,提高I/O利用率,提高加载效率。

Description

一种高并发实现数据库快速加载数据的方法
技术领域
本发明涉及数据库技术领域,具体涉及一种高并发实现数据库快速加载数据的方法,主要针对数据库加载大数据量缓慢的问题,提高数据加载速度,实现数据库数据的快速迁移,从而降低数据迁移成本。
背景技术
在linux、unix操作***平台进行大数据量异构数据库迁移、以及分析性数据仓库加载日增量数据的过程中,发现数据加载往往会成为整个数据迁移的瓶颈所在。
基于linux、unix操作***的数据加载工具一般都是单进程,如果要实现并行加载数据,需要人工启动多个进程,操作不方便且数据加载缓慢。
单线程进行数据加载,由于无法充分利用I/O资源,使I/O成为数据加载的瓶颈,往往无法在规定的时间窗口内完成数据加载任务,导致数据迁移时间延长,增加了数据迁移的成本。
虽然部分数据库的加载工具能够支持单表加载过程中的并行,但是在面对大数据量的加载任务时,仍然无法满足性能需要。
发明内容
本发明要解决的技术问题是:本发明针对以上问题,提供一种高并发实现数据库快速加载数据的方法。
本发明所采用的技术方案为:
一种高并发实现数据库快速加载数据的方法,所述方法通过shell实现多线程和线程数控制,结合数据加载工具实现高并发的数据加载,提高I/O利用率,实现数据库数据的快速加载。
所述方法线程控制通过管道实现的,当管道无内容可读时,进程不执行;每个进程执行完成后,向管道写入一个换行符,从而保证进程数是指定的。
所述方法通过config.cfg文件配置数据库信息、目录路径以及线程数。
所述数据加载过程通过程序自动加载,数据加载过程全程不需要用户的干预,用户可以利用剩余时间从事其它工作。
所述数据加载过程采用定时任务,自动判断数据文件是否到达,如果数据文件已经全部到达,便会启动数据加载任务。
所述数据加载过程通过日志记录,以方便用户查看,核对数据加载的记录数是否正确;同时记录加载失败的数据。
所述数据加载工具包括ORACLE SQL*LOADER,DB2 load,KDB kdloader。
本发明的有益效果为:
本发明方法可以并行多线程调用数据加载工具进行数据加载,实现数据加载的自动化,提高I/O利用率,提高加载效率。
具体实施方式
根据具体实施方式对本发明进一步说明:
实施例1:
一种高并发实现数据库快速加载数据的方法,所述方法通过shell实现多线程和线程数控制,结合数据加载工具实现高并发的数据加载,提高I/O利用率,实现数据库数据的快速加载。
实施例2
在实施例1的基础,本实施例所述方法线程控制通过管道实现的,当管道无内容可读时进程不执行;每个进程执行完成后,向管道写入一个换行符,从而保证进程数是指定的。
所述方法多进程实现并控制进程数算法如下:
#!/bin/bash
#允许的进程数
THREAD_NUM=200
#定义描述符为9的管道
mkfifo tmp
exec 9<>tmp
#预先写入指定数量的换行符,一个换行符代表一个进程
for ((i=0;i<$THREAD_NUM;i++))
do
echo -ne "\n" 1>&9
done
if [ $# != 1 ] ;then
echo "The parameters you enter is not correct !";
exit -1;
fi
while read line
do
{
#进程控制
read -u 9
{
#isok=`curl -I -o /dev/null -s -w %{http_code} $line`
if [ "$isok" = "200" ]; then
echo $line "OK"
else
echo $line "no"
fi
echo -ne "\n" 1>&9
}&
}
done < $1
wait
echo "执行结束"
rm tmp
上述核心算法可以保证指定数量的子进程。
实施例3
在实施例1或2的基础,本实施例所述方法通过config.cfg文件配置数据库信息、目录路径以及线程数。
实施例4
在实施例3的基础,本实施例所述数据加载过程通过程序自动加载,数据加载过程全程不需要用户的干预,用户可以利用剩余时间从事其它工作。
实施例5
在实施例4的基础,本实施例所述数据加载过程采用定时任务,自动判断数据文件是否到达,如果数据文件已经全部到达,便会启动数据加载任务。
实施例6
在实施例5的基础,本实施例所述数据加载过程通过日志记录,以方便用户查看,核对数据加载的记录数是否正确;同时记录加载失败的数据。
实施例7
在实施例6的基础,本实施例所述数据加载工具包括ORACLE SQL*LOADER,DB2 load,KDB kdloader等。
实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (7)

1.一种高并发实现数据库快速加载数据的方法,其特征在于,所述方法通过shell实现多线程和线程数控制,结合数据加载工具实现高并发的数据加载。
2.根据权利要求1所述的一种高并发实现数据库快速加载数据的方法,其特征在于,所述方法线程控制通过管道实现的,当管道无内容可读时,进程不执行;每个进程执行完成后,向管道写入一个换行符,从而保证进程数是指定的。
3.根据权利要求1或2所述的一种高并发实现数据库快速加载数据的方法,其特征在于,所述方法通过config.cfg文件配置数据库信息、目录路径以及线程数。
4.根据权利要求3所述的一种高并发实现数据库快速加载数据的方法,其特征在于,所述数据加载过程通过程序自动加载。
5.根据权利要求4所述的一种高并发实现数据库快速加载数据的方法,其特征在于,所述数据加载过程采用定时任务,自动判断数据文件是否到达,如果数据文件已经全部到达,便会启动数据加载任务。
6.根据权利要求5所述的一种高并发实现数据库快速加载数据的方法,其特征在于,所述数据加载过程通过日志记录,同时记录加载失败的数据。
7.根据权利要求6所述的一种高并发实现数据库快速加载数据的方法,其特征在于,所述数据加载工具包括ORACLE SQL*LOADER,DB2 load,KDB kdloader。
CN201710152982.XA 2017-03-15 2017-03-15 一种高并发实现数据库快速加载数据的方法 Pending CN106934037A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710152982.XA CN106934037A (zh) 2017-03-15 2017-03-15 一种高并发实现数据库快速加载数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710152982.XA CN106934037A (zh) 2017-03-15 2017-03-15 一种高并发实现数据库快速加载数据的方法

Publications (1)

Publication Number Publication Date
CN106934037A true CN106934037A (zh) 2017-07-07

Family

ID=59433141

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710152982.XA Pending CN106934037A (zh) 2017-03-15 2017-03-15 一种高并发实现数据库快速加载数据的方法

Country Status (1)

Country Link
CN (1) CN106934037A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108776710A (zh) * 2018-06-28 2018-11-09 农信银资金清算中心有限责任公司 一种数据库数据的并发装载方法及装置
CN110347673A (zh) * 2019-05-30 2019-10-18 平安银行股份有限公司 数据文件加载方法、装置、计算机设备以及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044394A (en) * 1997-07-21 2000-03-28 International Business Machines Corporation Managing independently executing computer tasks that are interrelated by dataflow
US7299237B1 (en) * 2004-08-19 2007-11-20 Sun Microsystems, Inc. Dynamically pipelined data migration
CN103049533A (zh) * 2012-12-23 2013-04-17 北京人大金仓信息技术股份有限公司 一种快速向数据库加载数据的方法
CN104408165A (zh) * 2014-12-08 2015-03-11 畅捷通信息技术股份有限公司 高并发下的数据存储方法和装置
CN105183854A (zh) * 2015-09-08 2015-12-23 浪潮(北京)电子信息产业有限公司 一种数据库卸载数据的调度方法
CN105260485A (zh) * 2015-11-20 2016-01-20 杭州数梦工场科技有限公司 一种数据加载的方法和装置
CN105468784A (zh) * 2015-12-24 2016-04-06 北京京东尚科信息技术有限公司 处理高并发流量的方法及其装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044394A (en) * 1997-07-21 2000-03-28 International Business Machines Corporation Managing independently executing computer tasks that are interrelated by dataflow
US7299237B1 (en) * 2004-08-19 2007-11-20 Sun Microsystems, Inc. Dynamically pipelined data migration
CN103049533A (zh) * 2012-12-23 2013-04-17 北京人大金仓信息技术股份有限公司 一种快速向数据库加载数据的方法
CN104408165A (zh) * 2014-12-08 2015-03-11 畅捷通信息技术股份有限公司 高并发下的数据存储方法和装置
CN105183854A (zh) * 2015-09-08 2015-12-23 浪潮(北京)电子信息产业有限公司 一种数据库卸载数据的调度方法
CN105260485A (zh) * 2015-11-20 2016-01-20 杭州数梦工场科技有限公司 一种数据加载的方法和装置
CN105468784A (zh) * 2015-12-24 2016-04-06 北京京东尚科信息技术有限公司 处理高并发流量的方法及其装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108776710A (zh) * 2018-06-28 2018-11-09 农信银资金清算中心有限责任公司 一种数据库数据的并发装载方法及装置
CN108776710B (zh) * 2018-06-28 2020-06-30 农信银资金清算中心有限责任公司 一种数据库数据的并发装载方法及装置
CN110347673A (zh) * 2019-05-30 2019-10-18 平安银行股份有限公司 数据文件加载方法、装置、计算机设备以及存储介质

Similar Documents

Publication Publication Date Title
GB2599267A (en) Robotic process automation system with separate platform, bot and command class loaders
CN106598705A (zh) 一种异步任务的调度方法、装置、***以及电子设备
CN111488255A (zh) 多线程并发监控方法、装置、设备及存储介质
CN106293893A (zh) 作业调度方法、装置及分布式***
CN107368359A (zh) 一种异步任务执行方法及其存储介质、装置
US20160239345A1 (en) Apparatus and method for managing a plurality of threads in an operating system
CN104360824A (zh) 一种数据合并的方法和装置
CN106934037A (zh) 一种高并发实现数据库快速加载数据的方法
CN103197960A (zh) 用于批量作业***的调度方法及***
CN104461521A (zh) 一种应用程序重放方法及***
US20100306778A1 (en) Locality-based scheduling in continuation-based runtimes
CN107179982B (zh) 一种跨进程调试方法和装置
CN107861715B (zh) 一种业务组建***及方法
CN105096014A (zh) 远程录制作业运行情况的方法和***
EP3422183B1 (en) Managing parallel processing
US20140136570A1 (en) Controller and program
US9552223B2 (en) Post-return asynchronous code execution
CN113485812B (zh) 基于大数据量任务的分区并行处理方法及***
CN105183854A (zh) 一种数据库卸载数据的调度方法
CN102799526A (zh) 一种分布式智能调度方法
US20090254885A1 (en) System and a method for managing configurations of automatic tests
US8689222B2 (en) Controlling priority of multi-threaded hardware resources by system calls
CN110377494A (zh) 一种解决cpu优化引发的多线程问题的方法及***
CN109992388A (zh) 一种用于核电厂安全级设备软件多任务管理***
KR101396781B1 (ko) 응용프로그램 관리장치 및 관리방법

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170707

RJ01 Rejection of invention patent application after publication