Pentaho 报表设计器 - 动态数据源

Posted

技术标签:

【中文标题】Pentaho 报表设计器 - 动态数据源【英文标题】:Pentaho Report Designer - Dynamic Data Sources 【发布时间】:2012-02-16 22:11:20 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

在 PRD 中,您使用 JNDI 连接来获得相同类型的抽象。您可以在 $HOME/.pentaho/simple-jndi 中找到 JNDI 配置。在那里创建一个数据源,并在 BI-Server 的管理控制台中创建一个同名的数据源。然后将您的连接定义为“JNDI”连接类型并提及您为数据源提供的名称。

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

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

【讨论】:

好的..太好了。我认为 JNDI 是方向,但想确保我没有创造任何额外的工作或遗漏一些明显的东西。谢谢! 还有,mongodb 呢?由于 mongodb 不是关系数据库,因此没有 JDBC 驱动程序。所以,没有办法配置 jdbc 数据源。 @thomas 你能告诉我这将如何工作(取决于你是在本地运行还是在服务器上运行,引擎将从运行时上下文中查找连接信息。)?我的意思是它将如何区分 url 部分是使用 localhost 还是特定的 serverip。【参考方案2】:

在 Windows 上,您可以在此处找到 jndi 配置文件:

C:\Users\(用户名)\.pentaho\simple-jndi

【讨论】:

以上是关于Pentaho 报表设计器 - 动态数据源的主要内容,如果未能解决你的问题,请参考以下文章

报表设计器 Pentaho

如何在 web 中嵌入 pentaho 报表设计器?

Pentaho 7 CE 报表设计器超链接 BUG

报告,子报告 pentaho

导出到 Pentaho 报告结果到 csv 或 excel

带有 PostgreSQL 和 Pentaho 的 JDBC 驱动程序