基于docker的内存多维数据库计算负载均衡方法及系统技术方案

技术编号:37813660 阅读:18 留言:0更新日期:2023-06-09 09:43
本申请提供了一种基于docker的内存多维数据库计算负载均衡方法、系统、设备及计算机可读存储介质。该基于docker的内存多维数据库计算负载均衡方法,包括:在主多维数据库服务上定义复杂的计算任务;构建内存多维数据库docker镜像;基于主多维数据库构建多维数据库模板数据;在外部应用执行计算任务前,确定一个指定的docker实例;基于docker实例,执行计算任务,得到计算结果数据。根据本申请实施例,能够降低了主多维数据库的负载,提高主多维数据库的可用性。据库的可用性。据库的可用性。

【技术实现步骤摘要】
基于docker的内存多维数据库计算负载均衡方法及系统


[0001]本申请属于数据库
,尤其涉及一种基于docker的内存多维数据库计算负载均衡方法、系统、设备及计算机可读存储介质。

技术介绍

[0002]内存多维数据库是将数据存放在一个有多个维度组成的cube中,这个cube里存储的数据都是在存在于内存中,一个内存多维数据库可以有多个cube。利用内存快速访问的特性,基于内存的多维数据库把数据完整保留于内存,用户的读取数据行为可以快速的转换为内存读以及内存计算,从而实现对用户数据读请求的快速响应。
[0003]一个多维数据库服务一般存在两类数据:一类是元数据,如:维度、成员、cube、进程、计算公式等,另一类是数据,一般指cube中存储的实际业务数据。
[0004]多维数据库服务中的进程:进程跟一般意义上的脚本比较类似,可以传入参数、修改多维数据库服务上的元数据、对多维数据库服务数据的读写、执行其他的进程,进程分为创建和执行两个环节,创建可以理解为写一个脚本文本,并保存在当前服务上,执行则是实际对该进程里的文本内容的执行。外部应用可以通过一定的方式传入进程所需要的参数并执行进程。
[0005]多维数据库服务中的视图:一个视图与一个cube是绑定的,一个视图为一个cube中的一个切片数据,一个cube是有多个维度构成,每个维度上有一个或多个成员,视图则是在cube的每个维度中选择若干个成员,构成一个cube数据的子集。
[0006]在发生对内存数据读取的行为时,分为普通的内存读以及内存计算。Cube的单元格一般分为3种类型,普通的录入单元格、聚合单元格、计算单元格。普通的录入单元格的读则转换为内存读,聚合单元格则依赖录入单元格进行聚合计算,计算单元格基于一些其他的单元格通过cube上的计算公式进行计算,因此对聚合单元格以及计算单元格的读转换为基于内存的实时计算。除此之外,内存多维数据库只会存储录入单元格,聚合以及计算单元格不会存储,是在读取单元格数据时实时计算出来的。
[0007]内存多维数据库为了提高对数据的快速读写,所以将数据存放在内存中,避免了硬件或网络层面的交互导致响应变慢的问题,但是同时会带来另一个问题,单节点机器的硬件资源尤其是内存以及CPU是有限的,在实际使用过程中,如果出现同时进行多个复杂计算的任务时,可能会导致当前节点的资源不足从而导致数据库服务的响应变慢甚至出现宕机。
[0008]因此,如何降低了主多维数据库的负载,提高主多维数据库的可用性是本领域技术人员亟需解决的技术问题。

技术实现思路

[0009]本申请实施例提供一种基于docker的内存多维数据库计算负载均衡方法、系统、设备及计算机可读存储介质,能够降低了主多维数据库的负载,提高主多维数据库的可用
性。
[0010]第一方面,本申请实施例提供一种基于docker的内存多维数据库计算负载均衡方法,包括:
[0011]在主多维数据库服务上定义复杂的计算任务;
[0012]构建内存多维数据库docker镜像;
[0013]基于主多维数据库构建多维数据库模板数据;
[0014]在外部应用执行计算任务前,确定一个指定的docker实例;
[0015]基于docker实例,执行计算任务,得到计算结果数据。
[0016]进一步地,在基于docker实例,执行计算任务,得到计算结果数据之后,方法还包括:
[0017]外部应用读取docker实例中的计算结果数据进行展示。
[0018]进一步地,在主多维数据库服务上定义复杂的计算任务,包括:
[0019]在主多维数据库服务上创建用于数据导出功能的进程;
[0020]在主多维数据库服务上创建用于执行docker实例中指定的进程;
[0021]在主多维数据库服务上创建用于数据导入的进程。
[0022]进一步地,基于主多维数据库构建多维数据库模板数据,包括:
[0023]确定主多维数据库启动所需要的数据目录;
[0024]将数据目录中的元数据文件以及部分数据文件打包,得到模板文件;
[0025]其中,模板文件中包括:用于数据导入功能的进程,用于复杂计算的进程,用于数据导出功能的进程。
[0026]进一步地,在外部应用执行计算任务前,确定一个指定的docker实例,包括:
[0027]在提前启动一部分docker实例后,获取空闲的docker实例;
[0028]将空闲的docker实例确定为指定的docker实例。
[0029]进一步地,在外部应用执行计算任务前,确定一个指定的docker实例,包括:
[0030]实时启动一个新的docker实例;
[0031]将新的docker实例确定为指定的docker实例。
[0032]进一步地,基于docker实例,执行计算任务,得到计算结果数据,包括:
[0033]分别执行用于数据导出功能的进程、用于执行docker实例中指定的进程和用于数据导入的进程。
[0034]第二方面,本申请实施例提供了一种基于docker的内存多维数据库计算负载均衡系统,包括:
[0035]计算任务定义模块,用于在主多维数据库服务上定义复杂的计算任务;
[0036]docker镜像构建模块,用于构建内存多维数据库docker镜像;
[0037]模板数据构建模块,用于基于主多维数据库构建多维数据库模板数据;
[0038]docker实例确定模块,用于在外部应用执行计算任务前,确定一个指定的docker实例;
[0039]计算任务执行模块,用于基于docker实例,执行计算任务,得到计算结果数据。
[0040]进一步地,系统还包括:
[0041]结果数据展示模块,用于外部应用读取docker实例中的计算结果数据进行展示。
[0042]进一步地,计算任务定义模块,用于:
[0043]在主多维数据库服务上创建用于数据导出功能的进程;
[0044]在主多维数据库服务上创建用于执行docker实例中指定的进程;
[0045]在主多维数据库服务上创建用于数据导入的进程。
[0046]进一步地,模板数据构建模块,用于:
[0047]确定主多维数据库启动所需要的数据目录;
[0048]将数据目录中的元数据文件以及部分数据文件打包,得到模板文件;
[0049]其中,模板文件中包括:用于数据导入功能的进程,用于复杂计算的进程,用于数据导出功能的进程。
[0050]进一步地,docker实例确定模块,用于:
[0051]在提前启动一部分docker实例后,获取空闲的docker实例;
[0052]将空闲的docker实例确定为指定的docker实例。
[0053]进一步地,docker实例确定模块,用于:
[0054]实时本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于docker的内存多维数据库计算负载均衡方法,其特征在于,包括:在主多维数据库服务上定义复杂的计算任务;构建内存多维数据库docker镜像;基于主多维数据库构建多维数据库模板数据;在外部应用执行所述计算任务前,确定一个指定的docker实例;基于所述docker实例,执行所述计算任务,得到计算结果数据。2.根据权利要求1所述的基于docker的内存多维数据库计算负载均衡方法,其特征在于,在所述基于所述docker实例,执行所述计算任务,得到计算结果数据之后,所述方法还包括:所述外部应用读取所述docker实例中的所述计算结果数据进行展示。3.根据权利要求1所述的基于docker的内存多维数据库计算负载均衡方法,其特征在于,所述在主多维数据库服务上定义复杂的计算任务,包括:在所述主多维数据库服务上创建用于数据导出功能的进程;在所述主多维数据库服务上创建用于执行所述docker实例中指定的进程;在所述主多维数据库服务上创建用于数据导入的进程。4.根据权利要求1所述的基于docker的内存多维数据库计算负载均衡方法,其特征在于,所述基于主多维数据库构建多维数据库模板数据,包括:确定主多维数据库启动所需要的数据目录;将所述数据目录中的元数据文件以及部分数据文件打包,得到模板文件;其中,所述模板文件中包括:用于数据导入功能的进程,用于复杂计算的进程,用于数据导出功能的进程。5.根据权利要求1所述的基于docker的内存多维数据库计算负载均衡方法,其特征在于,所述在外部应用执行所述计算任务前,确定一个指定的docker实例,包括:在提前启动一部分docker实例后,获取空闲的docker实例;将空闲的docker实例确定为指定...

【专利技术属性】
技术研发人员:吴小磊韩向东
申请(专利权)人:北京元年科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1