【问题标题】:Rhino eTL: Join operation with orphan rowsRhino eTL:加入孤立行的操作
【发布时间】:2011-01-23 17:15:02
【问题描述】:

我是第一次在项目中使用 rhino ETL,我非常 对其能力印象深刻。我使用连接操作来匹配两个 数据源。

有时可能会丢失数据,因此我将 LeftOrphanRow 覆盖为 “记录”错误。所以我虽然我会抛出一个异常然后在 进程结束使用收集所有发生的异常 获取所有错误()。

但似乎该过程正在中止,但出现第一个异常。 这是故意的吗?最好的处理方法是什么 OrphanRows(尤其是当我想在流程结束时汇总所有操作的所有孤立行时)?

【问题讨论】:

    标签: rhino-etl


    【解决方案1】:

    在我看来,问题在于您试图使用异常来报告非异常事件。这并不是异常的真正用途,当然,当您期望异常通过第三方库时,您不应该依赖该库以任何特定方式处理该异常。

    你能在某处保留一个孤立行的列表吗,例如全局,并在您遇到任何连接操作时添加到它?然后在您的 EtlProcess 完成后,将列表打印出来。您也可以考虑使用 log4net 来完成此操作。或者甚至只是发起一个事件,您在其他地方订阅并做任何看起来合适的事情。

    【讨论】:

    • @greg-fleming 我确实相信这是执行连接操作时的错误。在此期间,我查看了 Rhino.ETL 的源代码并注意到,其他操作正在将异常添加到内部异常列表中。加入操作的行为略有不同。我已经创建了一个修复并将其推送到 github 存储库 (github.com/ayende/rhino-etl/pull/4)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    相关资源
    最近更新 更多