CN109271409A - 一种基于容器资源分配的数据库分片执行方法 - Google Patents

一种基于容器资源分配的数据库分片执行方法 Download PDF

Info

Publication number
CN109271409A
CN109271409A CN201811336227.8A CN201811336227A CN109271409A CN 109271409 A CN109271409 A CN 109271409A CN 201811336227 A CN201811336227 A CN 201811336227A CN 109271409 A CN109271409 A CN 109271409A
Authority
CN
China
Prior art keywords
container
database
query
fragment
task
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
CN201811336227.8A
Other languages
English (en)
Other versions
CN109271409B (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.)
Chengdu Sobei Video Cloud Computing Co ltd
Original Assignee
Chengdu Sobey Digital 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 Chengdu Sobey Digital Technology Co Ltd filed Critical Chengdu Sobey Digital Technology Co Ltd
Priority to CN201811336227.8A priority Critical patent/CN109271409B/zh
Publication of CN109271409A publication Critical patent/CN109271409A/zh
Application granted granted Critical
Publication of CN109271409B publication Critical patent/CN109271409B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于容器资源分配的数据库分片执行方法,涉及数据库语句分片技术领域,本发明包括如下步骤:S1查询语句预分片:任务调度组件将查询语句传入数据库,数据库计算出执行计划,任务调度组件根据执行计划对查询语句进行预分片;S2调整查询语句预分片结果:容器管理组件查询各物理节点的可用资源,任务调度组件根据返回的可用资源信息,调整预分片结果;S3申请并启动容器资源:容器管理组件申请在物理节点部署包含对应资源的容器,启动对应容器,将预分片结果分发到对应容器中;S4执行实际查询任务,本发明提前获取数据库中的执行计划以及现有容器资源情况,自动对查询语句进行分片处理,实现最大化利用现有资源,提高了资源利用率。

Description

一种基于容器资源分配的数据库分片执行方法
技术领域
本发明涉及数据库语句分片技术领域,更具体的是涉及一种基于容器资源分配的数据库分片执行方法。
背景技术
现有技术中,当直接对数据库中的大表进行查询时,例如查询显示某张表内的所有信息(select*from A),主要存在两种问题:一方面数据的查询速度慢,难以满足实时性要求;另一方面数据量很大,单节点的内存中可能存放不下这么多查询结果,例如100万条数据。随着分布式集群和容器技术的发展,应用和数据库都越来越倾向于部署于分布式集群之中,以提高应用和数据的可用性和实时性。
数据库中也存在着一些数据分片的方法,比如MySQL的分表分区、NoSQL的分片方法,但这些方法都是以来数据索引实现的,没有考虑在应用端将查询语句进行有效拆分,数据库内的数据流量过大,对数据库内部处理速度和带宽要求很高,而应用层在实际处理中,往往需要自定义分区Read,一般通过设置自定义分区字段来控制。
而Spark中对SQL查询数据操作的MapReduce方法,是基于预定义RDD分区大小来指定的,相对来说比较死板,在系统设计时已经被写定了,无法根据现有容器(docker)资源对语句进行动态分片,对资源的利用效率较差。
发明内容
本发明的目的在于:为了解决现有的数据库查询操作较死板,无法根据现有容器资源对语句进行动态分片,资源利用效率较差的问题,本发明提供一种基于容器资源分配的数据库分片执行方法,提前获取数据库中的执行计划以及现有容器资源情况,自动对查询语句进行分片处理,实现最大化利用现有资源,提高资源利用率。
本发明为了实现上述目的具体采用以下技术方案:
一种基于容器资源分配的数据库分片执行方法,包括如下步骤:
S1:查询语句预分片
任务调度组件将应用层中输入的数据库查询语句传入数据库,数据库计算出执行计划,并将执行计划返回至任务调度组件,任务调度组件根据执行计划对查询语句进行预分片;
S2:调整查询语句预分片结果
容器管理组件查询各物理节点的可用资源,并将各物理节点的可用资源信息返回至任务调度组件,任务调度组件根据返回的可用资源信息,调整预分片结果;
S3:申请并启动容器资源
容器管理组件按照调整后的预分片结果,申请在物理节点部署包含对应资源的容器,申请通过后启动对应容器,并将调整后的预分片结果分发到各对应容器中;
S4:执行实际查询任务
各容器收到对应的预分片结果后,作为查询任务实际的发起者,将查询任务发送到数据库完成查询任务。
进一步的,所述S1中应用层输入的数据库查询语句为DQL。
进一步的,所述S1中的执行计划包括预计执行规模、预计开销和预计时间等信息。
进一步的,所述S1中任务调度组件对查询语句进行预分片依据的预分片策略由人工设置。
进一步的,所述S2中容器管理组件查询各物理节点的可用资源,包括可用内存、CPU使用率等信息。
进一步的,所述S2中任务调度组件根据返回的可用资源信息调整预分片结果的方法为:
若物理节点可用资源较少,则将该预分片的语句查询范围缩小;
若物理节点可用资源较多,则将该预分片的语句查询范围扩大;
若现有可用资源不足以完整执行查询语句,则暂缓不能执行的部分查询任务,待存在可用物理节点时,再次进行预分片结果调整。
进一步的,所述S4具体包括如下步骤:
S4.1:将查询任务发送到数据库中;
S4.2:数据库执行查询语句,并返回查询结果至对应容器;
S4.3:各容器再将各自查询任务执行状况进行结果汇总,发送给任务调度组件,容器管理组件再次申请容器资源,将汇总操作分配到容器资源中,直至查询任务全部执行完毕。
本发明的有益效果如下:
1、本发明通过预先获知数据库的执行计划和现有容器资源情况,对二者进行合理协调统筹,自动对操作语句进行分片处理,通过对查询语句进行初分片和精调整,基于分布处理的思想使得分片结果契合现有的物理计算资源,最大程度利用现有资源,操作语句的实时性大幅上升,极大提高了资源利用率。
2、本发明根据数据库对未分片语句的执行计划来对查询语句进行分片,分片过程有章可循,可自动由不同的执行计划产生分片结果;同时很据分布式框架内现有可用的物理资源创建容器,将查询语句重新分散到各容器内的应用,由容器应用完成实际查询任务,系统流程灵活性很强。
附图说明
图1是本发明的方法流程示意图。
具体实施方式
为了本技术领域的人员更好的理解本发明,下面结合附图和以下实施例对本发明作进一步详细描述。
实施例1
如图1所示,本实施例提供一种基于容器资源分配的数据库分片执行方法,本实施例中的SQL为支持SQL92标准的数据库查询,不限于关系型数据库,本实施例的方法基于任务调度组件和容器管理组件,
任务调度模块:能够将查询语句送入数据库,获取数据库的执行计划;能够根据执行计划,对查询语句预分片;能够获取容器管理组件中的容器资源现状,并根据资源现状调整查询语句预分片结果;
容器管理组件:能够监控各物理节点的资源现状;能够在各物理节点中开启容器,并将查询语句片段分发到各容器之中;能够汇总各容器的语句操作结果,并将操作结果发送到任务调度组件;
一种基于容器资源分配的数据库分片执行方法,包括如下步骤:
S1:查询语句预分片
任务调度组件将应用层中输入的数据库查询语句传入数据库,查询语句为DQL,例如select*from A,数据库计算出执行计划,所述执行计划包括预计执行规模、预计开销和预计时间等信息,并将执行计划返回至任务调度组件,任务调度组件根据执行计划对查询语句进行预分片,预分片策略由人工设置,若执行计划返回A中包括5000条记录,则将查询语句划分为从A表的第0-1000条记录中查询、第1000-2000条记录中查询、第2000-3000条记录中查询、第3000-4000条记录中查询和第4000-5000条记录中查询;
S2:调整查询语句预分片结果
容器管理组件查询各物理节点的可用资源,包括可用内存、CPU使用率等信息,并将各物理节点的可用资源信息返回至任务调度组件,任务调度组件根据返回的可用资源信息,调整预分片结果,例如容器节点集群包括5个节点,5个节点中的可用内存分别为500MB、500MB、1GB、2GB和500MB,假设1GB内存恰好执行1000条记录的查询和缓存任务,则任务调度组件根据返回的可用资源信息调整预分片结果的方法为:
若物理节点可用资源较少,则将该预分片的语句查询范围缩小,如节点可用内存为500MB,则将包含1000条记录的查询范围缩小为500;
若物理节点可用资源较多,则将该预分片的语句查询范围扩大,如节点可用内存为2GB,则将包含1000条记录的查询范围扩大为2000;
若现有可用资源不足以完整执行查询语句,如上述5个节点只能支持4500条记录范围的查询任务,则暂缓不能执行的500条记录的查询任务,待存在可用物理节点时,再次进行预分片结果调整;
S3:申请并启动容器资源
提前在物理节点中设置容器封装环境,以便容器在该环境下执行应用任务,容器管理组件按照调整后的预分片结果,申请在物理节点部署包含对应资源的容器,申请通过后启动对应容器,并将调整后的预分片结果分发到各对应容器中,如500条记录范围的查询任务分发到500MB内存的容器中;
S4:执行实际查询任务
各容器收到对应的预分片结果后,作为查询任务实际的发起者,将查询任务发送到数据库完成查询任务,具体包括如下步骤:
S4.1:将查询任务发送到数据库中;
S4.2:数据库执行查询语句,并返回查询结果至对应容器;
S4.3:各容器再将各自查询任务执行状况进行结果汇总,发送给任务调度组件,容器管理组件再次申请容器资源,将汇总操作分配到容器资源中,直至查询任务全部执行完毕。
本实施例通过预先获知数据库的执行计划和现有容器资源情况,对二者进行合理协调统筹,自动对操作语句进行分片处理,通过对查询语句进行初分片和精调整,基于分布处理的思想使得分片结果契合现有的物理计算资源,最大程度利用现有资源,操作语句的实时性大幅上升,极大提高了资源利用率。
以上所述,仅为本发明的较佳实施例,并不用以限制本发明,本发明的专利保护范围以权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。

Claims (6)

1.一种基于容器资源分配的数据库分片执行方法,其特征在于,包括如下步骤:
S1:查询语句预分片
任务调度组件将应用层中输入的数据库查询语句传入数据库,数据库计算出执行计划,并将执行计划返回至任务调度组件,任务调度组件根据执行计划对查询语句进行预分片;
S2:调整查询语句预分片结果
容器管理组件查询各物理节点的可用资源,并将各物理节点的可用资源信息返回至任务调度组件,任务调度组件根据返回的可用资源信息,调整预分片结果;
S3:申请并启动容器资源
容器管理组件按照调整后的预分片结果,申请在物理节点部署包含对应资源的容器,申请通过后启动对应容器,并将调整后的预分片结果分发到各对应容器中;
S4:执行实际查询任务
各容器收到对应的预分片结果后,作为查询任务实际的发起者,将查询任务发送到数据库完成查询任务。
2.根据权利要求1所述的一种基于容器资源分配的数据库分片执行方法,其特征在于,所述S1中应用层输入的数据库查询语句为DQL。
3.根据权利要求1所述的一种基于容器资源分配的数据库分片执行方法,其特征在于,所述S1中的执行计划包括预计执行规模、预计开销和预计时间等信息。
4.根据权利要求1所述的一种基于容器资源分配的数据库分片执行方法,其特征在于,所述S2中容器管理组件查询各物理节点的可用资源,包括可用内存、CPU使用率等信息。
5.根据权利要求1所述的一种基于容器资源分配的数据库分片执行方法,其特征在于,所述S2中任务调度组件根据返回的可用资源信息调整预分片结果的方法为:
若物理节点可用资源较少,则将该预分片的语句查询范围缩小;
若物理节点可用资源较多,则将该预分片的语句查询范围扩大;
若现有可用资源不足以完整执行查询语句,则暂缓不能执行的部分查询任务,待存在可用物理节点时,再次进行预分片结果调整。
6.根据权利要求1所述的一种基于容器资源分配的数据库分片执行方法,其特征在于,所述S4具体包括如下步骤:
S4.1:将查询任务发送到数据库中;
S4.2:数据库执行查询语句,并返回查询结果至对应容器;
S4.3:各容器再将各自查询任务执行状况进行结果汇总,发送给任务调度组件,容器管理组件再次申请容器资源,将汇总操作分配到容器资源中,直至查询任务全部执行完毕。
CN201811336227.8A 2018-11-08 2018-11-08 一种基于容器资源分配的数据库分片执行方法 Active CN109271409B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811336227.8A CN109271409B (zh) 2018-11-08 2018-11-08 一种基于容器资源分配的数据库分片执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811336227.8A CN109271409B (zh) 2018-11-08 2018-11-08 一种基于容器资源分配的数据库分片执行方法

Publications (2)

Publication Number Publication Date
CN109271409A true CN109271409A (zh) 2019-01-25
CN109271409B CN109271409B (zh) 2021-11-02

Family

ID=65192553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811336227.8A Active CN109271409B (zh) 2018-11-08 2018-11-08 一种基于容器资源分配的数据库分片执行方法

Country Status (1)

Country Link
CN (1) CN109271409B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112087472A (zh) * 2019-06-13 2020-12-15 中国移动通信集团浙江有限公司 基于实时水位的批量任务调度方法、装置及平台
CN114676291A (zh) * 2022-03-30 2022-06-28 苏州浪潮智能科技有限公司 一种数据库系统及数据库系统的控制方法
CN115994037A (zh) * 2023-03-23 2023-04-21 天津南大通用数据技术股份有限公司 一种集群数据库负载均衡方法及装置

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187937A (zh) * 2007-10-30 2008-05-28 北京航空航天大学 网格环境下模式复用的异构数据库访问和集成方法
CN101937498A (zh) * 2010-09-13 2011-01-05 武汉达梦数据库有限公司 用于共享外包数据库的数据完整性验证方法
CN102467570A (zh) * 2010-11-17 2012-05-23 日电(中国)有限公司 用于分布式数据仓库的连接查询系统和方法
CN102542027A (zh) * 2011-12-22 2012-07-04 北京航空航天大学深圳研究院 一种基于关系模式学习本体的数据集成系统的构建方法
CN102799622A (zh) * 2012-06-19 2012-11-28 北京大学 基于MapReduce扩展框架的分布式SQL查询方法
CN103136350A (zh) * 2013-02-01 2013-06-05 江苏易合大成网络科技有限公司 一种在系统平台上运行多个应用的方法及装置
CN103631910A (zh) * 2013-11-26 2014-03-12 烽火通信科技股份有限公司 一种分布式数据库多列复合查询的系统及方法
CN103927331A (zh) * 2014-03-21 2014-07-16 珠海多玩信息技术有限公司 数据查询方法、装置及系统
CN105574052A (zh) * 2014-11-06 2016-05-11 中兴通讯股份有限公司 数据库查询方法及装置
CN106934036A (zh) * 2017-03-15 2017-07-07 衡阳师范学院 一种网络学习资源聚合查询的方法和系统
CN107122443A (zh) * 2017-04-24 2017-09-01 中国科学院软件研究所 一种基于Spark SQL的分布式全文检索系统及方法
CN107679399A (zh) * 2017-10-19 2018-02-09 郑州云海信息技术有限公司 一种基于容器的恶意代码检测沙盒系统及检测方法
CN107798017A (zh) * 2016-09-07 2018-03-13 南京中兴新软件有限责任公司 分布式数据库中的执行计划信息生成方法和系统
CN108228597A (zh) * 2016-12-14 2018-06-29 深圳市优朋普乐传媒发展有限公司 数据库访问方法和装置
CN108519911A (zh) * 2018-03-23 2018-09-11 上饶市中科院云计算中心大数据研究院 一种基于容器的集群管理系统中资源的调度方法和装置
CN108563509A (zh) * 2018-04-28 2018-09-21 北京京东金融科技控股有限公司 数据查询实现方法、装置、介质及电子设备
US20180293165A1 (en) * 2017-04-07 2018-10-11 Hewlett Packard Enterprise Development Lp Garbage collection based on asynchronously communicated queryable versions

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187937A (zh) * 2007-10-30 2008-05-28 北京航空航天大学 网格环境下模式复用的异构数据库访问和集成方法
CN101937498A (zh) * 2010-09-13 2011-01-05 武汉达梦数据库有限公司 用于共享外包数据库的数据完整性验证方法
CN102467570A (zh) * 2010-11-17 2012-05-23 日电(中国)有限公司 用于分布式数据仓库的连接查询系统和方法
CN102542027A (zh) * 2011-12-22 2012-07-04 北京航空航天大学深圳研究院 一种基于关系模式学习本体的数据集成系统的构建方法
CN102799622A (zh) * 2012-06-19 2012-11-28 北京大学 基于MapReduce扩展框架的分布式SQL查询方法
CN103136350A (zh) * 2013-02-01 2013-06-05 江苏易合大成网络科技有限公司 一种在系统平台上运行多个应用的方法及装置
CN103631910A (zh) * 2013-11-26 2014-03-12 烽火通信科技股份有限公司 一种分布式数据库多列复合查询的系统及方法
CN103927331A (zh) * 2014-03-21 2014-07-16 珠海多玩信息技术有限公司 数据查询方法、装置及系统
CN105574052A (zh) * 2014-11-06 2016-05-11 中兴通讯股份有限公司 数据库查询方法及装置
CN107798017A (zh) * 2016-09-07 2018-03-13 南京中兴新软件有限责任公司 分布式数据库中的执行计划信息生成方法和系统
CN108228597A (zh) * 2016-12-14 2018-06-29 深圳市优朋普乐传媒发展有限公司 数据库访问方法和装置
CN106934036A (zh) * 2017-03-15 2017-07-07 衡阳师范学院 一种网络学习资源聚合查询的方法和系统
US20180293165A1 (en) * 2017-04-07 2018-10-11 Hewlett Packard Enterprise Development Lp Garbage collection based on asynchronously communicated queryable versions
CN107122443A (zh) * 2017-04-24 2017-09-01 中国科学院软件研究所 一种基于Spark SQL的分布式全文检索系统及方法
CN107679399A (zh) * 2017-10-19 2018-02-09 郑州云海信息技术有限公司 一种基于容器的恶意代码检测沙盒系统及检测方法
CN108519911A (zh) * 2018-03-23 2018-09-11 上饶市中科院云计算中心大数据研究院 一种基于容器的集群管理系统中资源的调度方法和装置
CN108563509A (zh) * 2018-04-28 2018-09-21 北京京东金融科技控股有限公司 数据查询实现方法、装置、介质及电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112087472A (zh) * 2019-06-13 2020-12-15 中国移动通信集团浙江有限公司 基于实时水位的批量任务调度方法、装置及平台
CN114676291A (zh) * 2022-03-30 2022-06-28 苏州浪潮智能科技有限公司 一种数据库系统及数据库系统的控制方法
CN114676291B (zh) * 2022-03-30 2024-01-09 苏州浪潮智能科技有限公司 一种数据库系统及数据库系统的控制方法
CN115994037A (zh) * 2023-03-23 2023-04-21 天津南大通用数据技术股份有限公司 一种集群数据库负载均衡方法及装置

Also Published As

Publication number Publication date
CN109271409B (zh) 2021-11-02

Similar Documents

Publication Publication Date Title
CN109271409A (zh) 一种基于容器资源分配的数据库分片执行方法
CN104113597B (zh) 一种多数据中心的hdfs数据读写方法
CN106201355B (zh) 数据处理方法和装置以及存储系统
CN104050042B (zh) Etl作业的资源分配方法及装置
CN108595306B (zh) 一种面向混部云的服务性能测试方法
CN109559088A (zh) 任务管理方法、装置、电子设备及存储介质
US20030065415A1 (en) Decomposition system and method for solving a large-scale semiconductor production Planning problem
CN109144699A (zh) 分布式任务调度方法、装置及系统
CN105069134A (zh) 一种Oracle统计信息自动收集方法
CA3177212A1 (en) Resource allocating method, device, computer equipment, and storage medium
CN106980678A (zh) 基于zookeeper技术的数据分析方法及系统
US11086657B2 (en) Method and system for scheduling transactions in a data system
CN101256599B (zh) 基于网格的分布仿真平台数据收集系统
CN111552628A (zh) 一种针对图数据库及图服务接口进行分布式压测系统及方法
CN107562528A (zh) 支持多种计算框架的单元化按需计算方法及相关装置
CN107402926A (zh) 一种查询方法以及查询设备
CN112596762A (zh) 一种滚动升级方法及装置
CN108509280A (zh) 一种基于推送模型的分布式计算集群本地性调度方法
CN108875035A (zh) 分布式文件系统的数据存储方法及相关设备
CN115114359A (zh) 用户数据处理方法及装置
CN102760073A (zh) 一种任务调度方法、系统及装置
CN117149388A (zh) 一种批量任务调度方法和系统、电子设备、存储介质
CN109150599A (zh) 一种基于云架构的运维监控系统
CN106909460B (zh) 数据缓冲方法、装置及存储介质
CN106570029A (zh) 分布式关系型数据库的数据处理方法及系统

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
TR01 Transfer of patent right

Effective date of registration: 20220524

Address after: 610041 No. 1, floor 4, building 1, No. 2, Xinyuan south 2nd Road, high tech Zone, Chengdu, Sichuan

Patentee after: Chengdu sobei video cloud computing Co.,Ltd.

Address before: No.2, south 2nd Road, Xinyuan, high tech Zone, Chengdu, Sichuan 610000

Patentee before: Chengdu Sobey Digital Technology Co.,Ltd.

TR01 Transfer of patent right