使用Pentaho访问PostgreSQL中的非公共模式

使用Pentaho访问PostgreSQL中的非公共模式,postgresql,postgresql-9.1,pentaho,Postgresql,Postgresql 9.1,Pentaho,让我首先说,我对Pentaho的了解不会填满一个段落。我对PostgreSQL更了解。我正在与一些承包商合作,他们正在Pentaho v。4.5我的公司。一些数据需要经过ETL过程并汇总以用于报告目的。从DBASH的角度来看,我想将这些表移动到一个单独的PostgreSQL模式中 我知道Pentaho经常与没有模式的MySQL一起使用,我担心这可能会导致问题。我做了一些谷歌搜索,在这个主题上我没有找到太多的点击率,但我确实找到了一个封闭的——这意味着应该支持该功能 在我做这件事之前,我想看看是否

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

我知道Pentaho经常与没有模式的MySQL一起使用,我担心这可能会导致问题。我做了一些谷歌搜索,在这个主题上我没有找到太多的点击率,但我确实找到了一个封闭的——这意味着应该支持该功能

在我做这件事之前,我想看看是否有人知道这件事失败的原因或者这是个坏主意。或者如果你做得很好,也请让我知道

最后一点:我使用的是PostgreSQL 9.1.5,我自己甚至无法访问Pentaho实例来测试它。我希望Stackoverflow社区中的好人能够分享他们的专业知识,让我不必安装一个,花几个小时的时间玩/测试来了解这是个坏主意

编辑:

我知道这个问题有点含糊不清,但我希望有人能读一下,分享一下他们的经验。所以,让我更清楚地解释它,并提出更明确的问题

我什么也没做。我不知道宾托。我不想学Pentaho不是因为Pentaho有什么问题。。。这不是我现在的兴趣所在。我的公司雇佣了承包商,但我没有雇佣他们。他们有Pentaho的经验,但有MySQL的经验。他们对PostgreSQL一无所知。PostgreSQL和MySQL之间有一些重要的区别。包括PostgreSQL支持模式而MySQL使用单独的数据库这一事实。。。在概念上相似,在某些方面表现不同。有些ORM和工具并不喜欢这样。。。例如,该框架仍然不能完全支持Postgresql中的模式。我知道这一点,因为我经常使用Python和Django,如果我将内容保留在公共模式中,我的生活会更好。由于我使用Django和PostgreSQL模式的经验,我对将这些数据移动到新模式有点怀疑

我确实理解,无论表格位于何处,它们都需要权限才能访问数据

我的明确问题:

您是否使用Pentaho访问PostgreSQL数据库以访问除默认公共模式之外的模式中的表。 如果是这样的话,它能正常工作吗? 如果您有问题,请您愿意与我和Stackoverflow社区分享任何帮助您的在线资源吗?或者你愿意在这里详述你所记得的东西吗? 你知道有什么东西不能正常工作吗?例如,Pentaho中的一个开放bug与此主题相关。 再说一遍,这不是你的标准问题。我希望有人有经验,愿意在这里分享,让我不用花时间建立一个新的Pentaho实例,试着学好Pentaho来测试它,等等


谢谢。

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

我使用PDI和我们的8.4 Postgres实例做了一个快速测试,能够探索、读取和写入不同模式的表


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

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

我使用PDI和我们的8.4 Postgres实例做了一个快速测试,能够探索、读取和写入不同模式的表


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

您可以采取两种方法:

1前一篇文章所说的Pentaho步骤表输入、输出等通常允许您指定数据库模式

2在数据库连接中的“高级”选项卡中,首选架构名称


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

您可以走两条路:

1前一篇文章所说的Pentaho步骤表输入、输出等通常允许您指定数据库模式

2在数据库连接中的“高级”选项卡中,首选架构名称


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

我们使用的是MS SQL server,我可以告诉您Pentaho确实很难理解模式的概念。他们的许多应用程序允许您选择模式,但Pentaho,如您所说,是为使用类似mySQL的东西而构建的

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

我们将数据库用户设置为默认的dbo,然后将表结构化为dbo.dimdiment,
dbo.FactTable等。基本上,仅将dbo用于Pentaho目的。或者您希望默认为的任何模式。

我们使用MS SQL server,我可以告诉您,Pentaho确实很难理解模式的概念。他们的许多应用程序允许您选择模式,但Pentaho,如您所说,是为使用类似mySQL的东西而构建的

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

我们将数据库用户设置为默认的dbo,然后将表结构化为dbo.dimdiment,
dbo.FactTable等。基本上,仅将dbo用于Pentaho目的。或者您希望默认使用的任何模式。

我每天都大量使用PDI和PgSQL,并使用一系列不同的模式。它很好用。您可能遇到的唯一问题是Pg的麻烦做法,即强制将不带引号的标识符改为小写而不是大写。当我将Advanced connection属性设置为Quote all in database时,我很快意识到一切都变得简单了

是的,如果PDI不适合您,您必须在键入SQL时引用所有内容,但它工作得非常好。我还没有尝试过强制所有标识符使用小写,但我希望这也能奏效

当然,也可以使用首选模式nanme,但是要注意,有些步骤使用该选项,而有些步骤不使用。例如,您不能期望它将模式名称添加到您在表输入步骤中键入的SQL中

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

享受学习PDI的乐趣。它是对DBA技能的极大补充


Brian

我每天都广泛使用PDI和PgSQL,并使用一系列不同的模式。它很好用。您可能遇到的唯一问题是Pg的麻烦做法,即强制将不带引号的标识符改为小写而不是大写。当我将Advanced connection属性设置为Quote all in database时,我很快意识到一切都变得简单了

是的,如果PDI不适合您,您必须在键入SQL时引用所有内容,但它工作得非常好。我还没有尝试过强制所有标识符使用小写,但我希望这也能奏效

当然,也可以使用首选模式nanme,但是要注意,有些步骤使用该选项,而有些步骤不使用。例如,您不能期望它将模式名称添加到您在表输入步骤中键入的SQL中

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

享受学习PDI的乐趣。它是对DBA技能的极大补充


布莱恩

对不起,我不明白。你的问题到底是什么?@一匹没有名字的马。。。我想我已经说得很清楚了。在我这么做之前,我想看看是否有人知道这样做失败的原因,或者这是个坏主意。或者如果你做得很好,也请让我知道。你尝试了什么?您是否创建了一个新架构,将一些表复制到其中,并尝试对这些表运行报告?你那样做的时候发生了什么?有错误信息吗?另外,非public是指名为public以外的内容的模式,还是指名为public以外的、具有受限权限的内容的模式?@Catcall。请看我的编辑。谢谢。对不起,我不明白。你的问题到底是什么?@一匹没有名字的马。。。我想我已经说得很清楚了。在我这么做之前,我想看看是否有人知道这样做失败的原因,或者这是个坏主意。或者如果你做得很好,也请让我知道。你尝试了什么?您是否创建了一个新架构,将一些表复制到其中,并尝试对这些表运行报告?你那样做的时候发生了什么?有错误信息吗?另外,非public是指名为public以外的内容的模式,还是指名为public以外的、具有受限权限的内容的模式?@Catcall。请看我的编辑。谢谢。非常感谢您的回复@大卫S:没问题。我不太熟悉跨版本使用各种Postgres JDBC驱动程序的含义,但Pentaho设计工具的当前版本附带8.4驱动程序。这可能不是问题,或者你的承包商可能已经更新了,但我想我会提一下。很好的建议。我会记住这一点。再次感谢您的帮助。非常感谢您的回复@大卫S:没问题。我不太熟悉跨版本使用各种Postgres JDBC驱动程序的含义,但Pentaho设计工具的当前版本附带8.4
司机。这可能不是问题,或者你的承包商可能已经更新了,但我想我会提一下。很好的建议。我会记住这一点。再次感谢您的帮助。非常感谢您的回复!非常感谢。非常感谢您的回复!非常感谢。谢谢!我真的很感谢你的回应。我在最初的问题上受到了猛烈的抨击,甚至还获得了几张反对票——哈哈。我很感激你的建议。谢谢!我真的很感谢你的回应。我在最初的问题上受到了猛烈的抨击,甚至还获得了几张反对票——哈哈。我很感激你的建议。