配置数据连接

编辑
文档创建者:夏娃 (超级管理员 )     浏览次数:10969次     编辑次数:26次     最近更新:doreen0813 于 2017-12-05     

目录:

1、描述编辑

业务包数据通过数据连接从数据库中获取,故首先需要建立数据连接。

2、数据连接管理编辑

拥有BI数据配置权限的用户登录系统http://localhost:37799/WebReport/ReportServer?op=fs,一般是管理员,点击数据配置进入BI数据配置界面,单击数据连接管理,如下图:
222
如果非管理员用户想要配置BI数据,需要管理员给其分配BI数据配置的权限,分级权限分配请查看分级权限
2.1 新建数据连接
点击新建数据连接,添加一个数据连接,需要先选择需要添加的数据库类型,如下图:
222
222

如果数据库选择列表中没有所需的数据库类型,则选择others,手动输入驱动器名称,并将对应驱动器包放置在%BI_Home%\BI\webapps\WebReport\WEB-INF\lib下面。

添加完之后进行完整数据连接信息填写,当前以MySQL数据库为例说明下整个数据库添加的过程。
在新建数据连接界面:1.自定义数据可连接名bidemo。2.输入数据库用户名和密码,不能使用操作系统验证,3.根据需要转换数据库编码。
222
4.点击中下方的“测试连接按钮,测试该数据连接是否成功,如果连接成功,则会弹测试连接成功的弹出框。
222
注:在连接Oracle、sql server、DB2这三个数据库时,会比其他数据连接多了第三步:选择模式。当数据库如Oracle存在模式选择时就应该将此处模式进行选择;当数据库如mysql不存在模式选择,则无需进行模式选择。如果这三个数据库未进行模式选择,则在业务包选表的时候,默认选择的是第一个模式。
2.2 管理数据连接
点击确定,保存新建的数据连接。如下图,该界面可以看到建好的数据连接并进行一些管理操作:1.创建者 2.修改数据连接设置 3.测试连接 4.复制连接 5.删除连接。
222
注:1、在管理数据连接时,数据连接的名子不能改动。FineIndex的表与数据库匹配依靠的是数据连接的名子,如果改了数据连接的名子,FineIndex从该连接中取出的表将无法更新。 
       2、如果更新FineIndex表中的数据库,如由开发环境变化到生产环境,表名与表结构均一致时,只需要修改数据连接的URL即可。FineIndex中的表依照数据连接名依然可以更新数据。

3、数据库驱动及URL对应表编辑

以下列出BI中支持的数据库及对应的连接属性值:
数据库类型    驱动器URL  支持数据库版本  
Oracleoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@ip:1521:databaseNameOracle9i、Oracle10g、Oracle11g
Oracle  oracle.jdbc.driver.OracleDriverjdbc:oracle:oci:@databaseNameOracle9i、Oracle10g、Oracle11g  
DB2com.ibm.db2.jcc.DB2Driverjdbc:db2://ip:50000/databaseNameDB2_7.2、DB2_8.1
SQL Server  com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://ip:1433;databaseName=xxxSQL Server2000、2005、2008
MySQLcom.mysql.jdbc.Driverjdbc:mysql://ip/databaseName?user=root&useUnicode=True&characterEncoding=gb2312MySQL4.0版本以上
MySQLorg.gjt.mm.mysql.Driverjdbc:mysql://ip/databaseName?user=root&useUnicode=True&characterEncoding=gb2312MySQL4.0版本以上
Sybasecom.sybase.jdbc2.jdbc.SybDriverjdbc:sybase:Tds:ip:5000/databaseName?CHARSET=cp936Sybase
Accesssun.jdbc.odbc.JdbcOdbcDriverjdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *accdb)};DBQ=${ENV_HOME}\..\FRDemo.accdbAccess
Access  sun.jdbc.odbc.JdbcOdbcDriverjdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *accdb)};DBQ=${ENV_HOME}\..\FRDemo.accdbAccess2007及以上版本
Derbyorg.apache.derby.jdbc.ClientDriverjdbc:derby://ip:1527/databaseNameDerby
Postgreorg.postgresql.Driverjdbc:postgresql://ip:5432/databaseNamePostgre
HiveServerorg.apache.hadoop.hive.jdbc.HiveDriverjdbc:hive://localhost:10000/defaultHive各个版本
HiveServer2org.apache.hive.jdbc.HiveDriverjdbc:hive2://localhost:10000/defaultHive0.11.0及之后版本
Othersorg.hsqldb.jdbcDriverjdbc:hsqldb:file:[PATH_TO_DB_FILES]Hsql
注:64位操作系统不支持Access数据库,32位系统支持Access数据库。
注:在进行数据连接的时候要注意驱动器支持的数据库版本,如果选择的数据库版本不再上述表格中,那么就需要更换驱动器。如使用oracle数据库的时候,没有使用上述表格中所说的版本,而是oracle12c,那么需要把oracle7中jdbc/lib目录下的ojdbc7.jar放进FineBI的WEB-INF/lib中,同时删除ojdbc14.jar。相当于换了一个oracle驱动。
注:sqlserver2005在测试数据连接时,若报TCP/IP相关错误,是由于sqlserver2005默认情况下是禁用了tcp/ip连接,需要手动启动。
另:在使用others的时候,需要将对应的驱动包放置在FineBI\webapps\WebReport\WEB-INF\lib下面。
用jdbc连接Oracle数据库时,URL分为以下两种情况:
当databaseName为sid_name时,格式为jdbc:oracle:thin:@<host>:<port>:<sid_name>

当databaseName为service_name时,格式为jdbc:oracle:thin:@//<host>:<port>/<service_name>
异常情况:
1、某些情况下,我们在数据连接设置界面内测试会成功,但退出设置界面点击测试小图标时报错:如com.fr.third.org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object,此时我们可以尝试在selectMethod=cursor后面加上分号就能测试连接成功了。
2、mysql作为数据源时,可能会出现在业务包中数据表字段无限显示,且更新FineIndex会报错:java.lang.RuntimeException:database columnlength = 0,此时我们可以尝试在数据连接设置界面的URL加上jdbc:mysql://localhost/cmcb?characterEncoding=utf8
FineBI内置的jdbc驱动可参考:FineBI内置jdbc驱动版本

4、特殊情况处理编辑

1、当同一台服务器(ip相同)安装了两个SQL Server数据库时,同时用户名/密码/databasename都完全相同,此时需要查询两个数据库的端口是否相同,若端口相同时,同时访问两个数据库是会报错。
如果一个数据库有端口设置,另一个没有,想要连接无端口的数据库,那么在URL中就不写端口,同时在ip后面加上此数据库对应的实例名:jdbc:sqlserver://ip\实例名;databaseName=xxx,如下图所示:
222


2、oracle集群数据库连接

如果使用的是做过集群的oracle数据库,那在配置数据连接的时候,url需要按照以下格式进行填写。

jdbc:oracle:thin:@(description=(address_list= (address=(host=192.168.10.1) (protocol=tcp)(port=1521))(address=(host=192.168.10.2)(protocol=tcp) (port=1521))(load_balance=yes)(failover=yes))(connect_data=(service_name= orcl))) 

附件列表


主题: 新建仪表板
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(微信ID:frbiaoge)

本文档是否有用?
谢谢! 我们非常感谢您的反馈。
提交反馈: