|
华鼎数据库与
SpagoBI
平台的整合
1
SpagoBI
软件配置
1
)到官方网站下载
SpagoBI
软件与建库脚本,一般官网上的建库脚本为
Mysql
,
Oracle
等常用数据库,下载完成后需要针对
Huabase
数据类型进行转换,具体可以参照
Huabase
说明文档。
2
)配置
Tomcat
的
JNDI
数据源。首先需要将
Huabase
的
JDBC
Driver
拷贝到
Tomcat
的
LIB
目录下,然后对
Conf
目录下的
Server.xml
进行修改,需要修改
Resource
标签下内容,如下所示,将数据驱动与连接参数修改为
Huabase
的相关内容。
<Resource
name="jdbc/spagobi" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.huabase.jdbc.HuabaseDriver"
url="jdbc:huabase:@localhost:1978"
username="tpch"
password="tpch" maxActive="50" maxIdle="10"
maxWait="-1"/>
3
)配置
Hibernate
。在
SpagoBI
应用程序中找到
spagobi.xml
文件,路径如下:
exo-home/webapps/spagobi/WEB-INF/conf/spagobi/
。查找其中的
<HIBERNATE-CFGFILE>
标签,将自定义的
HIBERNATE
相关信息填入其中,如果没有
HIBERNATE
的相应配置文件,请参照
HIBERNATE
说明文档自行创建。同时,我们还要将
Huabase
的
JDBC
Driver
添加到
WEB-INF/LIB
目录下。
Hibernate
中的所有
Mapping
文件请根据
Mysql
或者
Oracle
等数据库的
Mapping
文件进行修改或重新定义。
4
)以上配置全部完成后,用户即可启动
SpagoBI
的
Tomcat
服务器,第一次使用时
Hibernate
将会向数据库中自动建一些表,可能会相对较慢,服务器启动成功后,请参照
SpagoBI
的用户手册进行操作。
2
Jasper
模板创建
1
)首先需要使用
Jasper
的
ireport
生成相应
jrxml
格式模板,以供
SpagoBI
中的
jasperEngine
执行。
ireport
使用方法请自行参照
ireport
自带用户手册,这里需要注意的是
ireport
只支持固定几种数据源,我们可以采取两种方法,一种是通过更改代码的方式然后再次执行,要更改的代码主要在于
ui
控件中的下拉列表的显示,主要在源代码包
com.jaspersoft.ireport.designer.connection.gui
中,但前提是需要将
Jasper
环境配置完成后才可以使用
built
生成。第二种方法相对比较简单,主要是通过在外部使用
xml
配置数据源的方式,直接导入
ireport
。如下所示,定义了一个名称为
abababab
的数据源,直接使用
ireport
数据源的
import
功能,将数据源导入即可。
<?xml
version="1.0"?><!-- iReport connections -->
<iReportConnectionSet>
<iReportConnection
name="ABABABAB"
connectionClass="com.jaspersoft.ireport.designer.connection.JDBCConnection">
<connectionParameter
name="ServerAddress"><![CDATA[ABABABAB]]></connectionParameter>
<connectionParameter
name="SavePassword"><![CDATA[true]]></connectionParameter>
<connectionParameter
name="Url"><![CDATA[jdbc:huabase:@localhost:1978]]></connectionParameter>
<connectionParameter
name="JDBCDriver"><![CDATA[com.huabase.jdbc.HuabaseDriver]]></connectionParameter>
<connectionParameter
name="Database"><![CDATA[]]></connectionParameter>
<connectionParameter
name="Password"><![CDATA[tpch]]></connectionParameter>
<connectionParameter
name="Username"><![CDATA[tpch]]></connectionParameter>
</iReportConnection>
</iReportConnectionSet>
2
)
Jasper
数据源配置成功后,我们就可以按照用户手册进行操作了,具体在这里不再赘述,生成的
Jasper
模板如何导入
SpagoBI
也请参照
SpagoBI
的说明文档。
注意:
JDBC
驱动要在
CLASSPATH
中配置好。
3
Birt
模板创建
1
)
Birt
相对比较简单,首先配置相应的
DataSource
数据源,导入数据驱动,具体操作请参照
Birt
说明文档。
2
)配置完成后,按照普通的报表生成方法即可。
注意:
Birt
生成表格报表的时候,需要在
Settings
中设置
Max
number of rows to fetch from data source
,否则可能会显示不出数据。
4
OLAP
模板创建
1
)
SpagoBI
使用的
OLAP
服务器为
Mondrian
,详细内容请参照说明文档,下面举例说明配置步骤。
2
)在
SpagoBI
的
exo-home
/resources/Olap
文件中,添加构建数据仓库的
xml
文件
例如(以下为示例应用):
<?xml version="1.0"
encoding="UTF-8"?>
<Schema
name="tezz">
<Cube name="Sales">
<Table
name="sale" />
<Dimension
name="Customer gender" foreignKey="cusId">
<Hierarchy
hasAll="true" allMemberName="all gender"
primaryKey="cusId">
<Table
name="Customer"></Table>
<Level
name="Customer gender" column="gender"></Level>
</Hierarchy>
</Dimension>
<Dimension
name="product type" foreignKey="proId">
<Hierarchy
hasAll="true" allMemberName="all product"
primaryKey="proId" primaryKeyTable="product">
<join
leftKey="proTypeId" rightKey="proTypeId">
<Table
name="product" />
<Table
name="producttype"></Table>
</join>
<Level
name="proTypeId" column="proTypeId"
nameColumn="proTypeName"
uniqueMembers="true" table="producttype" />
<Level
name="proId" column="proId" nameColumn="proName"
uniqueMembers="true"
table="product" />
</Hierarchy>
</Dimension>
<Measure
name="Quantity" column="number" aggregator="sum"
datatype="Numeric" />
<Measure
name="Total sales" aggregator="sum" formatString="#,##0.00">
<MeasureExpression>
<SQL
dialect="generic">(unitPrice*number)</SQL>
</MeasureExpression>
</Measure>
<CalculatedMember
name="Average unit price" dimension="Measures">
<Formula>[Measures].[Total
sales] / [Measures].[Quantity]</Formula>
<CalculatedMemberProperty
name="FORMAT_STRING" value="#,##0.00" />
</CalculatedMember>
</Cube>
</Schema>
上面构造了顾客性别及货物类型两个维度,及数量,总销售额,平均单价三个量度
3
)在
exo-home/webapps/SpagoBIJPivotEngine/WEB-INF/classes
中的
engine-config.xml
中指定数据仓库文件路径,如下面所示:
<?xml version="1.0"
encoding="ISO-8859-1"?>
<ENGINE-CONFIGURATION>
<!--
SSO
settings
-->
<INTEGRATION_CLASS_JNDI>java://comp/env/spagobi_sso_class</INTEGRATION_CLASS_JNDI>
<FILTER_RECEIPT>/proxyCallback</FILTER_RECEIPT>
<PASS>PASS</PASS>
<!--
SPAGOBI_SERVER_URL Address for invoking
WebService, if empty use the request parameters -->
<SPAGOBI_SERVER_URL></SPAGOBI_SERVER_URL>
<SPAGOBI_SERVER_URL_JNDI_NAME>java://comp/env/spagobi_service_url</SPAGOBI_SERVER_URL_JNDI_NAME>
<!--
THE JNDI RESOURCE NAME FOR RETRIVE THE
RESOURCE PATH -->
<RESOURCE_PATH_JNDI_NAME>java://comp/env/spagobi_resource_path</RESOURCE_PATH_JNDI_NAME>
<!-- The
URL to FORWARD to when session has expired -->
<SESSION_EXPIRED_URL>/WEB-INF/jsp/commons/sessionExpired.jsp</SESSION_EXPIRED_URL>
<SecurityServiceProxy_URL>/services/SecurityService</SecurityServiceProxy_URL>
<SchedulerServiceProxy_URL>/services/SchedulerService</SchedulerServiceProxy_URL>
<EventServiceProxy_URL>/services/EventService</EventServiceProxy_URL>
<ContentServiceProxy_URL>/services/ContentService</ContentServiceProxy_URL>
<AuditServiceProxy_URL>/services/AuditService</AuditServiceProxy_URL>
<DataSourceServiceProxy_URL>/services/DataSourceService</DataSourceServiceProxy_URL>
<DocumentExecuteServiceProxy_URL>/services/DocumentExecuteService</DocumentExecuteServiceProxy_URL>
<DataSetServiceProxy_URL>/services/DataSetService</DataSetServiceProxy_URL>
<SCHEMAS>
<SCHEMA
catalogUri="/Olap/FoodMart.xml" name="FoodMart" />
<SCHEMA catalogUri="/Olap/SbiMonitor.xml"
name="SpagoMonitor" />
<SCHEMA
catalogUri="/Olap/TestCorso.xml" name="TestCorso" />
<SCHEMA
catalogUri="/Olap/tezz.xml" name="Tezz" />
</SCHEMAS>
</ENGINE-CONFIGURATION>
4
)新建
OLAP
模板
,
并添加相应的查询语句即可。如以上示例如果查询的话
,
添加的语句如下所示
:
select
{[Measures].[Quantity],[Measures].[Average unit price],[Measures].[Total
sales]} ON columns,
{([product type].[all product],[Customer
gender].[all gender])} ON rows
from
[Sales]
5
Weka
模板创建
1
)
Weka
的使用请参照其用户手册,在这里需要注意的是,只有选择
Weka
的
KnowlegeFlow
生成的文件才能做为模板使用。
2
)如图
1
所示(取自
SpagoBI
中的示例应用),新建了一个知识流,
DatabaseLoader
负责对数据源进行加载,数据库可以如图中所示是数据库,也可以为
arff
,
csv
等格式,数据加载后形成数据集供下一步操作使用。
AddCluster
,代表将进行聚类的处理。
Remove
,将按需要移除不需要的属性。
DatabaseSaver
,将用户处理后的数据再次存回数据库。
图
1
示例应用
6
Talend
模板创建
1
)打开
Talend
open studio
,使用其中
metadata
的
DBConnection
进行数据连接设置,选择
general
jdbc
,设置相应的参数,数据库驱动,如果填写正确可以在测试连接中看到成功连接的提示。
2
)对
talend/plugins
文件夹下的
org.talend.metadata.management
包中的
EDatabase4Driver
-ClassName
类进行修改(此方法经测试适合
4.1
版本修改),为这个枚举类添加一个实例,
HUABASE(EDatabaseTypeName.GENERAL_JDBC,
"com.huabase.jdbc.HuabaseDriver")
。修改后编译保存重新打包,并替换原版本中的
jar
包后启动。
3
)举例说明
Talend
简单使用,如图
2
所示
图
2
Talend
示例
设计输入数据源为
NATION
,输出数据源
tJDBCOutput_1
,输入与输出按照
Huabase
数据库标准进行配置,使用
tMap_1
进行简单的映射,最后形成一个新表,具体参考
Talend
用户手册。
|