历史版本43 :多维数据集插件 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
JAR 包版本插件版本
10.02020-04-27V3.3.11
9.02018-10-10V3.2.9
8.02018-10-10V3.2.9

1.2 插件介绍

多维数据库(Multi Dimensional Database,MDD),就是指将数据存储在多个维度中。

简单来说,就是将数据存放在一个 n 维数组中,而不是像关系数据库那样以记录的形式存放。因此它存在大量稀疏矩阵,可以通过多维视图来观察数据。

多维数据库增加了一个时间维度,与关系数据库相比,它的优势在于可以提高数据处理速度,加快反应时间,提高查询效率。

2. 操作步骤编辑

FineReport 提供了 XMLA 数据连接的方式来与多维数据库进行连接,将多维数据库中的数据转换为二维表用以进行模板制作和数据分析。

2.1 安装插件

点击下载插件:多维数据集插件

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

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

数据连接里就会出现 XMLA 数据连接,如下图所示:

image.pngu

2.2 新建数据连接

打开设计器,点击服务器>定义数据连接,进入定义数据连接对话框,点击222按钮添加一个 XMLA 数据连接,如下图所示:

image.png

2.3 数据连接参数配置

FineReport 多维数据库 XMLA 数据连接支持市场上主流的 SQLServer Analysis ServicesOracle EssbaseSAP HANA 等数据库类型。

下面逐一讲解各类型多维数据库的连接方式。

2.3.1 SQLServer Analysis Services

SQLServer Analysis Services 简称为 SSAS,是指在内置计算支持的单个统一逻辑模型中,设计、创建和管理包含来自多个数据源(如关系数据库)的详细信息和聚合数据的多维结构。

连接步骤:

1)XMLA 数据连接参数配置界面上的数据库类型选择 SQLServer Analysis Services,在 URL 输入此数据库所在站点地址,用户名及密码。

点击数据库标签后面的「下拉」选项,FineReport 会自动将此站点下面的所有多维数据库加载显示在下拉列表中,选中需要连接的数据库即可,如下图所示:

222

注:上图中 XMLA、URL 直接连接通过 IIS 发布的站点。

2)点击测试连接即提示连接成功。

2.3.2 Oracle Essbase

1)数据库类型选择 Oracle Essbase,在 URL 输入此数据库所在站点地址,用户名及密码,然后点击数据库标签后面的下拉选项。FineReport 会自动将此站点下面的所有多维数据库加载显示在下拉列表中,选中需要连接的数据库即可,如下图所示:

222

2)点击测试连接即提示连接成功。

2.4 添加数据集

XMLA 数据连接建立好之后,可以添加多维数据库 XMLA 数据集,详情参见:多维数据库 。其中,XMLA 数据集查询取数方式包括 简单通用查询 和 自定义MDX查询 。

注1:简单通用查询 在选择的维度上过滤,不支持“包含”“不包含”“开头是”,在非选择的维度上做过滤,只支持“等于”。

注2:涉及到复杂的过滤形式可以使用 自定义MDX查询 。 

3. 注意事项编辑

3.1 报错:http-503

3.1.1 问题描述

创建 SSAS 服务的时候,使用到的一个配置项是 msmdpump.ini。

这个配置项文件在默认的时候,通过IIS代理连接到 SSAS 时每个客户端的最大连接数默认是 4 个,服务器限制了多并发的访问,所以连接数超过 4 个会产生 HTTP 503 的报错。

3.1.2 解决方案

修改配置文件如下:

修改前:

<ConfigurationSettings>
    <ServerName>localhost</ServerName>
    <SessionTimeout>3600</SessionTimeout>
    <ConnectionPoolSize>100</ConnectionPoolSize>
    <MinThreadPoolSize>0</MinThreadPoolSize><!--这一行可能没有-->
    <MaxThreadPoolSize>0</MaxThreadPoolSize><!--这一行可能没有-->
    <MaxThreadsPerClient>4</MaxThreadsPerClient><!--这一行可能没有-->
</ConfigurationSettings&gt

修改后:

<ConfigurationSettings>
    <ServerName>localhost</ServerName>
    <SessionTimeout>3600</SessionTimeout>
    <ConnectionPoolSize>100</ConnectionPoolSize>
    <MinThreadPoolSize>200</MinThreadPoolSize><!--这一行添加上,200是推荐值-->
    <MaxThreadPoolSize>500</MaxThreadPoolSize><!--这一行添加上,500是推荐值-->
    <MaxThreadsPerClient>100</MaxThreadsPerClient><!--这一行添加上,100是推荐值-->
</ConfigurationSettings&gt

数据根据需要修改,遵循的规则是:

MaxThreadsPerClient < MinThreadPoolSize < MaxThreadPoolSize

修改后假如访问此服务,仍旧没有解决多线程下的数据问题,就关闭再开启一下服务,刷新,问题解决,如下图所示:

222
222

3.2 报错:catalog不能为空

3.2.1 问题描述

SSAS 连接失败,产生报错信息:catalog不能为空,如下图所示:

Snag_4fcee8.png

3.2.2 解决方案

SSAS 里有空的 cube,把空 cube 删除就好了。