CN112579324A - 一种基于cost模型的商品汇总统计方法 - Google Patents
一种基于cost模型的商品汇总统计方法 Download PDFInfo
- Publication number
- CN112579324A CN112579324A CN202011588541.2A CN202011588541A CN112579324A CN 112579324 A CN112579324 A CN 112579324A CN 202011588541 A CN202011588541 A CN 202011588541A CN 112579324 A CN112579324 A CN 112579324A
- Authority
- CN
- China
- Prior art keywords
- cost
- field
- potential factor
- sql
- value
- 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
Links
- 238000007619 statistical method Methods 0.000 title claims description 15
- 238000004364 calculation method Methods 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 14
- 238000004458 analytical method Methods 0.000 claims abstract description 10
- 238000002955 isolation Methods 0.000 claims abstract description 10
- 238000007726 management method Methods 0.000 claims abstract description 7
- 238000011156 evaluation Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 10
- 238000001914 filtration Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000013468 resource allocation Methods 0.000 claims description 8
- 238000007728 cost analysis Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 2
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于cost模型的商品汇总统计方法,其中,该方法包括:对表管理的信息进行收集;通过SQL语句解析得到执行计划,根据SQL执行计划计算其cost,并将计算出的cost进行评级;针对SQL执行计划后的cost等级,将SQL语句分配到不同资源上执行;保存执行日志进行评估和分析,划分cost集群等级,并根据cost值、cost集群等级和cost计算结果的关系,使用算法进行不断学习和调整。该方法通过对SQL语句进行cost计算分析,评估汇总统计SQL带来的资源消耗情况,根据cost评级结果将SQL下发到不同的资源下进行任务调度执行,达到资源隔离和保护效果,用户的服务也得到完善。
Description
技术领域
本发明涉及商品数据汇总领域,尤其是一种基于cost(代价)模型的商品汇总统计方法。
背景技术
目前商品数据的横向扩展导致数据量的剧增,需要对各种商品进行数据汇总统计。一般分布式系统对于OLAP(联机分析处理)查询采用FIFO(先进先出)和FAIR(公平调度)等调度算法进行资源分配,例如Spark配置多个资源池,默认情况下Spark的调度模式是FIFO(先进先出),谁先提交谁先执行,后面的任务需要等待前面的任务执行,而FAIR(公平调度)模式支持在调度池中为任务进行分组,不同的调度池权重不同,任务可以按照权重来决定执行顺序,使用哪种调度器由参数spark.scheduler.mode来设置。在多用户的环境下,可以对用户进行资源分配和隔离,但是每个用户资源下,依然是FIFO(先进先出)和FAIR(公平调度)等调度算法,无法根据查询带来的代价(cost)进行资源隔离。
一般商品数据的查询汇总中,对资源的消耗特别大,执行时间也会很长。如果同时有几个这样的查询在相同用户下并发执行,很容易造成占满集群资源,使得其他查询无法获取足够资源(即使这个查询占用的资源很小,执行很快),这样下来,商品数据的汇总统计性能低,影响用户体验和决策效率,严重的话可能导致应用程序OOM或者集群崩溃。
成熟的OLAP(联机分析处理)系统都会使用CBO(Cost-Based Logical Optimizer,基于代价的逻辑优化器)来对执行计划进行优化。CBO的主要目的就是通过检查查询中使用到的表和条件,产生高效的执行路径,降低资源利用率,减少查询时间。通过解析成执行计划树,树上的节点代表查询的一个操作,每个操作都可以通过计算其对cpu(中央处理器)、io(流控制)、memory(内存)和network(网络)等资源的消耗来计算代价(cost)。
发明内容
针对上述情况,本发明提供一种基于cost模型的商品汇总统计方法,将资源隔离和CBO结合起来,根据商品数据汇总查询的cost来决定该查询任务在哪一种资源下进行,提高系统稳定性。
为实现上述目的,本发明采用下述技术方案:
在本发明一实施例中,提出了一种基于cost模型的商品汇总统计方法,该方法包括:
统计信息采集:对表管理的信息进行收集;
cost计算和评级:通过SQL语句解析得到执行计划,根据SQL执行计划计算其cost,并将计算出的cost进行评级;
资源分配和隔离:针对SQL执行计划后的cost等级,将SQL语句分配到不同资源上执行;
cost监控和调整:保存执行日志进行评估和分析,划分cost集群等级,并根据cost值、cost集群等级和cost计算结果的关系,使用算法进行不断学习和调整。
进一步地,表管理的信息包括表统计信息和字段统计信息,表统计信息包括行数、以byte为单位的表大小以及分区的大小和数目,字段统计信息包括字段数量、字段最大值、字段最小值、内容为null的记录数和字段平均长度。
进一步地,cost值=过滤条件值+Join节点值+聚基数值;
过滤条件值=通过where关键字过滤后表的查询行数*集的势因子;
Join节点值=Join关键字语句后的行数*集的势因子;
聚基数值=group by关键字子句的数量总和*集的势因子。
进一步地,集的势因子的计算如下:
(1)对于建立了索引的字段,如果查询条件是“=”,则集的势因子计算公式为:
集的势因子=1/字段上的唯一值数;
集的势因子=MAX(记录数/字段上的唯一值数,1);
MAX()为求最大值函数;
(2)对于建立了索引的字段,如果索引字段查询条件是“<”“>”“<=”“>=”,则集的势因子计算公式为:
集的势因子=(1/字段上的唯一值数)+(1/记录数);
(3)对于建立了索引的字段,如果索引字段查询条件是in,则集的势因子计算公式为:
集的势因子=in条件中的变量数/字段上的唯一值数;
(4)对于建立了索引的字段,如果索引字段查询条件是“<>”,则集的势因子计算公式为:
集的势因子=(1–(1/字段上的唯一值数))\;
此时集的势因子是这个字段上最大集的势因子;
(5)对于建立了索引的字段,如果索引字段查询条件为not in时,则集的势因子计算公式为:
集的势因子=(1–(1/字段上的唯一值数))^(not in中变量数);
(6)对于非索引的字段,如果非索引字段查询条件为“=”和“in”时,则集的势因子=1/100;
(7)对于非索引的字段,且为多字段,则集的势因子计算公式为:
集的势因子=字段1的集的势因子*字段2的集的势因子*…*字段n的集的势因子;
(8)对于全表扫描,如果没有查询条件时,则集的势因子=1。
进一步地,针对SQL执行计划后的cost等级,将SQL语句分配到不同资源上执行,包括:
队列方案:划分队列容量,不同等级的SQL语句放到不同队列上;低等级队列容量最大,高等级队列容量最小;每个队列上配置调度进程,对队列中的SQL语句进行调度,调度有不同的策略;队列容量和调度策略均动态配置;当一个队列占满后,抛弃掉后续的SQL;
集群方案:通过集群中的节点进行资源分配和路由;每个节点打上不同等级标签;不同等级的集群执行不同等级的SQL语句;根据cost等级将汇总请求路由到不同等级的集群中,由该集群执行实际的SQL语句。
进一步地,集群方案使用Fair算法来对SQL语句进行调度,针对不同等级的集群和负载情况进行动态扩缩容。
进一步地,执行日志包括:SQL语句、cost分析、实际执行时长以及调度和等待时间。
进一步地,cost集群等级分为:
高速:要求响应能在1s内返回,即cost值处于[0,100];
中速:要求响应能在1-5s内返回,即cost值处于(100,500];
慢速:查询性能在5s外返回,即cost值>500。
有益效果:
本发明实现了在商品数据中进行高并发OLAP(联机分析处理)汇总统计,对资源进行合理分配,对大查询进行隔离保护和限流,使大查询不影响小查询,保证集群资源高效利用以及整体查询性能不受影响,保证汇总统计稳定。
附图说明
图1是本发明一实施例的基于cost模型的商品汇总统计方法流程调用示意图;
图2是本发明一实施例的druid的cost模型示意图;
图3是本发明一实施例的基于cost模型的商品汇总统计方法流程示例图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种基于cost模型的商品汇总统计方法,实现了高并发商品数据汇总场景中,如何对每个汇总查询进行资源分配和隔离保护,使小查询在任何情况下能获得相应资源更快执行,而大查询也有机会得到资源来执行,提高用户体验,提高决策效率,及时提供商品推荐服务,保障服务质量,集群整体也会保持平稳。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
本发明一种基于cost模型的商品汇总统计方法,该方法包括:
1、统计信息采集
在进行cost分析之前,需要对表管理的信息进行收集,例如:
(1)表统计信息:行数、以byte为单位的表大小以及分区的大小和数目;
(2)字段统计信息:字段数量、字段最大值、字段最小值、Null count(内容为null的记录数)和字段平均长度。
2、cost计算和评级
通过SQL语句解析得到执行计划,根据SQL执行计划计算其Cost,大致算法如下:
(1)过滤条件值:根据过滤条件(where关键字)计算每个表的查询行数和IO代价(计算公式:过滤后表的行数*集的势因子);
(2)Join节点值:根据连接节点(Join关键字),计算Join的代价和行数(计算公式:Join语句后的行数*集的势因子);
(3)汇聚基数值:根据分组(group by关键字)子句,计算汇聚后的基数(计算公式:group by子句数量总和*集的势因子)。
集的势因子计算(cardinality集的势)如下:
(a)对于建立了索引的字段,如果查询条件是“=”,则集的势因子计算公式为:
集的势因子=1/字段上的唯一值数;
集的势因子(cardinality)=MAX(记录数/字段上的唯一值数,1);
MAX()为求最大值函数;
(b)对于建立了索引的字段,如果索引字段查询条件是“<”“>”“<=”“>=”,则集的势因子计算公式为:
集的势因子=(1/字段上的唯一值数)+(1/记录数);
(c)对于建立了索引的字段,如果索引字段查询条件是in,则集的势因子计算公式为:
集的势因子=in条件中的变量数/字段上的唯一值数;
(d)对于建立了索引的字段,如果索引字段查询条件是“<>”,则集的势因子计算公式为:
集的势因子=(1–(1/字段上的唯一值数))\;
此时集的势因子是这个字段上可以达到的最大集的势因子;
(e)对于建立了索引的字段,如果索引字段查询条件为not in时,则根据not in中的变量值按阶计算,集的势因子计算公式为:
集的势因子=(1–(1/字段上的唯一值数))^(not in中变量数);
(f)对于非索引的字段,如果非索引字段查询条件为“=”和“in”时,则集的势因子=1/100;
(g)对于非索引的字段,且为多字段,则集的势因子计算公式为:
集的势因子=字段1的集的势因子*字段2的集的势因子*…*字段n的集的势因子;
(h)对于全表扫描,如果没有查询条件时,则集的势因子=1。
(4)Cost值=过滤条件值+Join节点值+聚基数值;
将计算出的cost值进行评级,一般分为高、中和低三级。cost值得主要影响因素来源于:
(1)group by后的基数过高,例如达到一定的阈值5w;
(2)计算耗时过大,例如SQL中有多个汇总函数,例如count、distinct计算,并且每个节点要处理的行数很多;
(3)执行批次比较多,例如某张表的记录数非常多,需要细分为非常多的task任务来汇总。一个SQL语句需要多个批次执行才能完成。
3、资源分配和隔离
针对SQL执行计划后的cost等级,将SQL语句分配到不同资源上执行,主要方法有两类:队列和集群;
(1)队列方案
划分队列容量,不同等级的SQL放到不同队列上;低等级队列容量最大,高等级列队容量最小;每个队列上配置调度进程,对队列中的SQL语句进行调度,调度有不同的策略,例如等级高的调度策略只允许同时调度一个SQL语句;队列容量和调度策略都可以动态配置;
当一个队列占满后,后续的SQL就会被抛弃掉。
(2)集群方案
通过集群中的节点进行资源分配和路由;每个节点打上不同等级标签,例如高、中和低;不同等级的集群执行不同等级的SQL语句;根据cost等级将汇总请求路由到不同的集群中,由该集群执行实际的SQL语句。
集群方案使用Fair(公平调度)算法来对SQL进行调度,即利用生成spark任务来执行SQL语句,具体的spark任务执行是由spark的task来执行;task的调度通过Fair算法来进行调度,在Fair模式中,需要先对子pool(调度池)排序,在对子pool中TaskSetMagager进行排序,因为Pool和TaskSetMagager(任务集合管理器)都继承了Schedulable(可调度性)特性,因此使用相同的排序算法;排序算法是基于Fair-share来比较的,每个排序对象包含三个属性性:runningTasks(正在运行的任务数),minShare值(最小占有任务数)和weight值(权重使用率);整体上来说是通过minShare和weight这两个参数控制比较过程,调度排序的过程就是做到让minShare使用率和weight使用率少的(实际运行任务比较少)先运行。注:minShare和weight的值在公平调度配置文件fairscheduler.xml中被指定,调度池pool在构建阶段会读取次文件的相关配置;针对不同等级的集群和负载情况可以进行动态扩缩容,即集群的每个节点都已经打上了不同等级标签,并且每个节点都会有相应的task(任务)在执行,每个任务都会占用相应的资源和内存,统计集群中每个节点占用的资源和内存来粗粒度计算其负载情况,如果发现某个等级的集群负载很低,可以划分出去几个节点给负载很高的等级集群使用,例如:低等级集群有3个节点,高等级集群有2个节点,现在低等级的负载情况过高,而高等级的负载情况过低,那么高等级划分出一个节点给低等级使用,达到了低等级4个节点,高等级1个节点,实现针对不同等级的动态扩缩容。
4、cost监控和调整
保存执行日志进行评估和分析,包括:SQL语句、cost分析、实际执行时长以及调度和等待时间;
Cost集群等级:
高速:要求响应能在1s内返回(cost值处于[0,100]);
中速:要求响应能在1-5s内返回(cost值处于(100,500]);
慢速:查询性能在5s外返回(cost值>500);
根据cost值、cost集群等级和cost计算结果的关系,可以用机器学习和人工智能等算法进行不断的学习和调整,提升cost计算的准确度,减少错误判断等情况,可以增加复杂的SQL自行计划计算算法,来增加cost计算的准确度。
图1是本发明一实施例的基于cost模型的商品汇总统计方法流程调用示意图。如图1所示,根据模型的定义和业务情况对数据存储进行资源隔离和流量管控,例如时序化的汇总采用druid,非时序化汇总采用postgresql。
(1)Druid
历史节点区分不同的tier,高等级的tier资源多,低等级的tier资源少,一个数据源要分配到不同的tier中,高等级的副本数多,低等级的副本数少,broker也可以划分不同等级,并且资源数也不同,路由到不同的tier中。
(2)Postgresql
Pg采用citus的分布式集群方案,可以人为将master划分高等级和低等级,相应的资源数也不同,不同等级的master处理不同等级的SQL语句。
olap引擎的master需要感知druid集群和pg集群中的master的等级,在创建和管理worker时,需要将master信息传递给worker,worker只对自己管理下的资源进行操作,不同worker集群管理不同等级,但是同一个等级可以由多个worder集群管理。
如图1所示,流程调用如下:
(1)用户调用商品数据统计汇总查询引擎,在调用时就将等级传入过来,例如高等级、普通和慢查询等;
(2)接口服务根据优先级放到对应队列,分发进行从队列中取出执行;
(3)取出一个请求后,调用cost模块,计算cost,计算方法见上述步骤;
(4)接口服务根据返回的cost计算结果,到master查询可以使用的worker,将请求分发到对应的worker上;
(5)worker将请求转发到实际存储中进行数据汇总调用。例如:高等级汇总总是将请求转发到druid或者pg的高等级资源中,这部分资源多,SQL执行代价低,可以达到高并发、低延迟。
图2是本发明一实施例的druid的cost模型示意图。如图2所示,olap引擎主要使用druid作为汇总统计存储,尽可能将查询放到druid中来执行,减少任务(spark)本身带来的资源开销。图2是时序化的一种汇总方式,将历史节点的汇总结果都传递给broker(缓存代理服务器)节点中,其中历史节点支持排序、限制查询、聚合和多数据集查询等汇总方式,传递到broker(缓存代理服务器)后,broker节点将历史节点的汇总结果进行整体汇总,例如排序、分组、聚合和合并等操作。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述基于cost模型的商品汇总统计方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
应用举例如下:
图3是本发明一实施例的基于cost模型的商品汇总统计方法流程示例图。如图3所示,具体流程如下:
1、资源分级
这里的资源时指多个集群中某个集群或者集群中某台机器。通过对资源进行等级划分,使指定的资源只处理特殊的查询请求,资源等级可以通过打标签实现。
例如:汇总统计响应速度划分等级集群:
高速:要求响应能在1s内返回(cost值处于[0,100]);
中速:要求响应能在1-5s内返回(cost值处于(100,500]);
慢速:查询性能在5s外返回(cost值>500)。
2、cost计算
所有的商品汇总统计查询都会经过cost计算,算出各自的资源代价。
3、查询分发
根据cost值和集群标签,将汇总统计查询分发到合适集群中,例如:对某地区的商品的汇总统计,即简单过滤,cost计算为50,则分发到低速集群中;而计算某件商品销量在全国内各个地区的排名,则cost代价很大,可能为1000,则分发到高速集群中。
4、资源动态调整
当某个队列在指定时间内资源使用率达到一定阈值时,可以通过资源动态调整策略,将一部分资源调整到这个队列上。
5、资源动态扩容
当某一个队列中的资源在一定时间内处于紧张状态,可以通过资源动态扩容方案,增加资源,环境资源紧张情况。
本发明提出的基于cost模型的商品汇总统计方法,通过对SQL语句进行cost计算分析,评估汇总统计SQL带来的资源消耗情况,根据cost评级结果将SQL下发到不同的资源下进行任务调度执行,达到资源隔离和保护效果,用户的服务也得到完善。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (8)
1.一种基于cost模型的商品汇总统计方法,其特征在于,该方法包括:
统计信息采集:对表管理的信息进行收集;
cost计算和评级:通过SQL语句解析得到执行计划,根据SQL执行计划计算其cost,并将计算出的cost进行评级;
资源分配和隔离:针对SQL执行计划后的cost等级,将SQL语句分配到不同资源上执行;
cost监控和调整:保存执行日志进行评估和分析,划分cost集群等级,并根据cost值、cost集群等级和cost计算结果的关系,使用算法进行不断学习和调整。
2.根据权利要求1所述的基于cost模型的商品汇总统计方法,其特征在于,所述表管理的信息包括表统计信息和字段统计信息,表统计信息包括行数、以byte为单位的表大小以及分区的大小和数目,字段统计信息包括字段数量、字段最大值、字段最小值、内容为null的记录数和字段平均长度。
3.根据权利要求1所述的基于cost模型的商品汇总统计方法,其特征在于,所述cost值=过滤条件值+Join节点值+聚基数值;
过滤条件值=通过where关键字过滤后表的查询行数*集的势因子;
Join节点值=Join关键字语句后的行数*集的势因子;
聚基数值=group by关键字子句的数量总和*集的势因子。
4.根据权利要求3所述的基于cost模型的商品汇总统计方法,其特征在于,所述集的势因子的计算如下:
(1)对于建立了索引的字段,如果查询条件是“=”,则集的势因子计算公式为:
集的势因子=1/字段上的唯一值数;
集的势因子=MAX(记录数/字段上的唯一值数,1);
MAX()为求最大值函数;
(2)对于建立了索引的字段,如果索引字段查询条件是“<”“>”“<=”“>=”,则集的势因子计算公式为:
集的势因子=(1/字段上的唯一值数)+(1/记录数);
(3)对于建立了索引的字段,如果索引字段查询条件是in,则集的势因子计算公式为:
集的势因子=in条件中的变量数/字段上的唯一值数;
(4)对于建立了索引的字段,如果索引字段查询条件是“<>”,则集的势因子计算公式为:
集的势因子=(1–(1/字段上的唯一值数))\;
此时集的势因子是这个字段上最大集的势因子;
(5)对于建立了索引的字段,如果索引字段查询条件为not in时,则集的势因子计算公式为:
集的势因子=(1–(1/字段上的唯一值数))^(not in中变量数);
(6)对于非索引的字段,如果非索引字段查询条件为“=”和“in”时,则集的势因子=1/100;
(7)对于非索引的字段,且为多字段,则集的势因子计算公式为:
集的势因子=字段1的集的势因子*字段2的集的势因子*…*字段n的集的势因子;
(8)对于全表扫描,如果没有查询条件时,则集的势因子=1。
5.根据权利要求1所述的基于cost模型的商品汇总统计方法,其特征在于,所述针对SQL执行计划后的cost等级,将SQL语句分配到不同资源上执行,包括:
队列方案:划分队列容量,不同等级的SQL语句放到不同队列上;低等级队列容量最大,高等级队列容量最小;每个队列上配置调度进程,对队列中的SQL语句进行调度,调度有不同的策略;队列容量和调度策略均动态配置;
集群方案:通过集群中的节点进行资源分配和路由;每个节点打上不同等级标签;不同等级的集群执行不同等级的SQL语句;根据cost等级将汇总请求路由到不同等级的集群中,由该集群执行实际的SQL语句;当一个队列占满后,抛弃掉后续的SQL。
6.根据权利要求5所述的基于cost模型的商品汇总统计方法,其特征在于,所述集群方案使用Fair算法来对SQL语句进行调度,针对不同等级的集群和负载情况进行动态扩缩容。
7.根据权利要求1所述的基于cost模型的商品汇总统计方法,其特征在于,所述执行日志包括:SQL语句、cost分析、实际执行时长以及调度和等待时间。
8.根据权利要求1所述的基于cost模型的商品汇总统计方法,其特征在于,所述cost集群等级分为:
高速:要求响应能在1s内返回,即cost值处于[0,100];
中速:要求响应能在1-5s内返回,即cost值处于(100,500];
慢速:查询性能在5s外返回,即cost值>500。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011588541.2A CN112579324A (zh) | 2020-12-29 | 2020-12-29 | 一种基于cost模型的商品汇总统计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011588541.2A CN112579324A (zh) | 2020-12-29 | 2020-12-29 | 一种基于cost模型的商品汇总统计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112579324A true CN112579324A (zh) | 2021-03-30 |
Family
ID=75143795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011588541.2A Pending CN112579324A (zh) | 2020-12-29 | 2020-12-29 | 一种基于cost模型的商品汇总统计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579324A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177060A (zh) * | 2021-05-25 | 2021-07-27 | 中国工商银行股份有限公司 | 一种管理sql语句的方法、装置及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166282A (zh) * | 2019-04-16 | 2019-08-23 | 苏宁易购集团股份有限公司 | 资源分配方法、装置、计算机设备和存储介质 |
-
2020
- 2020-12-29 CN CN202011588541.2A patent/CN112579324A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166282A (zh) * | 2019-04-16 | 2019-08-23 | 苏宁易购集团股份有限公司 | 资源分配方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
CUIXIE2370: "DB优化小常识-执行计划中Cardinality的计算", 《HTTPS://BLOG.CSDN.NET/CUIXIE2370/ARTICLE/DETAILS/100342333》 * |
TOLYWANG: ""DB优化小常识-执行计划中Cardinality的计算"", 《ITPUB,HTTP://BLOG.ITPUB.NET/35489/VIEWSPACE-743631/》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177060A (zh) * | 2021-05-25 | 2021-07-27 | 中国工商银行股份有限公司 | 一种管理sql语句的方法、装置及设备 |
CN113177060B (zh) * | 2021-05-25 | 2024-02-27 | 中国工商银行股份有限公司 | 一种管理sql语句的方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166282B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN102467570B (zh) | 用于分布式数据仓库的连接查询系统和方法 | |
CN103345514B (zh) | 大数据环境下的流式数据处理方法 | |
Mehta et al. | Managing intra-operator parallelism in parallel database systems | |
AU2010336363B2 (en) | Managing queries | |
CN103177035A (zh) | 一种在数据库中查询数据的装置及方法 | |
CN106202092A (zh) | 数据处理的方法及系统 | |
CN109918450A (zh) | 基于分析类场景下的分布式并行数据库及存储方法 | |
CN107291539B (zh) | 基于资源重要程度的集群程序调度方法 | |
CN113791913B (zh) | 一种类脑计算机操作系统的任务迁移方法 | |
CN114900525A (zh) | 一种偏斜数据流的本发明实施例提供的方法及系统 | |
CN112579324A (zh) | 一种基于cost模型的商品汇总统计方法 | |
CN113641487B (zh) | 一种大数据平台sql任务执行引擎智能自动切换的方法 | |
CN110084507A (zh) | 云计算环境下分级感知的科学工作流调度优化方法 | |
CN108536518A (zh) | 任务调度的方法及系统、征信平台、服务终端及存储器 | |
CN103268261A (zh) | 一种适用于大规模高效能计算机的层次式计算资源管理方法 | |
CN113568931A (zh) | 一种数据访问请求的路由解析系统及方法 | |
US8700822B2 (en) | Parallel aggregation system | |
Lo et al. | Performance of hierarchical load sharing in heterogeneous distributed systems | |
CN116389591A (zh) | 一种基于跨域分布式处理系统及调度优化方法 | |
CN107911484B (zh) | 一种消息处理的方法及装置 | |
Fu et al. | Imrp: a predictive partition method for data skew alleviation in spark streaming environment | |
CN116010447A (zh) | 一种优化异构数据库用户查询的负载均衡方法及装置 | |
CN115827237A (zh) | 一种基于性价比的storm任务调度方法 | |
Guo et al. | Handling data skew at reduce stage in Spark by ReducePartition |
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: 20210330 |
|
RJ01 | Rejection of invention patent application after publication |