1. 概述
1.1 版本
报表服务器版本 | JAR 包版本 | 插件版本 | Elasticsearch版本 |
---|---|---|---|
11.0 | 2018-07-31 | V1.0 | V6.4.0 及以上 |
11.0 | 2021-01-26 | v1.5.12 | v7.11-8.x |
1.2 应用场景
Elasticsearch简称ES,是一个基于Lucene的实时分布式的搜索与分析引擎,是当前主流的企业级搜索引擎。它提供了一个分布式服务,可以使您快速的近乎于准实时的存储、查询和分析超大数据集,通常被用来当做构建复杂查询特性和需求强大应用的基础引擎或技术。
通过此插件可提供在 FineReport 中更加方便、快捷建立数据集的需求,可提供基于DSL语言的数据查询和常用数据聚合分析结果展示。
相信通过 FineReport 强大报表展示能力,再结合 Elasticsearch 数据搜索优势,一定能实现企业系统应用如虎添翼效果。
1.3 功能介绍
插件功能基于 Elasticsearch 官方提供 Java High Level REST Client 接口,开发的 FineReport 数据集功能,适配 Elasticsearch 6.4.0 及以上版本。
主要功能:
设计器中新建 Elasticsearch 数据连接和维护配置参数功能。
使用设计器,在服务器数据集或模板数据集中,建立Elasticsearch 数据集。
对查询结果的数据明细和聚合分析结果,分别建立数据集。
2. 插件介绍
2.1 插件安装
点击下载插件:Elasticsearch 数据集插件
设计器插件安装方法参照 设计器插件管理
服务器安装插件方法参照 服务器插件管理
2.2 操作方法
安装插件后进行两个步骤,数据连接建立和新建数据集。
2.2.1 新建ES数据连接
在 FineReport 设计器,选择菜单“服务器”点击“定义数据连接”,在弹出窗口点击加号选择“Elasticsearch”类型,如图:
可定义数据项描述:
数据连接自定义名称:默认为 Elasticsearch开头,对应红框1处;
数据库地址:填写 Elasticsearch服务的 URL 地址或 IP 地址(多个地址用英文逗号分隔),对应红框2处;示例:http://192.168.3.102 或 https://192.168.3.102 。
端口:Elasticsearch服务端口,默认为9200,对应红框2处;多个端口用英文逗号分隔,端口顺序与地址顺序保持一致。
用户名和密码:如需认证可填写,默认为空不认证。
画面中“连接配置”,可点击进行详细维护:
勾选“使用SSL”设定证书路径和证书秘钥后,可支持https连接访问。
配置完成后,点击测试连接按钮,即可检查连接状态。
最后,点击确认按钮保存完成此步骤。
2.2.2 新建ES数据集
报表模板数据集
报表模板数据集新建,选择Es数据集,弹出查询画面,如下图:
数据集查询画面各功能项:
数据连接选择下拉框:选择已定义的 ES数据连接名称,对应红框1;
ES索引搜索区:依所输条件查询匹配ES数据库中索引 index 名称并列表展示(类似于数据表table),默认查询全部索引显示。双击某个索引条目,自动填充到索引范围框中。对应红框2;
索引范围框:输入要查询的索引名称,多个索引输入,需用英文逗号分隔。对应红框3;
类型范围框:输入要查询的类型名称,多个类型输入,需用英文逗号分隔。类型type项目 Elasticsearch 官方已不推荐使用了,默认为空即可。
操作种类:查询,显示数据明细内容作为数据集;聚合,显示数据聚合分析的统计信息作为数据集。对应红框4;
查询条件:输入DSL查询语句,常用 查询query、聚合aggregations都能支持。在查询条件中设定的数据行数size优先于数据集预览行数设定。对应红框5;
Elasticsearch数据库默认只返回10行数据,在操作种类的查询中,需设定 “size”值。
参数值区:查询条件中可以使用参数,形式为 ${参数名} ,参数名在区域维护对应值即可。对应红框6;
服务数据集定义
操作步骤与模板数据集定义相同。查询条件中,可使用参数引用。例如 ${size}
3. 示例
数据集预览效果如下:
3.1 内容查询预览
3.2 聚合统计预览
3.3 报表预览
4. 注意事项
Elasticsearch数据库默认只返回10行数据,在操作种类的查询中,需设定 “size”值,否则报表预览时只显示10行内容。
在数据集预览窗口,查询条件没设定“size”值且预览窗口“最大预览行数”值大于10000时,会报错提示 加上size参数值或者调大index的属性max_result_window。
在集群中偶发 java.lang.reflect.UndeclaredThrowableException,原因为帆软系统升级jar导致类的序列化值变化所致。重启集群清空缓存可解决。