[设计器]XMLA数据连接

编辑
  • 文档创建者:加菲喵
  • 浏览次数:19016次
  • 编辑次数:35次
  • 最近更新:Kevin-s 于 2019-11-26
  • 1. 描述

    多维数据库(Multi Dimensional Database,MDD),顾名思义,就是指将数据存储在多个维度中,简单来说,就是将数据存放在一个 n 维数组中,而不是像关系数据库那样以记录的形式存放。因此它存在大量稀疏矩阵,人们可以通过多维视图来观察数据。多维数据库增加了一个时间维,与关系数据库相比,它的优势在于可以提高数据处理速度,加快反应时间,提高查询效率。

    2. 操作步骤

    FineReport 提供了 XMLA 数据连接的方式来与多维数据库进行连接,建立桥梁,通过此桥梁,FineReport 可以轻松获取到多维数据库中的数据,将其转换为二维表用以进行模板制作,数据分析。

    2.1 安装多维数据集插件

    安装 多维数据集插件

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

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

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

    image.pngu

    2.2 新建数据连接

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

    image.png

    XMLA数据连接建立好之后,就可以添加 多维数据库 XMLA 数据集。

    2.3 数据连接参数配置

    FineReport 多维数据库XMLA数据连接支持市场上主流的 SQLServer Analysis ServicesOracle EssbaseSAP HANA 等等数据库类型,下面我们一一讲解各类型多维数据库的连接方式。
    1)SQLServer Analysis Services

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

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

    222

    注:上面的 XMLA,URL 连接的是直接通过 IIS 发布的站点。

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

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

    222

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

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

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

    3. http-503 报错解决方案

    3.1 原因

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

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

    3.2 解决方案

    在这边我们通过修改这个文件如下:

    修改前:


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

    修改后:


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

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

    MaxThreadsPerClient < MinThreadPoolSize < MaxThreadPoolSize

    改完之后,这个时候假如访问此服务,仍旧没有解决多线程下的数据问题,就关闭再开启一下服务,刷新,就能解决了,如下图:

    222

    222

    附件列表


    主题: 设计思路
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]