执行openLooKeng引擎业务
openLooKeng使用命令行接口CLI来执行SQL任务,需要注意的是OmniOperator JIT是否生效要从webUI的Stage Performance中看,如果算子是以OmniOperator结尾的则说明OmniOperator JIT生效。
本次任务示例使用tpcds-sf10的数据表作为测试表,测试SQL为TPC-DS测试集的Q82。
相关的表信息如表1所示。
表名 |
表格式 |
总行数 |
---|---|---|
item |
orc |
102000 |
inventory |
orc |
133110000 |
date_dim |
orc |
73049 |
store_sales |
orc |
28800991 |
具体步骤如下。
- 在openLooKeng的webUI中运行以下SQL语句。
在webUI界面选择Catlog为tpcds,Schema为sf10,如webUI界面选择。
- OmniOperator JIT
set session extension_execution_planner_enabled=true; select i_item_id ,i_item_desc ,i_current_price from item, inventory, date_dim, store_sales where i_current_price between 76 and 76+30 and inv_item_sk = i_item_sk and d_date_sk=inv_date_sk and d_date between cast('1998-06-29' as date) and cast('1998-08-29' as date) and i_manufact_id in (512,409,677,16) and inv_quantity_on_hand between 100 and 500 and ss_item_sk = i_item_sk group by i_item_id,i_item_desc,i_current_price order by i_item_id limit 100;
- 原生
select i_item_id ,i_item_desc ,i_current_price from item, inventory, date_dim, store_sales where i_current_price between 76 and 76+30 and inv_item_sk = i_item_sk and d_date_sk=inv_date_sk and d_date between cast('1998-06-29' as date) and cast('1998-08-29' as date) and i_manufact_id in (512,409,677,16) and inv_quantity_on_hand between 100 and 500 and ss_item_sk = i_item_sk group by i_item_id,i_item_desc,i_current_price order by i_item_id limit 100;
- OmniOperator JIT
- 结果对比。
从Live Plan中可以查看语句的执行计划,从Stage Performance查看算子的具体执行流程,这里以Stage0为例,如图2和图3所示,当算子是以OmniOperator结尾则说明OmniOperator JIT生效(具体方法为当SQL语句执行成功之后会出现FINISHED,点击进入后,选择Stage Performance,就可以查看各个Stage)。
- OmniOperator JIT
- 原生