新计算引擎插件

  • 文档创建者:Leo.Tsai
  • 编辑次数:61次
  • 最近更新:我是馍馍 于 2020-09-01
  • 1. 概述

    1.1 版本介绍

    报表服务器版本JAR 包版本 插件版本 
    10.02019-11-07
    V1.0.4

    注:新计算引擎插件不支持 IE8 及以下浏览器。

    1.2 应用场景

    新计算引擎引入了一种新的模板格式 cptx,该模板格式主要用于提升大数据量场景下分组明细、过滤、汇总等简单模板的性能,可以明显提升这些模板的展现速度。

    1.3 实现原理

    cptx 类似于一个压缩包,其中除了存储了原先的 cpt 文件之外,还包含了一些模板关系的编译结果。

    通过对模板的预处理(编译),将一些模板中的设置编译为 SQL 语句,交由 SQL 处理,同时按需取数,一次只取出部分数据,同时后台分页计算。

    这是一种可以规避大数据量带来的压力,优先确保首页快速加载展现的一种计算方式。

    1.4 功能介绍

    • 支持将 cpt 模板转换为 cptx 模板。

    • 报表预览方式新增新分页预览

    • 支持批量转换及检测生成的模板是否支持新计算引擎。

    1.5 支持的功能

    相比行式引擎,新计算引擎新增支持的功能:

    • 支持单元格过滤及汇总求和。

    • 支持条件属性行高列宽,超级链接。

    • 支持自适应。

    • 支持单元格内容提示使用公式。

    • 支持使用多个互相无过滤关系的数据集

    • 新增数据源支持。

    注:支持的数据源有 MySQL、ADS、huaweiHive、CUBRID、Apache Derby、Firebird、H2、SQLite、HSQL、MariaDB、PostgreSQL、SAP HANA、Oracle、Teradata、SQL Server、SQL Server2000、SQL Server2008、Access、ASE、Informix、Ingres、Amazon Redshift、Vertica、Apache Phoenix、Apache Kylin、Impala、GBase 8s、Transwarp、DB2、Sybase。

    1.6 暂不支持的功能

    由于后台分页取数计算逻辑限制,新计算引擎暂不支持部分功能在参数面板以外使用:

    • 不支持非 JDBC 数据源

    • 不支持树数据集、关联数据集、存储过程

    • 不支持扩展后排序

    • 不支持层次坐标、SQL 公式和“报表函数”类型公式。

    • 条件属性不支持行后分页和控件。

    • 不支持悬浮元素、分栏、sheet 间运算。

    • 不支持分页预览展示图表,不支持子报表。

    • 不支持不同数据集间过滤

    注1:目前不支持上述功能, cpt 转 cptx 时,日志中会有 error 的报错提示 unsupported feature。此时为避免 cptx 预览报错,会自动走老引擎的后台计算(即这些模板不会有性能上的提升)

    注2:新计算引擎支持了分组,但整体上分组展示的性能要逊色于列表展示,为了更好的性能,如无分组需求,建议将模板首列设置为列表。

    2. 插件介绍

    2.1 插件安装

    点击下载插件:新计算引擎

    设计器插件安装方法参照 设计器插件管理

    服务器安装插件方法参照 服务器插件管理

    推荐配合大数据集导出使用,详细内容参见文档:新计算引擎大数据集导出

    2.2 新旧引擎对比

    旧引擎和新引擎的后台计算逻辑区别如下表所示:

    注:这里的新引擎指的是 cptx 模板,旧引擎指的是 cpt 模板。

    计算逻辑
    旧引擎新引擎
    数据列( 筛选、过滤、排序等 )

    将数据集数据抽取到服务器内存,在内存中筛选和过滤

    数据量较大时,有内存溢出风险

    将设置编译为 SQL 语句,由数据库执行

    速度较快,数据量越大越明显

    按需计算不支持,只能全量计算所有支持,同时提供全量计算选项
    公式解析计算性能较慢,不支持动态参数缓存

    通过预编译提前确定单元格关系,避免计算时递归遍历

    支持动态参数缓存

    序列化存储

    模板为单个 XML,资源文件转为字符串存储

    存在大量资源文件时,读取与保存模板会比较慢

    模板为 zip 格式,里面内容为元数据对象,无需将资源文件转为字符串存储

    模板体积较大时,读取与保存不会出现卡顿

    前端渲染支持新前端渲染支持新前端渲染

    新引擎是流式计算的,具有首屏快速展现的功能,可以在首屏出来后进行点击翻页查看数据,无需等待所有数据处理完。新旧引擎报表展现速度对比如下图所示:

    左边为旧引擎,右边为新引擎。

    新老引擎预览对比.gif

    3. 操作方法

    3.1 模板格式转换

    打开 cpt 模板,设计器上方工具栏会出现一个转换按钮,点击该按钮,弹出提示框信息“转换成功,请查看设计器目录同名文件”,即表示 cptx 成功生成。

    注:cptx 生成后,不需要刷新目录树,cptx 模板会自动出现在同名 cpt 模板的同级目录下。

    Snag_4289c5b0.png

    3.2 新分页预览

    插件安装后,报表预览按钮下拉选择项新增新分页预览,如下图所示:

    注:cpt 和 cptx 都可以使用新分页预览。

    Snag_42c73cdc.png

    新分页预览分页预览的区别在于报表 Web 预览前端效果的改变,如下图所示:

    新分页预览的新前端效果:

    1.png

    分页预览的旧前端效果:

    2.png

    目前 cpt 和 cptx 格式的模板分别在新分页预览分页预览时,所使用的引擎和前端展现效果如下表所示:

    注:目前 cptx 优先对分页预览做支持,所以 cptx 模板选择其他预览方式时,比如填报预览之类,由于暂未支持,效果和分页预览是一致的。

    模板格式分页预览新分页预览
                         cpt       旧引擎,旧前端        旧引擎,新前端
                        cptx       新引擎,新前端        新引擎,新前端

    3.3 计算属性

    新引擎设置计算属性的操作步骤:打开一张 cptx 模板,设计器菜单栏选择模板>计算属性。计算属性设置界面的介绍如下:

    • 查询缓存:就是数据集缓存,勾选后可缓存查询结果,从而降低服务器压力,提升报表的展现速度。

    • 实验性功能:实验功能,不建议用户直接使用,如果想要使用可以联系技术支持,技术支持 QQ :800049425。

    注:插件安装后,只有 cptx 模板的菜单栏模板下才会显示计算属性这个功能。

    Snag_f25189f.png

    4. 批量转换

    4.1 应用场景

    主要面向有较多老模板需要验证新引擎是否能够支持的用户。

    提供可批量选择模板的设置,并对所选择的模板进行批量转换,解决只能一张张转换的问题。

    转换过程中同时进行是走新引擎还是老引擎的检测,明确是否支持及原因,报错是预期外情况,主要是做记录或用于反馈。

    注:V1.0.3 及之后版本新增批量转换功能。

    4.2 功能入口

    安装插件之后,设计器菜单栏文件下,新增批量转换的入口批量格式转换。如下图所示:

    Snag_f41bfb4.png

    4.3 功能面板

    功能面板主要由 3 部分组成,如下图所示:

    Snag_f4f9c1a.png

    4.3.1 模板选择区

    模板选择区以树的形式展示工程内的模板,只能显示 cpt 模板(无法选择被锁定了的模板)。

    注:批量转换模板的模板选择区也要受到远程设计权限的控制,无权限的模板不显示。

    4.3.2 待转换模板区

    1)在待转换模板区中,被勾选了的模板会在其中显示,如下图所示:

    Snag_f4b8692.png

    2)选择完成模板后点击开始转换即开始批量转换所选模板,模板按顺序进行转换。在原窗口基础上弹窗显示如下(进度条为真实进度):

    Snag_f4d8e1a.png

    注:未完成情况下点击中止则返回到原窗口,待转换模板区清空,已完成转换的模板显示在转换结果区。

    4.3.3 转换结果区

    点击模板转换区中已经完成转换的模板,可在下面的转换日志处看到模板对应的转换信息。

    转换结果由 3 种,分别如下:

    • 转换成功走新引擎:转换日志为“转换成功”,模板右侧的提示图标为转换成功.png

    • 转换成功走老引擎:转换日志显示相应报错信息,模板右侧的提示图标为走老引擎.png

    • 转换失败:转换日志显示相应报错信息,模板右侧的提示图标为转换失败.png

    注1:成功转换的数量包括转换成功走新引擎和转换成功走老引擎的兼容模式模板。

    注2:批量转换中的转换逻辑和单个模板转换保持一致,转换后的文件将生成在原文件同一目录下,如已存在此文件则进行覆盖。

    4.4 兼容性模式

    当模板转换成了 cptx,但因为功能不支持所以要走老引擎时,其实是不影响用户使用的。

    但是此时无法发挥新引擎对模板性能的优化,走老引擎的 cptx 模板会在模板名称后,显示兼容性模式(预览模板无额外变化,和原本一致),如下图所示:

    Snag_f5b46cc.png

    注1:兼容性模式是指模板能够支持正常的访问及编辑保存,但是无法使用新引擎对其性能进行优化。

    注2:当兼容性模式的 cptx 模板在修改保存后不再有新引擎不支持功能,此时保存后兼容性模式的显示消失,变为正常的新引擎 cptx 模板。

    5. 注意事项

    5.1 编译所有模板

    V1.0.3 及之前版本的插件安装后,在设计器菜单栏文件下,会新增一个功能按钮编译所有模板,如下图所示:

    这个按钮是批量转换最初的简化方案,它会转换当前报表工程下的所有 cpt 模板,但是存在一些使用上的问题。

    建议用户直接升级到 V1.0.3 及之后的版本,使用最新的批量转换功能。

    Snag_9bbb9e5.png

    5.2 行式引擎报错

    1)问题描述

    如果报表使用了模板>报表引擎属性下的行式引擎,如下图所示:

    Snag_8a631f.png

    cpt 转 cptx 后,预览模板时,会有报错信息:警告:18:01:44 Thread-13 ERROR [standard] 错误代码:11300001 数据集配置错误。

    2)原因分析

    报表的数据设置为列表,跟行式引擎冲突,如下图所示:

    Snag_8f2c29.png

    3)解决方案

    不使用行式引擎即可,不勾选行式引擎

    附件列表


    主题: 性能优化
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!