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

论坛 期权论坛 脚本     
匿名技术用户   2021-1-3 05:20   114   0

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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP