...
信息 |
---|
1、SQL引擎V2.0 只能在数据模型V2.0开启之后才能使用。 2、SQL引擎V1.0的支持范围可查看SQL引擎V1.0介绍。 3、SQL引擎V2.0不会加载明细数据到内存中,是计算汇总后的数据。 4、如果只是简单查询,比如只有维度+度量(原子度量),即使开启了SQL引擎V2.0 仍然会走SQL引擎V1.0。 5、数据模型引擎不管是SQL引擎还是多维引擎,如果满足条件系统会自动切换,无需手工切换。 6、在2025-05-13之后新安装的环境,默认开启SQL引擎V2.0,无需手工开启。 |
1 概述
1.1 SQL引擎V2.0 是什么?
- SQL引擎V2.0是 数据模型引擎V2.0 下面的执行引擎。
- 它是SQL引擎V1.0的升级。
1.2 SQL引擎V2.0适合的查数场景
- ”简单“查询,比如只查询维度+度量(原子度量)。
- 指标二次计算: 指标之间的加、减、乘、除、case when、IIF等的简单加工支持走SQL引擎V2.0。
- 快速计算:在报表层使用快速计算可以走SQL引擎,比如同期值、前期值、累计值等。
1.3 SQL引擎V2.0不适合的查数场景
- 查询含有计算度量(包含mdx表达式)、计算成员、计算命名集,不支持走SQL引擎。
当过滤条件是度量并且显示了合计的情况,如下图,不支持走SQL引擎:
年周层次,涉及到时间的计算不支持走SQL引擎,如下图:
- 交叉表组件如果显示分类汇总,并且在度量、快速度量上增加了排序不支持走SQL引擎,如下图:
1.
...
4 如何开启SQL引擎V2.0?
- 需要先在运维设置/系统限项/高级设置 中开启数据模型引擎V2.0:OLAP_QUERY_NEW_ENGINE_BUILD_MDX=true;USE_NEW_ENGINE_PREPROCESS=true再开启SQL引擎V2开启SQL引擎V2.0: USE_NEW_ENGINE_NEW_SQL=true, 这个一旦开启,是全局性的,所有基于数据模型的报表查询满足条件都会走SQL引擎V2.0。
- 如果只是想要在某个数据模型中开启,可以在高级选项开启:DATAMODEL_OPEN_SMARTCUBE_ENGINE_BUTTON=true,效果如下图所示:
...
2.1 SQL引擎V2.0 比SQL引擎V1.0增强了那些功能
序号 | 内容 | V1.0 | V2.0 |
---|---|---|---|
1 | 快速计算支持走SQL引擎 | 不支持 | 功能增强,在V2.0上,支持快速计算走SQL引擎。 |
2 | 计算度量如果表达式仅涉及加(+)、减(-)、乘(*)、除(/),或者仅使用case when/IIF函数,也支持走SQL引擎 | 仅有clickhouse、mysql支持,其他库仍然不支持 | 功能增强,全部库支持。 |
涉及多维计算如:计算度量基于MDX函数表达式、计算成员、命名集 目前依然不支持走SQL引擎。 |
2.2 SQL引擎V2.0 与 V1.0的差异
序号 | 内容 | V1.0 | V2.0 |
---|---|---|---|
1 | 查询度量并且把汇总依据切换成“唯一计数”并显示“合计”,如下图报表: | 支持 | 支持 |
2 | 当过滤条件是度量并且显示了合计的情况,如下图: | 不支持,会走OLAP引擎 | 不支持,会走OLAP引擎 原因: 生成的执行SQL语句,度量在外层,度量对合计不生效。 |
3 | 年周层次,涉及到时间的计算不支持走SQL引擎,如下图: | 不支持 | 不支持 注意:年周+排名、占比是支持走SQL引擎的。后续年周的时间计算会支持走SQL引擎。 |
4 | 中文排序结果可能不同,如下图: | V1.0显示效果: | V2.0显示效果: 排序不一致:主要是由于数据库本身的字符集或者中文编码而造成的排序结果不一样,有的中文排序结果是一样的,暂时没有得到什么规律。 |
5 | 空值(Null)的排序: | 由数据库决定 | 在SQL引擎V2.0时,升序时空值在第一行,降序在最后一行。 |
6 | 当数据模型是多事实并且是抽取模式(抽取到SmartbiMpp产品默认使用高速缓存库CH)中,如果度量的值没有时(full join 出现来的空),在报表层显示效果不一致。 | SQL引擎V1.0显示”0“,如下图: | SQL引擎V2.0显示“空”,数据是什么就显示什么: |
3 如何判断是否走了SQL引擎V2.0
方法1:查看系统监控 “SQL/MDX监控”记录的数据源是否显示“SQL引擎V2.0”,如果是,则走了SQL引擎V2.0。
...
为了加速查询,DuckDB 在内存中构建了多种类型的索引结构,如哈希索引、B树索引等。这些索引可以帮助快速定位特定值的位置,减少不必要的全表扫描,提高查询效率。特别是在涉及大量连接或查找操作的情况下,适当的索引可以极大地改善性能。
5 性能对比
5.1 单事实表模型
标红的单元格代表执行失败,业务库是pg | 单位:ms | ||||
场景|查询方式 | 数据模型引擎V1.0_多维引擎 | 数据模型引擎V1.0_SQL引擎V1.0 | 数据模型引擎V2.0_多维引擎 | 数据模型引擎V2.0_SQL引擎V2.0 | 备注 |
5个维度2个普通度量 | 15683 | 16267 | 26979 | 9525 | |
5个维度2个计算度量 | 14226 | 45336 | 7165 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个普通度量_分类汇总 | 42383 | 109485 | 9354 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个计算度量_分类汇总 | 63538 | 154062 | 7539 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个普通度量_分类汇总_普通度量过滤 | 36368 | 129978 | 只走多维引擎 | ||
5个维度2个计算度量_分类汇总_计算度量过滤 | 4665 | 137285 | 只走多维引擎 | ||
5个维度2个普通度量_环比 | 16656 | 192875 | 6872 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个普通度量_累计值 | 15277 | 207219 | 6665 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个普通度量_同比 | 15373 | 219361 | 6847 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个普通度量_组内升序排名 | 超过10分钟 | 超过10分钟 | 6245 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个普通度量_组内占比 | 超过10分钟 | 249421 | 6307 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个计算度量_环比 | 21057 | 191432 | 6580 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个计算度量_累计值 | 17438 | 182863 | 7889 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个计算度量_同比 | 16466 | 193309 | 7665 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个计算度量_组内升序排名 | 超过10分钟 | 超过10分钟 | 6179 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个计算度量_组内占比 | 超过10分钟 | 309765 | 8039 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个普通度量_分类汇总_环比 | 54813 | 338253 | 6320 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个普通度量_分类汇总_累计值 | 61106 | 327324 | 6356 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个普通度量_分类汇总_同比 | 61269 | 289613 | 11320 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个普通度量_分类汇总_组内升序排名 | 600626 | 600697 | 6043 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个普通度量_分类汇总_组内占比 | 600656 | 600686 | 6039 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个计算度量_分类汇总_环比 | 102285 | 393409 | 8791 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个计算度量_分类汇总_累计值 | 86434 | 341557 | 8433 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个计算度量_分类汇总_同比 | 87468 | 381325 | 6825 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个计算度量_分类汇总_组内升序排名 | 超过10分钟 | 超过10分钟 | 8130 | 只有开"SQL引擎V2.0"才走SQL | |
5个维度2个计算度量_分类汇总_组内占比 | 超过10分钟 | 超过10分钟 | 7137 | 只有开"SQL引擎V2.0"才走SQL |
5.2 多事实模型
标红的单元格代表执行失败,业务库是pg | 单位:ms | ||||
场景|查询方式 | 数据模型引擎V1.0_多维引擎 | 数据模型引擎V1.0_SQL引擎V1.0 | 数据模型引擎V2.0_多维引擎 | 数据模型引擎V2.0_SQL引擎V2.0 | 备注 |
5个维度2个普通度量 | 51837 | 50783 | 38023 | 13745 | |
5个维度2个计算度量 | 58114 | 36480 | 9777 | 只有开DuckDb才走SQL | |
5个维度2个普通度量_分类汇总 | 137425 | 169077 | 8521 | 只有开DuckDb才走SQL | |
5个维度2个计算度量_分类汇总 | 196501 | 202680 | 9715 | 只有开DuckDb才走SQL | |
5个维度2个普通度量_分类汇总_普通度量过滤 | 122342 | 184562 | 只走多维引擎 | ||
5个维度2个计算度量_分类汇总_计算度量过滤 | 159675 | 202302 | 只走多维引擎 | ||
5个维度2个普通度量_环比 | 70033 | 271074 | 9548 | 只有开DuckDb才走SQL | |
5个维度2个普通度量_累计值 | 71177 | 265169 | 9501 | 只有开DuckDb才走SQL | |
5个维度2个普通度量_同比 | 66573 | 285836 | 9667 | 只有开DuckDb才走SQL | |
5个维度2个普通度量_组内升序排名 | 超过10分钟 | 超过10分钟 | 9306 | 只有开DuckDb才走SQL | |
5个维度2个普通度量_组内占比 | 超过10分钟 | 291232 | 9167 | 只有开DuckDb才走SQL | |
5个维度2个计算度量_环比 | 73154 | 291216 | 10261 | 只有开DuckDb才走SQL | |
5个维度2个计算度量_累计值 | 74253 | 281194 | 10234 | 只有开DuckDb才走SQL | |
5个维度2个计算度量_同比 | 66650 | 295305 | 10237 | 只有开DuckDb才走SQL | |
5个维度2个计算度量_组内升序排名 | 超过10分钟 | 超过10分钟 | 10099 | 只有开DuckDb才走SQL | |
5个维度2个计算度量_组内占比 | 超过10分钟 | 312624 | 9797 | 只有开DuckDb才走SQL | |
5个维度2个普通度量_分类汇总_环比 | 181746 | 456415 | 9364 | 只有开DuckDb才走SQL | |
5个维度2个普通度量_分类汇总_累计值 | 195168 | 390764 | 9526 | 只有开DuckDb才走SQL | |
5个维度2个普通度量_分类汇总_同比 | 145766 | 447598 | 9328 | 只有开DuckDb才走SQL | |
5个维度2个普通度量_分类汇总_组内升序排名 | 超过10分钟 | 超过10分钟 | 9202 | 只有开DuckDb才走SQL | |
5个维度2个普通度量_分类汇总_组内占比 | 超过10分钟 | 超过10分钟 | 9116 | 只有开DuckDb才走SQL | |
5个维度2个计算度量_分类汇总_环比 | 218201 | 超过10分钟 | 9947 | 只有开DuckDb才走SQL | |
5个维度2个计算度量_分类汇总_累计值 | 227153 | 443621 | 10117 | 只有开DuckDb才走SQL | |
5个维度2个计算度量_分类汇总_同比 | 155855 | 496086 | 9964 | 只有开DuckDb才走SQL | |
5个维度2个计算度量_分类汇总_组内升序排名 | 超过10分钟 | 超过10分钟 | 9456 | 只有开DuckDb才走SQL | |
5个维度2个计算度量_分类汇总_组内占比 | 超过10分钟 | 超过10分钟 | 9500 | 只有开DuckDb才走SQL |