请帮助我设置从PostgreSQL到Informix (两者的最新版本)的连接。我希望能够从PostgreSQL对Informix执行查询。我正在寻找一种不需要为每个查询导出数据(从Informix)和导入(到PostgreSQL)的解决方案。
我在PostgreSQL非常新手,需要详细的说明。
发布于 2012-09-02 17:04:09
您还没有说您使用的是哪个版本。有一些限制需要注意,但有广泛的选择。
既然您说这是导入/导出,我就假定只读选项是不够的。这就排除了PostgreSQL 9.1的外来数据包装系统。
根据您的版本不同,David Fetter的DBI-Link可能适合您的需要,因为它可以在远程表上执行查询(请参阅https://github.com/davidfetter/DBI-Link)。它已经有一段时间没有更新了,但是它的实现应该是非常稳定的,并且可以跨版本使用。如果失败,您可以用一种不受信任的语言(PL/PythonU、PL/PerlU等)编写存储过程,以连接到Informix并在那里运行查询。注意,在这种情况下,您将遇到事务处理方面的限制,因此您可能希望使用延迟约束触发器在其他表上运行任何查询,以便所有内容都在提交时运行。
编辑:我想到了一种更简洁的方法:使用外部数据包装器进行导入,使用单独的客户端应用程序进行导出。
在这种方法中,您将拥有四个基本组件,但这将是松散耦合的,并受到适当的事务控制的约束。如果你愿意,你甚至可以使用两阶段提交。这四个组件是(这里没有提供一个完整的工作示例,但至少有一个路线图):
用于数据导入的exported.
LISTEN export_informix;
NOTIFY export_informix
通知是在提交时发出的,因此基本上可以通过这种方式将事务分为两个阶段:
发布于 2012-09-02 22:31:37
正如Chris Travers所说,你要做的事情并不容易做到。
从理论上讲,如果您正在使用Informix并需要访问PostgreSQL,那么您可以(购买并)使用企业网关管理器(EGM)并使用PostgreSQL的ODBC driver来允许Informix连接到PostgreSQL。在实际访问PostgreSQL时,EGM将尽最大努力使其看起来像另一个Informix数据库。(我还没有验证是否支持PostgreSQL,但是EGM基本上需要一个ODBC驱动程序才能工作,所以应该不会有任何问题--可能是“著名的遗言”。)这将包括2PC (两阶段提交)的仿真;不完美,但相当接近。
对于反向连接(使用PostgreSQL并连接到Informix),您将需要查看PostgreSQL工具套件-或其他来源。
https://stackoverflow.com/questions/12234529
复制相似问题