开发者社区> 问答> 正文

DML多计算引擎是什么?

在分析型数据库中拥有两套计算引擎:

  • COMPUTENODE Local/Merge(简称LM):先前版本的旧计算引擎,优点是计算性能很好,并发能力强,缺点是对部分跨一级分区列的计算支持较差。
  • Full MPP Mode(简称MPP):0.9.5版本新增的下一代计算引擎,优点是计算功能全面,支持SQL:2003标准,支持任意列join、window function等,对跨一级分区列的计算有良好的支持,可以通过全部TPC-H查询测试用例(22个)和全部的TPC-DS查询测试用例。

Full MPP Mode计算引擎目前(2016年12月起)已向全体用户公测,除非已申请关闭Full MPP Mode,否则用户可以自行判断自己的Query合适哪一种计算引擎,使用Hint强制将查询路由到某一个计算引擎中:<PRE prettyprinted? linenums>
  1. --强制使用COMPUTENODE LM计算引擎(默认)
  2. /*+engine=COMPUTENODE*/
  3. select * from ....
  4. --强制使用Full MPP Mode计算引擎
  5. /*+engine=MPP*/
  6. select * from ....

目前使用Full MPP Mode时请注意以下问题:

  • Full MPP Mode查询响应时间和并发能力较LM模式稍差,建议用户仅在较低频调用的、对性能不太敏感的、必须使用Full MPP Mode计算引擎的情况下使用,通常适用于交互式BI场景,实时ETL场景;

  • Full MPP Mode计算引擎拥有较丰富的数学函数、字符串处理函数、窗口函数等支持。

分析型数据库亦支持自动对查询Query进行路由功能,可以将LM引擎不支持的查询路由给MPP引擎,尽可能兼顾性能和通用性。
开启自动路由功能后(默认不开启),目前以下几种情况会自动路由到Full MPP Mode,这些场景同时也是必须使用Full MPP Mode的场景:

  • 特定函数,如row_number over等,LM模式不识别,捕获异常;

  • Join类:事实表 join 事实表,join key全部在非分区列上;
  • 不同表组的事实表 join 事实表;
  • 维度表在前,left join 事实表;
  • 事实表 right join 维度表(同上);
  • 事实表 join 事实表,一级分区数不同。

Group By、Order By、Having类:
  • Group By仅含非分区列,外层套子查询;
  • Group By仅含非分区列,带Order By;
  • Group By仅含非分区列,带Having。

UNION/INTERSECT/MINUS不含分区列;
SELECT 复杂表达式,如SUM/SUM, 任何带聚合函数的计算表达式等;
COUNT DISTINCT或DISTINCT非分区列。
管理MPP查询任务:
通过如下命令可以查询目前系统正在运行的MPP查询任务,由于有多个FRONTNODE节点实例,如下命令查询是目前连接的FRONTNODE实例上运行MPP查询任务:<PRE prettyprinted? linenums>
  1. SHOW PROCESSLIST MPP

如果想查询跨FRONTNODE所有实例上正在运行的MPP查询任务,可运行如下命令:<PRE prettyprinted? linenums>
  1. /*+cross-frontnode=true*/SHOW PROCESSLIST MPP

每个MPP查询会有一个Query ID, 通过SHOW PROCESSLIST MPP 可以看到MPP查询任务的Query ID, 如果想杀掉该MPP查询任务,可运行如下命令:<PRE prettyprinted? linenums>
  1. /*+cross-frontnode=true*/KILL MPP '$query_id'

如果想杀掉当前连接的FRONTNODE实例上所有正在运行的MPP查询任务,可运行如下命令:<PRE prettyprinted? linenums>
  1. KILL MPP ALL

如果想跨FRONTNODE所有实例杀掉所有正在运行的MPP查询任务,可运行如下命令:<PRE prettyprinted? linenums>
  1. /*+cross-frontnode=true*/KILL MPP ALL

展开
收起
nicenelly 2017-10-26 15:19:02 1918 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
MaxCompute SQL 2.0 全新的计算引擎 立即下载
时序数据库TSDB的SQL与流计算 立即下载
基于 Flink SQL + Paimon 构建流式湖仓新方 立即下载