CN116257365A - 数据入库方法、装置、设备、存储介质及程序产品 - Google Patents

数据入库方法、装置、设备、存储介质及程序产品 Download PDF

Info

Publication number
CN116257365A
CN116257365A CN202310540331.3A CN202310540331A CN116257365A CN 116257365 A CN116257365 A CN 116257365A CN 202310540331 A CN202310540331 A CN 202310540331A CN 116257365 A CN116257365 A CN 116257365A
Authority
CN
China
Prior art keywords
threads
data
core
database
thread
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.)
Granted
Application number
CN202310540331.3A
Other languages
English (en)
Other versions
CN116257365B (zh
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.)
CCB Finetech Co Ltd
Original Assignee
CCB Finetech 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 CCB Finetech Co Ltd filed Critical CCB Finetech Co Ltd
Priority to CN202310540331.3A priority Critical patent/CN116257365B/zh
Publication of CN116257365A publication Critical patent/CN116257365A/zh
Application granted granted Critical
Publication of CN116257365B publication Critical patent/CN116257365B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/25Integrating or interfacing systems involving database management systems
    • 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/466Transaction processing
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本公开实施例提供一种数据入库方法、装置、设备、存储介质及程序产品。在本公开一些实施例中,读取数据文件;获取数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;根据性能参数和运行参数,确定目标服务器的数据写入参数;根据数据写入参数,将数据文件中的数据写入数据库;针对不同类型的数据库,根据数据库对应的目标服务器的性能参数和运行参数,动态调整数据库入库参数,执行数据文件写入操作,提高数据入库效率。

Description

数据入库方法、装置、设备、存储介质及程序产品
技术领域
本公开涉及数据库技术领域,尤其涉及一种数据入库方法、装置、设备、存储介质及程序产品。
背景技术
许多系统有大量的数据文件加载入库的需求,其中一种通用的文件加载方式是通过文件转成SQL语句加载入库。一般是对于不同数据库有不同的处理方式,还有就是通过批量提交的方式,多行数据放入一个事务并行处理。对于不同数据库采用不同的入库方式,而且在不同数据库,批量提交条数是不同的;对于百万级、千万级的数据量加载入库速度会很慢;对于大文件如果一次读取对存在内存溢出的现象。
目前,数据入库的效率较低。
发明内容
本公开提供一种数据入库方法、装置、设备、存储介质及程序产品,用以解决数据入库效率较低的问题。本公开的技术方案如下:
本公开实施例提供一种数据入库方法,包括:
读取数据文件;
获取所述数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;其中,所述运行参数包括:运行线程数和等待线程数;所述性能参数包括:CPU内核数量和数据库最大限制值;数据写入参数包括:核心线程数、批量提交条数和最大线程数;
根据所述CPU内核数量、所述运行线程数和所述等待线程数,确定所述核心线程数;
根据所述核心线程数、所述数据文件的数据量和所述数据库最大限制值,确定所述批量提交条数;
以及根据所述核心线程数,确定所述最大线程数;
根据所述数据写入参数,将所述数据文件中的数据写入所述数据库。
可选地,所述根据所述CPU内核数量、所述运行线程数和所述等待线程数,确定所述核心线程数,包括:
确定所述运行线程数和所述等待线程数的大小关系;
在所述运行线程数大于所述等待线程数的情况下,增加线程数,得到所述核心线程数;
在所述运行线程数小于等于所述等待线程数的情况下,减少线程数,得到所述核心线程数。
可选地,在所述运行线程数大于所述等待线程数的情况下,所述核心线程数的计算公式如下:
Y=A/(1-k)+(B-C)/2;
在所述运行线程数小于等于所述等待线程数的情况下,所述核心线程数的计算公式如下:
Y=A/(1-k)-(C-B)/2;
其中,A为所述CPU内核数量,k为阻塞系数,B为所述运行线程数,C为所述等待线程数,Y为核心线程数。
可选地,所述根据所述核心线程数、所述数据文件的数据量和所述数据库最大限制值,确定所述批量提交条数,包括:
从所述数据文件的数据量与所述核心线程数的比值和所述数据库最大限制值之间选择出较小的值,作为所述批量提交条数。
本公开实施例还提供一种数据入库装置,包括:
读取模块,用于读取数据文件;
获取模块,用于获取所述数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;其中,所述运行参数包括:运行线程数和等待线程数;所述性能参数包括:CPU内核数量和数据库最大限制值;数据写入参数包括:核心线程数、批量提交条数和最大线程数;
确定模块,用于根据所述CPU内核数量、所述运行线程数和所述等待线程数,确定所述核心线程数;根据所述核心线程数、所述数据文件的数据量和所述数据库最大限制值,确定所述批量提交条数;以及根据所述核心线程数,确定所述最大线程数;
写入模块,用于根据所述数据写入参数,将所述数据文件中的数据写入所述数据库。
可选地,所述确定模块在根据所述CPU内核数量、所述运行线程数和所述等待线程数,确定所述核心线程数时,用于:
确定所述运行线程数和所述等待线程数的大小关系;
在所述运行线程数大于所述等待线程数的情况下,增加线程数,得到所述核心线程数;
在所述运行线程数小于等于所述等待线程数的情况下,减少线程数,得到所述核心线程数。
可选地,所述确定模块在根据所述核心线程数、所述数据文件的数据量和所述数据库最大限制值,确定所述批量提交条数时,用于:
从所述数据文件的数据量与所述核心线程数的比值和所述数据库最大限制值之间选择出较小的值,作为所述批量提交条数。
本公开实施例还提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述的方法中的各步骤。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
本公开实施例还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述的方法。
在本公开一些实施例中,读取数据文件;获取数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;根据性能参数和运行参数,确定目标服务器的数据写入参数;根据数据写入参数,将数据文件中的数据写入数据库;针对不同类型的数据库,根据数据库对应的目标服务器的性能参数和运行参数,动态调整数据库入库参数,执行数据文件写入操作,提高数据入库效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1为本公开实施例一提供的一种数据入库方法的流程示意图;
图2为本公开实施例提供的一种数据入库的整体流程图;
图3为本公开实施例提供的一种核心线程数确定方法的流程图;
图4为本公开实施例提供的一种批量提交条数确定方法的流程示意图;
图5为本公开实施例二提供的另一种数据入库方法的流程示意图;
图6为本公开示例性实施例提供的一种数据入库装置的结构示意图;
图7为本公开示例性实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与本公开的一些方面相一致的装置和方法的例子。
许多系统有大量的数据文件加载入库的需求,其中一种通用的文件加载方式是通过文件转成SQL语句加载入库。一般是对于不同数据库有不同的处理方式,还有就是通过批量提交的方式,多行数据放入一个事务并行处理。对于不同数据库采用不同的入库方式,而且在不同数据库,批量提交条数是不同的;对于百万级、千万级的数据量加载入库速度会很慢;对于大文件如果一次读取对存在内存溢出的现象。
目前,数据入库的效率较低。
针对上述存在的技术问题,在本公开一些实施例中,读取数据文件;获取数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;根据性能参数和运行参数,确定目标服务器的数据写入参数;根据数据写入参数,将数据文件中的数据写入数据库;针对不同类型的数据库,根据数据库对应的目标服务器的性能参数和运行参数,动态调整数据库入库参数,执行数据文件写入操作,提高数据入库效率。
以下结合附图,详细说明本公开各实施例提供的技术方案。
图1为本公开实施例一提供的一种数据入库方法的流程示意图。如图1所示,该方法包括:
S101:读取数据文件;
S102:获取数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;
S103:根据性能参数和运行参数,确定目标服务器的数据写入参数;
S104:根据数据写入参数,将数据文件中的数据写入数据库。
在本实施例中,上述方法的执行主体可以为服务器。
在上述方法的执行主体为服务器时,并不限定服务器的实现形态。例如,服务器可以是常规服务器、云服务器、云主机、虚拟中心等服务器设备。其中,服务器的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类型。
在本实施例中,读取数据文件;获取数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;根据性能参数和运行参数,确定目标服务器的数据写入参数;根据数据写入参数,将数据文件中的数据写入数据库;针对不同类型的数据库,根据数据库对应的目标服务器的性能参数和运行参数,动态调整数据库入库参数,执行数据文件写入操作,提高数据入库效率。
在本公开的一些实施例中,图2为本公开实施例提供的一种数据入库的整体流程图。如图2所示,在读取数据文件时,通过主线程逐行读取数据文件并解析数据文件为SQL语句,然后,创建一个线程池来管理插入数据库线程的操作。为了防止一次读取数据文件数量过大,造成内存溢出,设置行数阈值,当读取到行数阈值的行数时,会把这些行数的数据添加到一个写文件子线程去做插入到数据库的处理。写文件子线程会把拿到的数据做遍历,然后根据预设的批量提交条数,遍历到该批量提交条数做一个事务的批处理提交,以减少访问数据库之前的输入输出时间消耗,减小网络传输压力,直到数据都提交完成,子线程执行完。需要说明的是,本公开实施例对行数阈值不作限定,可以根据实际情况作出调整,行数阈值可以为5行、10行和50行等。
需要说明的是,目标服务器是指为数据文件待写入的数据库提供服务的服务器。关于服务器的具体形式可参见前述主体的描述部分。
需要说明的是,目标服务器的性能参数,指的是服务器自身的硬件物理参数;性能参数包括但不限于:CPU内核数量、CPU主频、CPU外频、硬盘空间和内存空间。目标服务器的运行参数,是指服务器运行过程中的参数;运行参数包括但不限于:运行线程数、等待线程数和线程总数。
在上述数据入库过程中,涉及到几个数据写入参数会影响加载入库的性能。一,线程池核心线程数量和最大线程数;二,数据库的批量提交条数。若能够结合为数据库提供服务的服务器的性能参数和运行参数的实际情况,对上述数据写入参数进行动态调整,则可以提高数据入库效率。
在本公开的一些实施例中,根据性能参数和运行参数,确定目标服务器的数据写入参数。一种可实现的方式为,根据CPU内核数量、运行线程数和等待线程数,确定核心线程数。当线程池中核心线程数过大,线程与线程之前争取CPU资源,这样会导致上下文切换。过多的上下文切换会增加线程的执行时间,影响了整体执行的效率;而当线程池中的核心线程数量过少时,如果有大量任务处理需要处理,可能导致大量任务在任务队列中等待执行。因此,需要确定一个最优的核心线程数Y,其中,核心线程数Y的确定方式如下。
在运行线程数大于等待线程数的情况下,核心线程数的计算公式如下:
Y=A/(1-k)+(B-C)/2;
在运行线程数小于等于等待线程数的情况下,核心线程数的计算公式如下:
Y=A/(1-k)-(C-B)/2;
其中,A为CPU内核数量,k为阻塞系数,B为运行线程数,C为等待线程数,Y为核心线程数。需要说明的是,k的取值范围可以为0.8-0.9,k的起始值可以为0.8。
图3为本公开实施例提供的一种核心线程数确定方法的流程图。如图3所示,在开始读取数据文件时,读取目标服务器的CPU内核数量,建立线程池,核心线程数Y的初始值为,A/(1-k),其中,A为CPU内核数量,k为阻塞系数;Y为核心线程数。在运行线程数大于等待线程数的情况下,增加核心线程数(B-C)/2;在运行线程数小于等于等待线程数的情况下,减少核心线程数(C-B)/2。
在本公开的一些实施例中,根据核心线程数,确定最大线程数。一种可实现的方式为,最大线程数为2倍的核心线程数。其中,最大线程数的确定方式还可以为其他方式,本公开实施例对最大线程数的取值不作限定。
在本公开的一些实施例中,对应不同的数据库,数据库的批量提交条数的最优值是不同的。数据库的批量提交条数一种确定方式为,根据核心线程数、数据文件的数据量和数据库最大限制值,确定批量提交条数。一般情况下,批量提交条数越大,一次批量提交的耗时就越长。为了保证能做到每个核心子线程都去做提交到数据库的操作,当文件需要提交的数据量较少时,可均匀分配到每个子线程执行。此时,批量提交条数=文件数据量/核心线程数。当数据量较大时,把批量提交条数调整为数据库最大限制值。即在从数据文件的数据量与核心线程数的比值和数据库最大限制值之间选择出较小的值,作为批量提交条数。
需要说明的是,数据文件的数据量根据待写入的不同数据文件的数据量大小而不同。数据库最大限制值可以根据数据库的类型不作限定。
图4为本公开实施例提供的一种批量提交条数确定方法的流程示意图。如图4所示,获取文件数据量,获取数据库最大限制值和数据文件的数据量/核心线程数;判断数据库最大限制值和数据文件的数据量与核心线程数的比值之间较小的值;若数据库最大限制值较小,则将数据库最大限制值作为批量提交条数;若数据文件的数据量与核心线程数的比值较小,则将数据文件的数据量与核心线程数的比值作为批量提交条数。
在本公开实施例中,适用多种类型的数据库,包括分布式数据库。将数据库的特性作为参数导入,在数据文件入库的过程中,根据目标服务器的性能参数和运行参数,确定目标服务器的数据写入参数,来优化服务器数据入库的性能,提高数据入库效率。
结合上述各实施例的描述,图5为本公开实施例二提供的另一种数据入库方法的流程示意图。如图5所示,该方法包括:
S501:读取数据文件;
S502:获取数据文件待写入的数据库对应的目标服务器的运行线程数、等待线程数、CPU内核数量和数据库最大限制值;
S503:根据运行线程数、等待线程数、CPU内核数量和数据库最大限制值,确定批量提交条数、核心线程数和最大线程数;
S504:根据批量提交条数、核心线程数和最大线程数,将数据文件中的数据写入数据库。
在本实施例中,上述方法的执行主体可以为服务器,并不限定服务器的实现形态。例如,服务器可以是常规服务器、云服务器、云主机、虚拟中心等服务器设备。其中,服务器的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类型。
在本实施例中,上述方法的执行步骤可参见前述各实施例相应部分的描述,同时也能取得相应的有益效果。
在本公开上述方法实施例中,读取数据文件;获取数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;根据性能参数和运行参数,确定目标服务器的数据写入参数;根据数据写入参数,将数据文件中的数据写入数据库;针对不同类型的数据库,根据数据库对应的目标服务器的性能参数和运行参数,动态调整数据库入库参数,执行数据文件写入操作,提高数据入库效率。
图6为本公开示例性实施例提供的一种数据入库装置60的结构示意图。如图6所示,该数据入库装置60包括:读取模块61,获取模块62,确定模块63和写入模块64。
读取模块61,用于读取数据文件;
获取模块62,用于获取数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;
确定模块63,用于根据性能参数和运行参数,确定目标服务器的数据写入参数;
写入模块64,用于根据数据写入参数,将数据文件中的数据写入数据库。
可选地,运行参数包括:运行线程数和等待线程数;性能参数包括:CPU内核数量和数据库最大限制值,数据写入参数包括:核心线程数和批量提交条数,确定模块63在根据性能参数和运行参数,确定目标服务器的数据写入参数时,用于:
根据CPU内核数量、运行线程数和等待线程数,确定核心线程数;
根据核心线程数、数据文件的数据量和数据库最大限制值,确定批量提交条数。
可选地,确定模块63在根据CPU内核数量、运行线程数和等待线程数,确定核心线程数时,用于:
确定运行线程数和等待线程数的大小关系;
在运行线程数大于等待线程数的情况下,增加线程数,得到核心线程数;
在运行线程数小于等于等待线程数的情况下,减少线程数,得到核心线程数。
可选地,确定模块63在根据核心线程数、数据文件的数据量和数据库最大限制值,确定批量提交条数时,用于:
从数据文件的数据量与核心线程数的比值和数据库最大限制值之间选择出较小的值,作为批量提交条数。
可选地,运行参数包括:运行线程数和等待线程数,性能参数包括:CPU内核数量,数据写入参数包括:核心线程数和最大线程数,确定模块63在根据性能参数和运行参数,确定目标服务器的数据写入参数时,用于:
根据CPU内核数量、运行线程数和等待线程数,确定核心线程数;
根据核心线程数,确定最大线程数。
图7为本公开示例性实施例提供的一种电子设备的结构示意图。如图7所示,该电子设备包括:存储器701和处理器702。另外,该电子设备还包括电源组件703和通信组件704等必要组件。
存储器701,用于存储计算机程序,并可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。
存储器701,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
通信组件704,用于与其他设备进行数据传输。
处理器702,可执行存储器701中存储的计算机指令,以用于:读取数据文件;
获取数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;
根据性能参数和运行参数,确定目标服务器的数据写入参数;
根据数据写入参数,将数据文件中的数据写入数据库。
可选地,运行参数包括:运行线程数和等待线程数;性能参数包括:CPU内核数量和数据库最大限制值,数据写入参数包括:核心线程数和批量提交条数,处理器702在根据性能参数和运行参数,确定目标服务器的数据写入参数时,用于:
根据CPU内核数量、运行线程数和等待线程数,确定核心线程数;
根据核心线程数、数据文件的数据量和数据库最大限制值,确定批量提交条数。
可选地,根据CPU内核数量、运行线程数和等待线程数,处理器702在确定核心线程数时,用于:
确定运行线程数和等待线程数的大小关系;
在运行线程数大于等待线程数的情况下,增加线程数,得到核心线程数;
在运行线程数小于等于等待线程数的情况下,减少线程数,得到核心线程数。
可选地,在运行线程数大于等待线程数的情况下,核心线程数的计算公式如下:
Y=A/(1-k)+(B-C)/2;
在运行线程数小于等于等待线程数的情况下,核心线程数的计算公式如下:
Y=A/(1-k)-(C-B)/2;
其中,A为CPU内核数量,k为阻塞系数,B为运行线程数,C为等待线程数,Y为核心线程数。
可选地,处理器702在根据核心线程数、数据文件的数据量和数据库最大限制值,确定批量提交条数时,用于:
从数据文件的数据量与核心线程数的比值和数据库最大限制值之间选择出较小的值,作为批量提交条数。
可选地,处运行参数包括:运行线程数和等待线程数,性能参数包括:CPU内核数量,数据写入参数包括:核心线程数和最大线程数,处理器702在根据性能参数和运行参数,确定目标服务器的数据写入参数时,用于:
根据CPU内核数量、运行线程数和等待线程数,确定核心线程数;
根据核心线程数,确定最大线程数。
相应地,本公开实施例还提供一种存储有计算机程序的计算机可读存储介质。当计算机可读存储介质存储计算机程序,且计算机程序被一个或多个处理器执行时,致使一个或多个处理器执行图1方法实施例中的各步骤。
相应地,本公开实施例还提供一种计算机程序产品,计算机程序产品包括计算机程序/指令,计算机程序/指令被处理器执行图1的方法实施例中的各步骤。
上述图7中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、7G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述图7中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述图7中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
还可以包括音频组件。
音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
在本公开上述装置、设备、存储介质及程序产品实施例中,读取数据文件;获取数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;根据性能参数和运行参数,确定目标服务器的数据写入参数;根据数据写入参数,将数据文件中的数据写入数据库;针对不同类型的数据库,根据数据库对应的目标服务器的性能参数和运行参数,动态调整数据库入库参数,执行数据文件写入操作,提高数据入库效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据入库方法,其特征在于,包括:
读取数据文件;
获取所述数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;其中,所述运行参数包括:运行线程数和等待线程数;所述性能参数包括:CPU内核数量和数据库最大限制值;数据写入参数包括:核心线程数、批量提交条数和最大线程数;
根据所述CPU内核数量、所述运行线程数和所述等待线程数,确定所述核心线程数;
根据所述核心线程数、所述数据文件的数据量和所述数据库最大限制值,确定所述批量提交条数;
以及根据所述核心线程数,确定所述最大线程数;
根据所述数据写入参数,将所述数据文件中的数据写入所述数据库。
2.根据权利要求1所述的方法,所述根据所述CPU内核数量、所述运行线程数和所述等待线程数,确定所述核心线程数,其特征在于,包括:
确定所述运行线程数和所述等待线程数的大小关系;
在所述运行线程数大于所述等待线程数的情况下,增加线程数,得到所述核心线程数;
在所述运行线程数小于等于所述等待线程数的情况下,减少线程数,得到所述核心线程数。
3.根据权利要求2所述的方法,其特征在于,在所述运行线程数大于所述等待线程数的情况下,所述核心线程数的计算公式如下:
Y=A/(1-k)+(B-C)/2;
在所述运行线程数小于等于所述等待线程数的情况下,所述核心线程数的计算公式如下:
Y=A/(1-k)-(C-B)/2;
其中,A为所述CPU内核数量,k为阻塞系数,B为所述运行线程数,C为所述等待线程数,Y为核心线程数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述核心线程数、所述数据文件的数据量和所述数据库最大限制值,确定所述批量提交条数,包括:
从所述数据文件的数据量与所述核心线程数的比值和所述数据库最大限制值之间选择出较小的值,作为所述批量提交条数。
5.一种数据入库装置,其特征在于,包括:
读取模块,用于读取数据文件;
获取模块,用于获取所述数据文件待写入的数据库对应的目标服务器的性能参数和运行参数;其中,所述运行参数包括:运行线程数和等待线程数;所述性能参数包括:CPU内核数量和数据库最大限制值;数据写入参数包括:核心线程数、批量提交条数和最大线程数;
确定模块,用于根据所述CPU内核数量、所述运行线程数和所述等待线程数,确定所述核心线程数;根据所述核心线程数、所述数据文件的数据量和所述数据库最大限制值,确定所述批量提交条数;以及根据所述核心线程数,确定所述最大线程数;
写入模块,用于根据所述数据写入参数,将所述数据文件中的数据写入所述数据库。
6.根据权利要求5所述的装置,其特征在于,所述确定模块在根据所述CPU内核数量、所述运行线程数和所述等待线程数,确定所述核心线程数时,用于:
确定所述运行线程数和所述等待线程数的大小关系;
在所述运行线程数大于所述等待线程数的情况下,增加线程数,得到所述核心线程数;
在所述运行线程数小于等于所述等待线程数的情况下,减少线程数,得到所述核心线程数。
7.根据权利要求5所述的装置,其特征在于,所述确定模块在根据所述核心线程数、所述数据文件的数据量和所述数据库最大限制值,确定所述批量提交条数时,用于:
从所述数据文件的数据量与所述核心线程数的比值和所述数据库最大限制值之间选择出较小的值,作为所述批量提交条数。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-4中任一项所述的方法中的各步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1-4中任一项所述的方法。
CN202310540331.3A 2023-05-15 2023-05-15 数据入库方法、装置、设备、存储介质 Active CN116257365B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310540331.3A CN116257365B (zh) 2023-05-15 2023-05-15 数据入库方法、装置、设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310540331.3A CN116257365B (zh) 2023-05-15 2023-05-15 数据入库方法、装置、设备、存储介质

Publications (2)

Publication Number Publication Date
CN116257365A true CN116257365A (zh) 2023-06-13
CN116257365B CN116257365B (zh) 2023-08-22

Family

ID=86682827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310540331.3A Active CN116257365B (zh) 2023-05-15 2023-05-15 数据入库方法、装置、设备、存储介质

Country Status (1)

Country Link
CN (1) CN116257365B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120083000A (ko) * 2011-01-17 2012-07-25 전자부품연구원 병렬 제어 모듈을 동적으로 할당하는 방법
JP2016062388A (ja) * 2014-09-19 2016-04-25 日本電気株式会社 情報処理装置、情報処理方法及びそのプログラム
CN106407197A (zh) * 2015-07-28 2017-02-15 北京京东尚科信息技术有限公司 遍历数据的方法及装置
US20170090975A1 (en) * 2015-09-29 2017-03-30 International Business Machines Corporation Semantic-aware and user-aware admission control for performance management in data analytics and data storage systems
WO2017114199A1 (zh) * 2015-12-31 2017-07-06 阿里巴巴集团控股有限公司 一种数据同步方法和装置
US20210157635A1 (en) * 2019-11-21 2021-05-27 International Business Machines Corporation Determining an optimum number of threads to make available per core in a multi-core processor complex to execute tasks
CN113177826A (zh) * 2021-05-20 2021-07-27 青岛海信智慧生活科技股份有限公司 一种批量配置商品与小区的方法及装置
CN114422498A (zh) * 2021-12-14 2022-04-29 杭州安恒信息技术股份有限公司 大数据实时处理方法、系统、计算机设备及存储介质
WO2022088515A1 (zh) * 2020-10-28 2022-05-05 浙江纺织服装职业技术学院 一种海量数据处理并发任务自适应测控方法及系统
CN115543608A (zh) * 2022-09-06 2022-12-30 广西电网有限责任公司 有序用电用户基准负荷快速核算方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120083000A (ko) * 2011-01-17 2012-07-25 전자부품연구원 병렬 제어 모듈을 동적으로 할당하는 방법
JP2016062388A (ja) * 2014-09-19 2016-04-25 日本電気株式会社 情報処理装置、情報処理方法及びそのプログラム
CN106407197A (zh) * 2015-07-28 2017-02-15 北京京东尚科信息技术有限公司 遍历数据的方法及装置
US20170090975A1 (en) * 2015-09-29 2017-03-30 International Business Machines Corporation Semantic-aware and user-aware admission control for performance management in data analytics and data storage systems
WO2017114199A1 (zh) * 2015-12-31 2017-07-06 阿里巴巴集团控股有限公司 一种数据同步方法和装置
US20210157635A1 (en) * 2019-11-21 2021-05-27 International Business Machines Corporation Determining an optimum number of threads to make available per core in a multi-core processor complex to execute tasks
WO2022088515A1 (zh) * 2020-10-28 2022-05-05 浙江纺织服装职业技术学院 一种海量数据处理并发任务自适应测控方法及系统
CN113177826A (zh) * 2021-05-20 2021-07-27 青岛海信智慧生活科技股份有限公司 一种批量配置商品与小区的方法及装置
CN114422498A (zh) * 2021-12-14 2022-04-29 杭州安恒信息技术股份有限公司 大数据实时处理方法、系统、计算机设备及存储介质
CN115543608A (zh) * 2022-09-06 2022-12-30 广西电网有限责任公司 有序用电用户基准负荷快速核算方法及装置

Also Published As

Publication number Publication date
CN116257365B (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
TW201608454A (zh) 一種後台應用的操作方法及裝置
CN107688626B (zh) 慢查询日志处理方法、装置及电子设备
CN109359118B (zh) 一种数据写入方法及装置
US11144481B2 (en) Techniques for dynamically adjusting the manner in which I/O requests are transmitted between a computing device and a storage device
US20240126758A1 (en) Run-time performance of a database
WO2023108989A1 (zh) 数据访问方法、装置及非临时性计算机可读存储介质
CN109829678B (zh) 一种回滚处理方法、装置以及电子设备
CN116257365B (zh) 数据入库方法、装置、设备、存储介质
CN116225630A (zh) 事务处理方法、装置、电子设备、存储介质及程序产品
US20190228103A1 (en) Content-Based Filtering of Elements
CN109558445A (zh) 一种接口查询方法和可读存储介质
CN109753340B (zh) 虚拟机快照处理方法、装置及系统
CN110187987B (zh) 用于处理请求的方法和装置
CN112463213B (zh) 更新、读取统计值的方法和装置
KR101427526B1 (ko) 이동 단말기의 전력 관리 방법
CN113010514A (zh) 热加载方法及装置
CN111949563A (zh) 用于内存碎片整理的方法与设备
CN112817668B (zh) 日期选择器的交互方法和装置
US20190243515A1 (en) Invoke a Service in an Electronic Document Using a Trigger Entry
US11941074B2 (en) Fetching a query result using a query filter
CA3069092C (en) Optimal query scheduling for resource utilization optimization
CN110209746B (zh) 一种数据仓库的数据处理方法及装置
US20240320009A1 (en) Data access method and apparatus, and non-transient computer-readable storage medium
CN118034538A (zh) 信息处理方法、装置、设备、存储介质和程序产品
JP5678210B2 (ja) ポータブルコンピューティングデバイス内のリソースを管理するための方法およびシステム

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
GR01 Patent grant
GR01 Patent grant