...
Smartbi 数据模型引擎V2.0正式上线,它在稳定性、性能以及可扩展性上有全面革新,旨在为业务分析与决策支持提供更为强大、可靠的驱动力。
信息 | ||
---|---|---|
| ||
由于数据模型引擎升级至V21、由于数据模型引擎升级至V2.0后其抽取逻辑有所变更,因此若切换至新版本引擎,原有的数据模型需重新进行抽取方能确保数据查询的正常进行。若未主动执行此操作,在尝试访问依赖于该模型的报表时,系统将自动触发数据模型的抽取过程。 2、若数据模型 引擎V1.0 通过扩展包接入数据源,升级至数据模型引擎V2.0 时,需同步升级扩展包以确保兼容性。 |
2 功能介绍
V2.0依然包含 SQL引擎和多维引擎,如果满足条件会系统会自动切换,无需手工切换:
...
注意:多维引擎V2.0跟1.0在实现上有部分差异,升级的用户主要重点关注。
2.1 如何开启引擎V2.0?
- 在系统运维/系统选项/高级设置,设置:OLAP_QUERY_NEW_ENGINE_BUILD_MDX 如果为true代表开启,如为false代表关闭。(确保当前MPP库适配新引擎,否则设置项无效)
...
- ;
- 在2025-04-08之后的包是默认开启该引擎的。
2.2 数据模型引擎V2.0 比V1.0 增强了哪些功能
...
- 目前已经有28+个业务库适配了引擎 V2.0,可查看:详情。
- MPP库适配:目前只适配了,SmartbiMpp产品默认使用高速缓存库CH、StarRocks、SmartbiMppMD产品exe安装包自带高速缓存库,正在持续继续完善。、TiDB、Oceanbase (MySQL 模式)正在持续继续完善。
2、数据模型抽取方面
选项 | V1.0 | V2.0 |
---|---|---|
抽取整体逻辑 | 数据模型的结构没有调整,如果抽取失败,在报表层不能查看数据会报错。 | 1、优化抽取逻辑,减少抽取可能产生的内存溢出问题。 3、数据模型的结构没有调整,如果抽取失败,在报表层能正常查看数据(查看上一次抽取成功的数据) |
按次抽取 | session级别的,不同用户抽取是不一样的,不同用户无法共享,而且session不过期是不会清理表。 |
优势: 1、MPP表超过设置的抽取时间,自动清理旧表、减少资源消耗。 2、相同权限的用户间,抽取结果共享,减少重复抽取。 |
抽取行权限( 只最针对:数据模型中的数据源表做出的更改) | 数据模型中添加的是“数据源表”,抽取时是引用计划任务设置的执行人在源表上设置的行权限。还需要再数据模型上重新设置好数据行权限,查询时才不会权限泄露。 |
优势: 如果数据模型中添加都是数据源表:数据不容易泄露,查询时可直接以引用源表的行权限,无需再在数据模型上重新设置。 |
抽取计算字段 | 时间层次、分组字段、计算列全部不抽取。 |
优势: 1、计算字段抽取到MPP表中,查询SQL语句更简洁、查询速度更快。 |
计算度量 |
| |
计算列 |
|
优势: 1、日志更友好,问题定位更精准,并增强了易用性。 |
查询逻辑 | SQL引擎、多维引擎走不同的逻辑。
| 如果在报表层勾选了属于不同小宽表的字段,需要时时判断字段属于哪几个小宽表,如果命中多个小宽表:
优势: 查询时,根据查询的度量、维度更精准的命中某一部分小宽表,不用去查包含所有数据的大宽表,理论查询速度更快。 |
...
说明 | V1.0 VS V2.0 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 如下"维度表",没有产品编号为“4”的维度
| ||||||||||||
V1.0,计算列里面的字符串,mysql业务库可以用双引号,其他数据库需要用单引号。 V2.0,计算列里面的字符串,全部数据库都要用单引号。 | 如下图,如果V1.0刚好使用的是mysql数据库,然后计算列中字符串中刚好使用了双引号,升级到V2.0需要手工调整成单引号。 |
2、如果查询中未明确指定排序字段时,前端显示顺序可能不一致,建议升级后指定字段排序。
说明 | V1.0 VS V2.0 |
---|---|
|
2.4 V1.0 与V2.0 查询性能对比
说明:性能报告待上线。
1 概述
Smartbi 数据模型引擎V2.0正式上线,它在稳定性、性能以及可扩展性上有全面革新,旨在为业务分析与决策支持提供更为强大、可靠的驱动力。
信息 | ||
---|---|---|
| ||
由于数据模型引擎升级至V2.0后其抽取逻辑有所变更,因此若切换至新版本引擎,原有的数据模型需重新进行抽取方能确保数据查询的正常进行。若未主动执行此操作,在尝试访问依赖于该模型的报表时,系统将自动触发数据模型的抽取过程。 |
2 功能介绍
V2.0依然包含 SQL引擎和多维引擎,如果满足条件会系统会自动切换,无需手工切换:
- SQL引擎:详情可查看SQL引擎V1.0介绍、SQL引擎V2.0介绍。
- 多维引擎:是基于V1.0重构而来的,V2.0比V1.0 更稳定、查数更快、扩展性更强。
注意:多维引擎V2.0跟1.0在实现上有部分差异,升级的用户主要重点关注。
2.1 如何开启引擎V2.0?
- 在系统运维/系统选项/高级设置,设置:OLAP_QUERY_NEW_ENGINE_BUILD_MDX 如果为true代表开启,如为false代表关闭。(确保当前MPP库适配新引擎,否则设置项无效)
- 2024年7月1号之后全新安装的版本,默认开启V2.0引擎;如果只是更换包,默认不开启V2.0引擎,之前走什么引擎还是依旧走对应的引擎,即老用户不默认开启V2.0引擎。
2.2 数据模型引擎V2.0 比V1.0 增强了哪些功能
1、前提:业务库适配
- 目前已经有28+个业务库适配了引擎 V2.0,可查看:详情。
- MPP库适配:目前只适配了,SmartbiMpp产品默认使用高速缓存库CH、StarRocks、SmartbiMppMD产品exe安装包自带高速缓存库,正在持续继续完善。
2、数据模型抽取方面
...
1、优化抽取逻辑,减少抽取可能产生的内存溢出问题。
2、通过抽取逻辑调整,提升查询效率。
3、数据模型的结构没有调整,如果抽取失败,在报表层能正常查看数据(查看上一次抽取成功的数据)
...
- 设定MPP表动态有效期:(默认30分钟会自动抽取,运维可配置,详情可查看:直连&抽取)
- 报表刷新时,系统将自动触发重新抽取,数据获取更及时;
优势:
1、MPP表超过设置的抽取时间,自动清理旧表、减少资源消耗。
2、相同权限的用户间,抽取结果共享,减少重复抽取。
...
抽取行权限(
只最针对:数据模型中的数据源表做出的更改)
...
- 数据模型中添加的是“数据源表”,抽取时不引用计划任务设置的执行人的权限,行权限在查询时生效。
优势:
如果数据模型中添加都是数据源表:数据不容易泄露,查询时可直接以引用源表的行权限,无需再在数据模型上重新设置。
...
- 时间层次、分组字段、计算列都抽取了小宽表中。
- 不抽取的情况:
- 计算列含有参数、用户属性。
- 在报表层创建的计算列。
优势:
1、计算字段抽取到MPP表中,查询SQL语句更简洁、查询速度更快。
...
- 不管是在数据模型中创建的计算度量还是在报表层创建的计算度量,如果计算度量错误时,查询数据时:没有勾选该计算度量,不会报错,只有勾选了该计算度量才会报错。
...
- 抽取模式:不知道是哪个字段报错。
...
- 抽取模式:计算列如果报错,在抽取模式下,抽取日志会显示对应的计算列名称以及表达式信息。
优势:
1、日志更友好,问题定位更精准,并增强了易用性。
...
SQL引擎、多维引擎走不同的逻辑。
- SQL引擎:根据在报表层勾选字段判断命中几张表,如果是只勾选一张表的字段,即直接查询对应的表/查询;如果勾选了属于不同表/查询的字段,会时时判断,如果命中多个表,就查询大宽表。
- 多维引擎:只会查大宽表。
...
如果在报表层勾选了属于不同小宽表的字段,需要时时判断字段属于哪几个小宽表,如果命中多个小宽表:
- SQL引擎:小宽表之间是join关系;
- 多维引擎:小宽表之间是union关系。
优势:
查询时,根据查询的度量、维度更精准的命中某一部分小宽表,不用去查包含所有数据的大宽表,理论查询速度更快。
3、计算列支持更多函数
...
计算列封装了45+函数,包含:日期函数、数值函数、字符串函数、逻辑函数,并且在持续完善。
详情可查看:计算列函数。
4、报表层的增强
...
- 即席查询/透视分析筛选器条件自定义设置“且(AND)” 或者“或(OR)”关系,详情可查看:透视分析、即席查询。
- 仪表盘支持单选/多选下拉树、单选/多选列表树(待上线)。
- 在关于中增加了使用哪个引擎版本的标识,方便运维人员快速定位问题:
...
- 交叉表/透视分析:如果显示汇总小计、合计支持走SQL引擎,详情查看:SQL引擎V1.0介绍。
^事实表与维表关联,事实表中只有部分维度数据,查询选择维表中的维度及事实表度量时,支持显示所有的维度,示例如下:
...
1、"维度表"数据如下:
产品编号 | 产品名称 |
---|---|
16 | 饼干 |
32 | 白奶酪 |
42 | 糙米 |
47 | 蛋糕 |
56 | 白米 |
4 | 盐 |
2、”事实表“中,没有产品编号为“4(盐)”的记录。
3、 想要查询:所有产品名称、销量。
方式1:如果是直连模式,在数据模型中开启“假设引用完整性”,并且在报表层,关闭“压缩空行”可以达到效果:
方式2:如果是抽取模式,需要在报表层关闭压缩空行,缺点是会多一行空行,如果要把这个空行不显示出来,需要在系统选项/高级设置中设置
USE_NEW_ENGINE_PREPROCESS=true。
...
2.3 数据模型引擎V2.0是基于V1.0重构而来的,但是也是有一些差异:
1、在直连模式下:事实表与维表关联,当事实表中存在维表中没有的维度成员,并且表关系未设置假设引用完整性,查询选择维表中的维度及事实表度量时,会出现空的维度; 抽取模式:都是V2.0的展示效果。
新的变更调整更符合业务实际使用逻辑,如果想保持V1.0的效果,建议升级后设置“假设引用完整性”。
3、计算列使用字符串,如果是mySQL数据库,使用双引擎号,升级会有异常:
说明 | V1.0 VS V2.0 |
---|---|
| 如下图,如果V1.0刚好使用的是mysql数据库,然后计算列中字符串中刚好使用了双引号,升级到V2.0需要手工调整成单引号。 |
4、即席查询
说明 | V1.0 VS V2.0 |
---|---|
|
如下"维度表",没有产品编号为“4”的维度
产品编号 | 产品名称 |
---|---|
16 | 饼干 |
32 | 白奶酪 |
42 | 糙米 |
47 | 蛋糕 |
56 | 白米 |
2、如果查询中未明确指定排序字段时,前端显示顺序可能不一致,建议升级后指定字段排序。
...
- V1.0与V2.0 查询都没有指定字段排序时,可能存在顺序不一致的情况。
...
...
| ”贷款金额“在贷款信息表中,“担保金额”在担保信息表中,用即席查询查询明细,V1.0与V2.0效果不一致: |
2.4 V1.0 与V2.0 查询性能对比
说明:性能报告待上线。可查看SQL引擎V2.0介绍。