CN112214487A - 数据写入方法及装置、计算机可读存储介质以及电子设备 - Google Patents

数据写入方法及装置、计算机可读存储介质以及电子设备 Download PDF

Info

Publication number
CN112214487A
CN112214487A CN202011041887.0A CN202011041887A CN112214487A CN 112214487 A CN112214487 A CN 112214487A CN 202011041887 A CN202011041887 A CN 202011041887A CN 112214487 A CN112214487 A CN 112214487A
Authority
CN
China
Prior art keywords
current
target database
data
speed
interval
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
CN202011041887.0A
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.)
JD Digital Technology Holdings Co Ltd
Original Assignee
JD Digital Technology Holdings 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 JD Digital Technology Holdings Co Ltd filed Critical JD Digital Technology Holdings Co Ltd
Priority to CN202011041887.0A priority Critical patent/CN112214487A/zh
Publication of CN112214487A publication Critical patent/CN112214487A/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/22Indexing; Data structures therefor; Storage structures
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

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

Abstract

本发明实施例是关于一种数据写入方法及装置、计算机可读存储介质以及电子设备,涉及数据传输技术领域,该方法包括:获取目标数据库的当前性能数据,并根据所述当前性能数据计算所述目标数据库所需的当前速率趋势;根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度;根据所述当前数据写入速度,将待写入数据写入至所述目标数据库中。本发明实施例解决了目标数据库的负担较重的问题。

Description

数据写入方法及装置、计算机可读存储介质以及电子设备
技术领域
本发明实施例涉及数据传输技术领域,具体而言,涉及一种数据写入方法、数据写入装置、计算机可读存储介质以及电子设备。
背景技术
当前,大数据平台经常需要通过管道工具在多个数据源之间移动数据,比如:将数据仓库中加工好的表数据推送到关系型数据库中,通常可选的推送工具有sqoop、datax等。
在一些方案中,为了达到将数据仓库中的表数据推送到关系型数据库中的目的,会启动一个数据管道任务进行处理,数据管道任务会读取数据仓库中的数据,然后写入关系型数据。
但是,上述方案存在目标数据库的负担较重、读写冲突、数据写入容易失败的问题。
因此,需要提供一种新的数据写入方法及装置。
需要说明的是,在上述背景技术部分发明的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的在于提供一种数据写入方法、数据写入装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的目标数据库的负担较重的问题。
根据本公开的一个方面,提供一种数据写入方法,包括:
获取目标数据库的当前性能数据,并根据所述当前性能数据计算所述目标数据库所需的当前速率趋势;
根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度;
根据所述当前数据写入速度,将待写入数据写入至所述目标数据库中。
在本公开的一种示例性实施例中,所述获取目标数据库的当前性能数据,包括:
获取根据预设的性能指标采集器采集到的初始性能数据;其中,所述性能指标采集器能够秒级对所述目标数据库的初始性能数据进行采集;
在确定所述目标数据库所属的类型为集群时,对所述初始性能数据进行数据聚合,得到所述目标数据库的当前性能评分。
在本公开的一种示例性实施例中,所述获取目标数据库的当前性能数据,还包括:
获取所述目标数据库的属性信息以及与所述属性信息对应的当前属性值;其中,所述属性信息包括处理器、网络、磁盘输入输出、内存以及慢查询中的多种;
根据所述目标数据库所属的类别,为所述属性信息配置权重;
对所述属性信息的权重以及与所述属性信息对应的当前属性值进行加权求和,得到所述目标数据库的当前性能评分。
在本公开的一种示例性实施例中,所述获取目标数据库的当前性能数据,还包括:
获取所述目标数据库的请求响应时间;
计算所述请求响应时间的平均值,并根据所述平均值得到所述目标数据库的当前性能评分。
在本公开的一种示例性实施例中,所述根据所述当前性能数据计算所述目标数据库所需的当前速率趋势,包括:
确定所述当前性能评分所属的分数区间;其中,所述分数区间包括低分区间、平均分区间以及高分区间;
根据所述分数区间对应的速率趋势,确定所述目标数据库所需的当前速率趋势。
在本公开的一种示例性实施例中,如果所述分数区间为低分区间,则所述目标数据库所需的当前速率趋势为降速;
如果所述分数区间为平均分区间,则所述目标数据库所需的当前速率趋势为匀速;
如果所述分数区间为高分区间,则所述目标数据库所需的当前速率为加速。
在本公开的一种示例性实施例中,如果所述分数区间为高分区间,则所述目标数据库所需的当前速率趋势为降速;
如果所述分数区间为平均分区间,则所述目标数据库所需的当前速率趋势为匀速;
如果所述分数区间为低分区间,则所述目标数据库所需的当前速率为加速。
在本公开的一种示例性实施例中,所述根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度,包括:
根据所述当前速率趋势以及预设的梯度增/减算法,计算所述目标数据库所需的当前数据写入速度。
在本公开的一种示例性实施例中,所述根据所述当前速率趋势以及预设的梯度增/减算法,计算所述目标数据库所需的当前数据写入速度,包括:
当所述当前速率趋势为降速时,基于预设的降速参数对当前传输速度进行减速,直至所述目标数据库的当前性能评分达到平均分区间;
当所述当前速率为加速时,基于预设的加速参数对当前传输速度进行加速,直至所述目标数据库的当前性能评分达到评分均区间。
根据本公开的一个方面,提供一种数据写入装置,包括:
第一计算模块,用于获取目标数据库的当前性能数据,并根据所述当前性能数据计算所述目标数据库所需的当前速率趋势;
第二计算模块,用于根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度;
数据写入模块,用于根据所述当前数据写入速度,将待写入数据写入至所述目标数据库中。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的数据写入方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的数据写入方法。
本发明实施例提供的一种数据写入方法,一方面,通过获取目标数据库的当前性能数据,并根据所述当前性能数据计算所述目标数据库所需的当前速率趋势,然后根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度;最后根据所述当前数据写入速度,将待写入数据写入至所述目标数据库中,由于当前数据写入速度是根据目标数据库的当前性能值进行决定的,进而可以解决现有技术中由于一个关系型数据库会有多张表,也就是说可能会在多张表需要进行数据推送,并且这些推送的任务可能会同时启动,因此会对目标数据库产生写的性能压力,进而导致目标数据库的负担较重的问题;另一方面,解决了现有技术中由于在数据推送的过程中,关系型数据库可能在被其它业务系统所读取调用,进而产生读写冲突,拖慢业务系统的响应,影响实际的生产业务,进而降低了生产业务的生产效率的问题;再一方面,解决了现有技术中由于为了解决由于生产业务的生产效率低的引起的生产事故问题,需要将上述数据推送的任务杀死,待数据库性能有所缓解后,再进行继续推送,进而导致数据写入失败的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出根据本发明示例实施例的一种数据写入方法的流程图。
图2示意性示出根据本发明示例实施例的一种数据写入系统的框图。
图3示意性示出根据本发明示例实施例的一种数据推送的场景示例图。
图4示意性示出根据本发明示例实施例的一种获取目标数据库的当前性能数据的方法流程图。
图5示意性示出根据本发明示例实施例的一种根据所述当前性能评分计算所述目标数据库所需的当前速率趋势的方法流程图。
图6示意性示出根据本发明示例实施例的一种分值区间的示例图。
图7示意性示出根据本发明示例实施例的一种利用本发明示例实施例的数据写入方法所得到的的性能评分曲线以及写入速度曲线。
图8示意性示出根据本发明示例实施例的一种不控速数据源的性能评分和写入速度曲线。
图9示意性示出根据本发明示例实施例的一种控速较差的数据源性能评分曲线和写入速度曲线。
图10示意性示出根据本发明示例实施例的一种数据写入装置的框图。
图11示意性示出根据本发明示例实施例的一种用于实现上述数据写入方法的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本发明的各方面变得模糊。
此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在实现本申请的实施例的过程中,发明人发现为了达到将数据仓库中的表数据推送到关系型数据库中的目的,会启动一个数据管道任务进行处理,数据管道任务会读取数据仓库中的数据,然后写入关系型数据。而一方面,由于一个关系型数据库会有多张表,也就是说可能会存在多张表需要进行数据推送,并且这些推送的任务可能会同时启动,因此会对目标数据库产生写的性能压力,进而导致目标数据库的负担较重;另一方面,在数据推送的过程中,关系型数据库可能在被其它业务系统所读取调用,进而产生读写冲突,拖慢业务系统的响应,影响实际的生产业务,进而降低了生产业务的生产效率;再一方面,为了解决由于生产业务的生产效率低的引起的生产事故问题,需要将上述数据推送的任务杀死,待数据库性能有所缓解后,再进行继续推送,进而导致数据写入失败。
为了克服上述缺陷,本示例实施方式中首先提供了一种数据写入方法,该方法可以运行于服务器、服务器集群或云服务器等;当然,本领域技术人员也可以根据需求在其他平台运行本发明的方法,本示例性实施例中对此不做特殊限定。参考图1所示,该数据写入方法可以包括以下步骤:
步骤S110.获取目标数据库的当前性能数据,并根据所述当前性能数据计算所述目标数据库所需的当前速率趋势;
步骤S120.根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度;
步骤S130.根据所述当前数据写入速度,将待写入数据写入至所述目标数据库中。
上述数据写入方法中,一方面,通过获取目标数据库的当前性能数据,并根据所述当前性能数据计算所述目标数据库所需的当前速率趋势,然后根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度;最后根据所述当前数据写入速度,将待写入数据写入至所述目标数据库中,由于当前数据写入速度是根据目标数据库的当前性能值进行决定的,进而可以解决现有技术中由于一个关系型数据库会有多张表,也就是说可能会在多张表需要进行数据推送,并且这些推送的任务可能会同时启动,因此会对目标数据库产生写的性能压力,进而导致目标数据库的负担较重的问题;另一方面,解决了现有技术中由于在数据推送的过程中,关系型数据库可能在被其它业务系统所读取调用,进而产生读写冲突,拖慢业务系统的响应,影响实际的生产业务,进而降低了生产业务的生产效率的问题;再一方面,解决了现有技术中由于为了解决由于生产业务的生产效率低的引起的生产事故问题,需要将上述数据推送的任务杀死,待数据库性能有所缓解后,再进行继续推送,进而导致数据写入失败的问题。
以下,将结合附图对本发明示例实施例数据写入方法中涉及的各步骤进行详细的解释以及说明。
首先,对本发明示例实施例中所涉及的名词进行如下解释:
数据仓库:是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策,通常需要某种存储技术来实现,比如:hive。
关系型数据库:是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,比如:mysql。
数据管道:连接两种数据源,从源数据源(数据仓库)向目标数据源(目标数据库)复制写入数据,常见的数据管道组件有sqoop以及datax。
性能指标:用于评估数据源、服务器某个维度性能好坏的值,比如cpu的使用率。
性能评分:综合数据源或则服务器所有维度性能指标后,计算出来的分数,通常能够代表数据源或则服务器的整体性能状态。
写入速度:通常指数据源被写入数据的速度,比如:10M/S。
首先,对本发明示例实施例所涉及的数据写入系统进行解释以及说明。参考图2所示,该数据写入系统可以包括存储待写入数据的数据仓库210,传输待写入数据的数据管道220以及目标数据库230。其中,数据仓库、数据管道以及目标数据库依次连接,目标数据库可以包括Mysql、Hbase、Oracle以及Postgres等等。
具体的,数据写入过程可以参考图3所示:S301,数据管道220从数据库仓库210中读取表1、表2以及表3,步骤S302,数据管道220将表1作为任务1写入目标数据库Mysql330的表1、表2以及表3中。但是,在此过程中会存在如下情况:会有业务系统310从Mysql中读取表1、表2以及表3中的数据,为了可以使得业务系统可以顺利的读取数据,需要将数据写入任务杀死,待目标数据库性能有所缓解后,再进行继续推送在人工调起,整个过程耗费人力。
本发明示例实施例提供一种数据写入方法,可以智能的去控制数据管道的数据推送速率,自动调节对目标数据库的写入压力,以解决管道数据推送对业务系统的影响,保障生产业务系统能够平稳运行,同时兼顾数据推送的吞吐量,平衡两者关系,最大化减少人工投入的干预。
以下,将对步骤S110-步骤S130进行解释以及说明。
在步骤S110中,获取目标数据库的当前性能数据,并根据所述当前性能数据计算所述目标数据库所需的当前速率趋势。
在本示例实施例中,首先,获取目标数据库的当前性能数据,其中,该当前性能数据可以包括当前性能值以及当前性能评分;当前性能值可以直接根据目标数据库的当前状态直接获取得到,当得到当前性能值以后,需要建立算法对目标数据库的当前性能进行评分,这个评分的结果用来指示当前数据源的性能高低,后续可以对评分设置控速规则,评分的算法根据不同的数据源有不同的设置,通常是百分制。具体的,在本发明示例实施例中,以目标数据库为Mysql以及Hbase为例,对具体的数据写入过程进行解释以及说明,其他的目标数据库,例如Oracle以及Postgres,其原理与Hbase类似,本示例对此不再一一赘述。
以下,将根据目标数据库所属的不同类别,对当前性能数据的具体获取过程进行解释以及说明。
首先,当目标数据库为Mysql时,获取目标数据库的当前性能数据可以包括:获取根据预设的性能指标采集器采集到的初始性能数据;其中,所述性能指标采集器能够秒级对所述目标数据库的初始性能数据进行采集;在确定所述目标数据库所属的类型为集群时,对所述初始性能数据进行数据聚合,得到所述目标数据库的当前性能评分。当然,若目标数据库所述的类型非集群,也可以直接获取根据预设的性能指标采集器采集到的初始性能数据,进而直接根据该初始性能数据得到目标数据库的当前性能评分。
举例来说,为了可以实现自动化的解决数据管道推数任务对目标关系型数据库的压力问题,首先必须能够知道目标数据库的性能压力情况,为达到这个目的,需要一个数据源性能指标采集器,具体的,该性能指标采集器能够秒级采集目标数据库的性能数据,当获取到性能指标采集器采集到的性能数据后,如果目标数据库是一个集群,则需要对该性能数据进行聚合,进而将该聚合处理后的当前性能值作为当前性能评分。此处需要补充说明的是,由于该性能指标采集器能够秒级采集目标数据库的性能数据,进而可以实时的根据目标数据的性能数据控制输入写入速度,进而降低目标数据库的负担。
其次,若是没有性能指标采集器,参考图4所示,也可以通过如下方式获取目标数据库的当前性能数据:
在步骤S410中,获取所述目标数据库的属性信息以及与所述属性信息对应的当前属性值;其中,所述属性信息包括处理器、网络、磁盘输入输出、内存以及慢查询中的多种;
在步骤S420中,根据所述目标数据库所属的类别,为所述属性信息配置权重;
在步骤S430中,对所述属性信息的权重以及与所述属性信息对应的当前属性值进行加权求和,得到所述目标数据库的当前性能评分。
以下,将对步骤S410-步骤S430进行解释以及说明。首先,获取目标数据库Mysql(所在的服务器)的属性信息,以及与各属性信息对应的属性值;其中,各属性信息可以包括处理器(CPU)、网络、磁盘输入输出、内存以及慢查询(慢sql)中等等;与各属性信息对应的属性值可以包括处理器的利用率、网络的流量、磁盘输入输出的速度、内存的占用率以及慢查询的具体排名顺序;其次,由于目标数据库为Mysql,其为存储型的数据库,较为注重内存,因此相较于其他属性信息来说,内存信息的权重要大于其他属性信息;此处需要补充说明的是,各属性信息的权重之和为1;最后,可以对各属性信息的权重以及对应的当前属性值进行加权求和,进而到当前性能评分。
进一步的,当目标数据库为Hbase时,取目标数据库的当前性能数据,可以包括:获取所述目标数据库的请求响应时间;计算所述请求响应时间的平均值,并根据所述平均值得到所述目标数据库的当前性能评分。
举例来说,如果目标数据库是hbase等基于java技术的进程,可以通过JMX(JavaManagement Extensions,Java管理扩展)端口来获取存储中间件(目标数据库)的性能指标(响应时间),进而根据该响应时间得到目标数据库的当前性能评分;其中,该目标数据库可以通过该端口来接收发送方发送的数据写入请求。
此处需要进一步补充说明的是,通过根据目标数据库的具体类别,选取相应的方法计算其当前性能评分,可以提高当前性能评分的准确率,进而提高数据写入速度的准确率,避免速度过大引起的目标数据库压力过大的问题,同时还可以避免由于速度过小造成的资源浪费的问题。并且,上述当前性能评分的计算逻辑通常由评分及速率计算服务来完成,计算的时机是服务接口被数据管道中控速模块调用时进行。
其次,在本示例实施例中,当得到上述目标数据库的当前性能数据以后,可以根据所述当前性能数据计算所述目标数据库所需的当前速率趋势。具体的,参考图5所示,根据所述当前性能评分计算所述目标数据库所需的当前速率趋势可以包括步骤S510以及步骤S520。其中:
在步骤S510中,确定所述当前性能评分所属的分数区间;其中,所述分数区间包括低分区间、平均分区间以及高分区间;
在步骤S520中,根据所述分数区间对应的速率趋势,确定所述目标数据库所需的当前速率趋势。其中,如果所述分数区间为低分区间,则所述目标数据库所需的当前速率趋势为降速;如果所述分数区间为平均分区间,则所述目标数据库所需的当前速率趋势为匀速;如果所述分数区间为高分区间,则所述目标数据库所需的当前速率为加速。当然,该上述分数区间对应的速度趋势反过来也成立,即:如果所述分数区间为高分区间,则所述目标数据库所需的当前速率趋势为降速;如果所述分数区间为平均分区间,则所述目标数据库所需的当前速率趋势为匀速;如果所述分数区间为低分区间,则所述目标数据库所需的当前速率为加速。
以下,将对步骤S510以及步骤S520进行解释以及说明。具体的,有了目标数据库的当前性能评分之后,需要设置目标数据库的控速规则,这通常是分值区间,该区间包括减速区间(低分区间或者高分区间)、维持区间(平局分区间)以及提速区间(高分区间或者低分区间),具体可以参考图6所示。具体的,比如:维持区间为60-85分,然后基于规则进行速率控制计算。以区间60-85为例,系统会认为在目标数据库的当前性能评分少于60或大于85时需要进行减速,直到分数达到60以上或者85以下,以减轻数据压力;当目标数据库的当前性能评分分数在60-85之间时,维持速率不变,这个分数是业务系统能够接受的性能状态;当目标数据库的当前性能评分在85以上或者60以下时,需要进行提速,直到分数降低到85以下或者60以上,提高数据源的吞吐率。速率趋势控制计算通常和目标数据库的当前性能评分一同在服务接口中处理计算。
在步骤S120中,根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度。
在本示例实施例中,当得到上述当前速率趋势以后,可以根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度。具体的,可以包括:根据所述当前速率趋势以及预设的梯度增/减算法,计算所述目标数据库所需的当前数据写入速度;也即:当所述当前速率趋势为降速时,基于预设的降速参数对当前传输速度进行减速,直至所述目标数据库的当前性能评分达到平均分区间;当所述当前速率为加速时,基于预设的加速参数对当前传输速度进行加速,直至所述目标数据库的当前性能评分达到评分均区间。
譬如,当后台服务能够计算目标数据库的速率控制方向后,数据管道中的控速模块会每隔一分钟定时获取控速趋势方向,然后进行实时控速,为了能够达到平滑控速的目的,以及控速后能够到达读写平衡,需要设计一套算法来进行控制。具体的,可以采用梯度增减来控制速度,也就是当控速方向为减速时,每次下降5%(降速参数,也可以根据实际需要自行设置,此处对此不做特殊限制)的速度进行减速,直到目标数据库的评分超过减速区为止。当控速方向为增速时,每次提升5%(加速参数,也可以根据实际需要自行设置,此处对此不做特殊限制)的速度进行增速,直到目标数据库的评分低于提速区为止。进一步的,在数据管道里增加控速模块,然后周期性调用服务接口获取速度趋势方向,数据管道组件通常自带速度控制机制,只需要动态更改值即可,如果没有自动控速机制,或者很难修改,可以通过休眠线程一段时间来达到平均写入速度下降的目的。控速的最佳状态是能够平滑从压力或者空闲状态达到平衡的维持状态,而剧烈非抖动状态。
在步骤S130中,根据所述当前数据写入速度,将待写入数据写入至所述目标数据库中。
具体的,当得到目标数据库可以适用的当前数据写入速度以后,即可根据该数据写入速度控制待写入数据,将其写入至目标数据库中。基于本发明示例实施例所提出的数据写入方法,通过对目标数据库进行良好的写入速率控制,能够保持数据库评分处于稳定的水平状态,写入和读取处于平衡状态,不会对业务系统产生影响。具体可以参考图7所示(良好的控速数据源的性能评分曲线和写入速度曲线)。另外,图8以及图9分别示出了不控速以及抖动控速的曲线图。其中,图8所示的不控速数据源的性能评分和写入速度曲线,不控制速率时,目标数据源评分低,写入速率较大,数据库压力大。图9所示的控速较差的数据源性能评分曲线和写入速度曲线。对数据源进行写入速率控制,如果速率算法不稳定则无法保证数据源性能评分的稳定,会产生强烈抖动,业务系统的响应时好时坏,非常的不稳定。
本发明示例实施例所提出的数据写入方法,可以解决数据管道数据推送中产生的读写冲突问题,并且,通过自动收集目标数据源的性能指标值、计算数据源的性能评分、得出数据源的增减速趋势,然后依托控速模块根据增减速趋势来进行实时动态的写入速率控制,最终达到推数智能控速的目的。
本发明示例实施例还提供了一种数据写入装置。参考图10所示,该数据写入装置可以包括第一计算模块1010、第二计算模块1020以及数据写入模块1030。其中:
第一计算模块1010可以用于获取目标数据库的当前性能数据,并根据所述当前性能数据计算所述目标数据库所需的当前速率趋势;
第二计算模块1020可以用于根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度;
数据写入模块1030可以用于根据所述当前数据写入速度,将待写入数据写入至所述目标数据库中。
在本公开的一种示例性实施例中,所述获取目标数据库的当前性能数据,包括:
获取根据预设的性能指标采集器采集到的初始性能数据;其中,所述性能指标采集器能够秒级对所述目标数据库的初始性能数据进行采集;
在确定所述目标数据库所属的类型为集群时,对所述初始性能数据进行数据聚合,得到所述目标数据库的当前性能评分。
在本公开的一种示例性实施例中,所述获取目标数据库的当前性能数据,还包括:
获取所述目标数据库的属性信息以及与所述属性信息对应的当前属性值;其中,所述属性信息包括处理器、网络、磁盘输入输出、内存以及慢查询中的多种;
根据所述目标数据库所属的类别,为所述属性信息配置权重;
对所述属性信息的权重以及与所述属性信息对应的当前属性值进行加权求和,得到所述目标数据库的当前性能评分。
在本公开的一种示例性实施例中,所述获取目标数据库的当前性能数据,还包括:
获取所述目标数据库的请求响应时间;
计算所述请求响应时间的平均值,并根据所述平均值得到所述目标数据库的当前性能评分。
在本公开的一种示例性实施例中,所述根据所述当前性能数据计算所述目标数据库所需的当前速率趋势,包括:
确定所述当前性能评分所属的分数区间;其中,所述分数区间包括低分区间、平均分区间以及高分区间;
根据所述分数区间对应的速率趋势,确定所述目标数据库所需的当前速率趋势。
在本公开的一种示例性实施例中,如果所述分数区间为低分区间,则所述目标数据库所需的当前速率趋势为降速;
如果所述分数区间为平均分区间,则所述目标数据库所需的当前速率趋势为匀速;
如果所述分数区间为高分区间,则所述目标数据库所需的当前速率为加速。
在本公开的一种示例性实施例中,如果所述分数区间为高分区间,则所述目标数据库所需的当前速率趋势为降速;
如果所述分数区间为平均分区间,则所述目标数据库所需的当前速率趋势为匀速;
如果所述分数区间为低分区间,则所述目标数据库所需的当前速率为加速。
在本公开的一种示例性实施例中,所述根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度,包括:
根据所述当前速率趋势以及预设的梯度增/减算法,计算所述目标数据库所需的当前数据写入速度。
在本公开的一种示例性实施例中,所述根据所述当前速率趋势以及预设的梯度增/减算法,计算所述目标数据库所需的当前数据写入速度,包括:
当所述当前速率趋势为降速时,基于预设的降速参数对当前传输速度进行减速,直至所述目标数据库的当前性能评分达到平均分区间;
当所述当前速率为加速时,基于预设的加速参数对当前传输速度进行加速,直至所述目标数据库的当前性能评分达到评分均区间。
上述数据写入装置中各模块的具体细节已经在对应的数据写入方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本发明的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图11来描述根据本发明的这种实施方式的电子设备1100。图11显示的电子设备1100仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:上述至少一个处理单元1110、上述至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130以及显示单元1140。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1110执行,使得所述处理单元1110执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1110可以执行如图1中所示的步骤S110:获取目标数据库的当前性能数据,并根据所述当前性能数据计算所述目标数据库所需的当前速率趋势;步骤S120:根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度;步骤S130:根据所述当前数据写入速度,将待写入数据写入至所述目标数据库中。
存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)11201和/或高速缓存存储单元11202,还可以进一步包括只读存储单元(ROM)11203。
存储单元1120还可以包括具有一组(至少一个)程序模块11205的程序/实用工具11204,这样的程序模块11205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1100也可以与一个或多个外部设备1200(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1100交互的设备通信,和/或与使得该电子设备1100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1150进行。并且,电子设备1100还可以通过网络适配器1160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1160通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本发明实施方式的方法。
在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其他实施例。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。

Claims (12)

1.一种数据写入方法,其特征在于,包括:
获取目标数据库的当前性能数据,并根据所述当前性能数据计算所述目标数据库所需的当前速率趋势;
根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度;
根据所述当前数据写入速度,将待写入数据写入至所述目标数据库中。
2.根据权利要求1所述的数据写入方法,其特征在于,所述获取目标数据库的当前性能数据,包括:
获取根据预设的性能指标采集器采集到的初始性能数据;其中,所述性能指标采集器能够秒级对所述目标数据库的初始性能数据进行采集;
在确定所述目标数据库所属的类型为集群时,对所述初始性能数据进行数据聚合,得到所述目标数据库的当前性能评分。
3.根据权利要求1所述的数据写入方法,其特征在于,所述获取目标数据库的当前性能数据,包括:
获取所述目标数据库的属性信息以及与所述属性信息对应的当前属性值;其中,所述属性信息包括处理器、网络、磁盘输入输出、内存以及慢查询中的多种;
根据所述目标数据库所属的类别,为所述属性信息配置权重;
对所述属性信息的权重以及与所述属性信息对应的当前属性值进行加权求和,得到所述目标数据库的当前性能评分。
4.根据权利要求1所述的数据写入方法,其特征在于,所述获取目标数据库的当前性能数据,包括:
获取所述目标数据库的请求响应时间;
计算所述请求响应时间的平均值,并根据所述平均值得到所述目标数据库的当前性能评分。
5.根据权利要求2-4任一项所述的数据写入方法,其特征在于,所述根据所述当前性能数据计算所述目标数据库所需的当前速率趋势,包括:
确定所述当前性能评分所属的分数区间;其中,所述分数区间包括低分区间、平均分区间以及高分区间;
根据所述分数区间对应的速率趋势,确定所述目标数据库所需的当前速率趋势。
6.根据权利要求5所述的数据写入方法,其特征在于,如果所述分数区间为低分区间,则所述目标数据库所需的当前速率趋势为降速;
如果所述分数区间为平均分区间,则所述目标数据库所需的当前速率趋势为匀速;
如果所述分数区间为高分区间,则所述目标数据库所需的当前速率为加速。
7.根据权利要求5所述的数据写入方法,其特征在于,如果所述分数区间为高分区间,则所述目标数据库所需的当前速率趋势为降速;
如果所述分数区间为平均分区间,则所述目标数据库所需的当前速率趋势为匀速;
如果所述分数区间为低分区间,则所述目标数据库所需的当前速率为加速。
8.根据权利要求5所述的数据写入方法,其特征在于,所述根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度,包括:
根据所述当前速率趋势以及预设的梯度增/减算法,计算所述目标数据库所需的当前数据写入速度。
9.根据权利要求8所述的数据写入方法,其特征在于,所述根据所述当前速率趋势以及预设的梯度增/减算法,计算所述目标数据库所需的当前数据写入速度,包括:
当所述当前速率趋势为降速时,基于预设的降速参数对当前传输速度进行减速,直至所述目标数据库的当前性能评分达到平均分区间;
当所述当前速率为加速时,基于预设的加速参数对当前传输速度进行加速,直至所述目标数据库的当前性能评分达到评分均区间。
10.一种数据写入装置,其特征在于,包括:
第一计算模块,用于获取目标数据库的当前性能数据,并根据所述当前性能数据计算所述目标数据库所需的当前速率趋势;
第二计算模块,用于根据所述当前速率趋势计算所述目标数据库所需的当前数据写入速度;
数据写入模块,用于根据所述当前数据写入速度,将待写入数据写入至所述目标数据库中。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-9任一项所述的数据写入方法。
12.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-9任一项所述的数据写入方法。
CN202011041887.0A 2020-09-28 2020-09-28 数据写入方法及装置、计算机可读存储介质以及电子设备 Pending CN112214487A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011041887.0A CN112214487A (zh) 2020-09-28 2020-09-28 数据写入方法及装置、计算机可读存储介质以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011041887.0A CN112214487A (zh) 2020-09-28 2020-09-28 数据写入方法及装置、计算机可读存储介质以及电子设备

Publications (1)

Publication Number Publication Date
CN112214487A true CN112214487A (zh) 2021-01-12

Family

ID=74052268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011041887.0A Pending CN112214487A (zh) 2020-09-28 2020-09-28 数据写入方法及装置、计算机可读存储介质以及电子设备

Country Status (1)

Country Link
CN (1) CN112214487A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106170016A (zh) * 2016-07-28 2016-11-30 深圳市创梦天地科技有限公司 一种处理高并发数据请求的方法和系统
US20180225333A1 (en) * 2017-02-08 2018-08-09 International Business Machines Corporation Data write/import performance in a database through distributed memory
CN108427711A (zh) * 2018-01-31 2018-08-21 北京三快在线科技有限公司 实时数据仓库、实时数据处理方法、电子设备及存储介质
US20190132387A1 (en) * 2017-10-30 2019-05-02 General Electric Company Dynamic flow control for stream processing
US20200089776A1 (en) * 2018-09-14 2020-03-19 International Business Machines Corporation Method for migrating data records from a source database to a target database
CN111125336A (zh) * 2019-12-28 2020-05-08 上海智臻智能网络科技股份有限公司 信息提示方法、装置、设备及介质
CN111277511A (zh) * 2020-01-19 2020-06-12 深圳壹账通智能科技有限公司 传输速率控制方法、装置、计算机系统及可读存储介质
CN111562885A (zh) * 2020-04-30 2020-08-21 苏州亿歌网络科技有限公司 数据处理方法、装置、计算机设备及存储介质
CN111625558A (zh) * 2020-05-07 2020-09-04 苏州浪潮智能科技有限公司 一种服务器架构及其数据库查询方法和存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106170016A (zh) * 2016-07-28 2016-11-30 深圳市创梦天地科技有限公司 一种处理高并发数据请求的方法和系统
US20180225333A1 (en) * 2017-02-08 2018-08-09 International Business Machines Corporation Data write/import performance in a database through distributed memory
US20190132387A1 (en) * 2017-10-30 2019-05-02 General Electric Company Dynamic flow control for stream processing
CN108427711A (zh) * 2018-01-31 2018-08-21 北京三快在线科技有限公司 实时数据仓库、实时数据处理方法、电子设备及存储介质
US20200089776A1 (en) * 2018-09-14 2020-03-19 International Business Machines Corporation Method for migrating data records from a source database to a target database
CN111125336A (zh) * 2019-12-28 2020-05-08 上海智臻智能网络科技股份有限公司 信息提示方法、装置、设备及介质
CN111277511A (zh) * 2020-01-19 2020-06-12 深圳壹账通智能科技有限公司 传输速率控制方法、装置、计算机系统及可读存储介质
CN111562885A (zh) * 2020-04-30 2020-08-21 苏州亿歌网络科技有限公司 数据处理方法、装置、计算机设备及存储介质
CN111625558A (zh) * 2020-05-07 2020-09-04 苏州浪潮智能科技有限公司 一种服务器架构及其数据库查询方法和存储介质

Similar Documents

Publication Publication Date Title
US9223875B2 (en) Real-time distributed in memory search architecture
US9683852B2 (en) Dispatching map matching tasks by a cluster server
CN109710405B (zh) 区块链智能合约管理方法、装置、电子设备及存储介质
US10732853B2 (en) Dynamic memory management techniques
CN112860695B (zh) 监控数据查询方法、装置、设备、存储介质及程序产品
US20230222002A1 (en) Techniques for modifying cluster computing environments
CN109508326B (zh) 用于处理数据的方法、装置和系统
CN113407649A (zh) 数据仓库建模方法、装置、电子设备及存储介质
JP2012118987A (ja) メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ)
CN107016115B (zh) 数据导出方法、装置、计算机可读存储介质及电子设备
CN111723161A (zh) 一种数据处理方法、装置及设备
KR20220129085A (ko) 통계 수집 오프로딩
CN115344207A (zh) 数据处理方法、装置、电子设备及存储介质
CN116166191A (zh) 湖仓一体系统
CN113590437B (zh) 一种告警信息处理方法、装置、设备和介质
CN112214487A (zh) 数据写入方法及装置、计算机可读存储介质以及电子设备
US10346371B2 (en) Data processing system, database management system, and data processing method
WO2021227636A1 (zh) 微服务处理方法及装置、存储介质及电子设备
CN117093335A (zh) 分布式存储系统的任务调度方法及装置
CN114116782A (zh) 分布式数据库资源管控方法、装置、电子设备和存储介质
CN110765136A (zh) 标识符的管理方法、装置、介质及设备
US20230136226A1 (en) Techniques for auto-tuning compute load resources
US11550793B1 (en) Systems and methods for spilling data for hash joins
CN114820079B (zh) 人群确定方法、装置、设备及介质
US20230051059A1 (en) Relationship analysis using vector representations of database tables

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
CB02 Change of applicant information

Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Technology Holding Co.,Ltd.

Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant before: Jingdong Digital Technology Holding Co., Ltd