Pentaho 在开始作业之前比较表架构

Pentaho 在开始作业之前比较表架构,pentaho,pdi,Pentaho,Pdi,我们目前正在进行一个项目,在这个项目中,我们需要检查数据库模式是否在每次启动Spoon作业时都发生了更改,因为我们的源数据库是一个我们几乎没有控制权的第三方数据库 对我们来说,最明显的解决方案是创建一个脚本,该脚本将调用类似的工具,然后将模式与以前生成的模式文件进行比较。如果有任何变化,我们将发送通知 问题基本上是:这是实现这一目标的最佳方式吗 任何帮助都将不胜感激 谢谢你抽出时间 注:我不确定stackoverflow是否是解决此类问题的最佳场所,因此,如果不是,请随时建议任何有趣的论坛。解决

我们目前正在进行一个项目,在这个项目中,我们需要检查数据库模式是否在每次启动Spoon作业时都发生了更改,因为我们的源数据库是一个我们几乎没有控制权的第三方数据库

对我们来说,最明显的解决方案是创建一个脚本,该脚本将调用类似的工具,然后将模式与以前生成的模式文件进行比较。如果有任何变化,我们将发送通知

问题基本上是:这是实现这一目标的最佳方式吗

任何帮助都将不胜感激

谢谢你抽出时间


注:我不确定stackoverflow是否是解决此类问题的最佳场所,因此,如果不是,请随时建议任何有趣的论坛。

解决方案一: 假设您所指的是PostgreSQL数据库,如果您有足够的权限查看
信息\u SCHEMA
,我建议您这样查询数据库:

选择列名称、数据类型、字符最大长度
来自信息\u SCHEMA.COLUMNS,其中表\u name=“”;
如您所述,以持久的方式存储预期结果,然后在子转换中比较结果。持久模式可以是存储定义的CSV文件,如下所示:

app_id           character varying           255                      
platform         character varying           255                      
etl_tstamp       timestamp without time zone (null)                   
collector_tstamp timestamp without time zone (null)                   
dvce_tstamp      timestamp without time zone (null)                   
event            character varying           128                      
event_id         character                   36                       
然后简单地比较这两个文件:(1)保存预期模式定义的文件,(2)刚从数据库中生成的文件。您可以使用文件比较步骤执行此操作:

我希望这有点帮助

编辑:

解决方案二: 您可以应用的另一个解决方案是:您还可以使用表比较步骤(由www.kjube.de提供)来比较来自不同来源的两个表


此步骤的好处在于,您可以为正在比较的两个表指定两个不同的连接。

您是否尝试过建议的解决方案?