华鼎数据库与SpagoBI平台的整合

华鼎数据库与 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 用户手册。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值