1

首先让我说,我对 Pentaho 的了解不会填满一个段落。我对 PostgreSQL 更了解。我正在与一些承包商合作,他们正在为我的公司在 Pentaho (v. 4.5) 中构建一组月度报告。一些数据需要通过 ETL 流程并汇总以用于报告目的。从 dba(ish) 的角度来看,我想将这些表移动到单独的 PostgreSQL 模式中。

我知道 Pentaho 经常与 MySQL(没有模式)一起使用,我担心这可能会导致问题。我已经做了一些“谷歌搜索”,但我并没有在该主题上出现很多点击,但我确实发现了几年前的一个已关闭的错误- 因此暗示应该支持该功能。

在我这样做之前,我想看看是否有人知道这将失败或不是一个坏主意的原因。(或者如果你已经完成并且效果很好,也请告诉我)。

最后说明:我使用的是 PostgreSQL 9.1.5,我无法访问 Pentaho 实例,甚至无法自己测试。而且我希望 Stackoverflow 社区中的好人能够分享他们的专业知识,让我不必安装一个,并且为了了解这是一个坏主意而花费大量时间进行游戏/测试。

编辑:

我有点知道这个问题有点含糊,但我希望有人会阅读它并分享他们的任何经验。所以,让我更清楚地说明它并提出更明确的问题。

我什么都没做。我不知道彭塔霍。我不想学习 Pentaho(不是说 Pentaho 有什么问题……只是现在不是我的兴趣所在)。我的公司雇用了承包商(我没有雇用他们)。他们有使用 Pentaho 的经验,但使用的是 MySQL。他们对 PostgreSQL 一无所知。PostgreSQL 和 MySQL 之间有一些重要的区别。包括 PostgreSQL 支持模式的事实(而 MySQL 使用单独的数据库......在概念上相似但在某些方面表现不同)。一些 ORM(和工具)并不真正喜欢这个......例如,Django框架仍然没有真正完全支持 Postgresql 中的模式(我知道这一点,因为我经常使用 Python 和 Django,当我将东西保存在“公共”模式中时,我的生活会好得多)。由于我在 Django 和 PostgreSQL 模式方面的经验,我对将这些数据移动到新模式有点怀疑。

我确实明白,无论表格在哪里,它们都需要权限才能访问数据。

我的明确问题:

  • 您是否使用 Pentaho 访问 PostgreSQL 数据库以访问“公共”(默认)以外的模式中的表。
  • 如果是这样,它是否有效(没有问题)?
  • 如果您遇到问题,您愿意与我(以及 Stackoverflow 社区)分享任何对您有帮助的在线资源吗?或者您愿意详细说明您在这里记得的内容吗?
  • 你知道有什么不能正常工作的吗?例如,与此主题相关的 Pentaho 中的一个未解决的错误。

同样,这不是您的标准问题。我希望那里的人有经验并愿意在这里分享它,让我不必花时间设置一个新的 Pentaho 实例并尝试学习 Pentaho 来测试它等等。

谢谢。

4

4 回答 4

2

你可以走两条路:

1) 之前的帖子所说的(“Pentaho 步骤(表输入、输出等)通常允许您指定数据库模式。”)

2)在数据库连接中,高级选项卡,“首选模式名称”。

如果您使用不同的架构,您可以为每个架构创建一个数据库连接。使用这种方法,您可以将输入/输出步骤中的架构字段留空。

于 2012-10-30T11:20:05.563 回答
2

我们使用 MS SQL 服务器,我可以告诉你,Pentaho 确实在模式的想法上遇到了困难。他们的许多应用程序允许您选择模式,但 Pentaho 就像您所说的那样,是为使用 mySQL 之类的东西而构建的。

让您的 pentaho 数据库用户像在 mySQL 中一样工作。

我们将数据库用户默认为 dbo,然后我们构建了 dbo.dimDimension、dbo.factFactTable 等表。基本上,仅将 dbo 用于 Pentaho 目的。(或者你想默认的任何模式。)

于 2012-11-06T23:19:30.370 回答
2

我每天都广泛使用 PDI 和 PgSQL 以及一堆不同的模式。它工作正常。您可能遇到的唯一麻烦是 Pg 的麻烦做法是强制不带引号的标识符小写而不是大写。当我将高级连接属性设置为“引用数据库中的所有内容”时,我很快意识到一切都变得更容易了。

是的,如果 PDI 不为您执行 SQL,则您必须在键入 SQL 时引用所有内容,但它工作得很好。尚未尝试强制所有标识符为小写,但我希望这也能奏效。

是的,也可以使用“首选模式名称”,但请注意,某些步骤使用该选项,而其他步骤则不使用。例如,您不能期望它将模式名称添加到您在表输入步骤中键入的 SQL。

您可能遇到的唯一其他问题是 Pg 的 JDBC 驱动程序的限制。它不如 SQL Server 或 DB2,但我遇到的唯一问题是当 Table Output 步骤处于批处理模式时,将错误行从 Table Output 步骤发送到另一个步骤。

玩得开心学习 PDI。它可以很好地补充您的 DBA 技能。

布赖恩

于 2012-12-21T23:36:44.000 回答
1

Pentaho 步骤(表输入、输出等)通常允许您指定数据库模式。

我使用 PDI 和我们的 8.4 Postgres 实例进行了快速测试,并且能够探索、读取和写入不同模式中的表。

所以,我认为这是一个合理的方向。希望这可以帮助。

于 2012-10-22T20:05:42.240 回答