2012-02-16 69 views
2

我有一个本地实例的Pentaho报表设计器运行在我的盒子上,它有一个本地开发数据库配置为其数据源。 (2个数据源配置,都指向相同的本地数据服务器;源数据库和目标数据库)。Pentaho报表设计器 - 动态数据源

显然,当我将此报告发布到生产BI服务器时,报告失败,因为我的本地数据源不再可访问。

明确地配置报告以依赖生产数据库可以解决任何身份危机(危机?),但我生活在网络中,因此网络速度很慢,我不想为了开发目的而影响生产数据库。

在水壶中,我更新了kettle.properties文件以提供本地化的数据源变量(非常适合单元测试我的转换!),并且想知道是否有类似的方法来对PRD中的变量进行本地化?

回答

3

在PRD中,您使用JNDI连接来进行相同类型的抽象。您可以在$ HOME/.pentaho/simple-jndi中找到JNDI配置。在BI服务器的管理控制台中创建一个数据源和一个具有相同名称的数据源。然后将您的连接定义为“JNDI”连接类型,并提供给您数据源的名称。

然后,根据您是在本地运行还是在服务器上运行,引擎将从运行时上下文中查找连接信息。

但有一个警告:鉴于SQL不是真正的标准,请确保您的本地和远程环境使用相同的数据库类型。否则,如果您 - 例如 - 在客户端上使用MySQL并在服务器上使用Oracle,则为MySQL创建的SQL将不会被Oracle驱动程序接受,反之亦然。

+0

确定..大。我认为JNDI是方向,但是想确保我没有创造任何额外的工作或缺少明显的东西。谢谢! – 2012-02-17 14:30:02

+0

,那么mongodb呢?由于mongodb不是关系数据库,因此不存在JDBC驱动程序。所以,没有办法配置jdbc数据源。 – KikoV 2014-01-08 17:34:35

+0

@thomas能否告诉我这将如何工作(取决于你是在本地运行还是在服务器上运行,引擎将从运行时上下文中查找连接信息)?我的意思是它将如何区分url部分是否使用本地主机或特定serverip。 – 2016-01-18 07:19:44

0

在Windows上,发现这里的JNDI配置文件:

C:\Users\(username)\.pentaho\simple-jndi
相关问题