我有几个并行运行的同一个PowerCenter会话的实例。它们尝试将大量行插入到同一目标表中。该表对自然键列具有唯一约束,由于唯一约束违规而导致许多行被拒绝。这些行保存在拒绝文件中,这会损害整个过程的性能。
我不需要被拒绝的行列表 - 我有意识地决定阻止数据库级别的重复行,而不是映射。这是该设计决定的已知副作用。
是否有设置可防止被拒绝的行记录在拒绝文件中?
答案 0 :(得分:3)
虽然PowerCenter没有提供禁用拒绝文件的设置并且Reject Filename
为空导致错误,但有一个很好的解决方法 - 您可以使用null device 保存被拒绝的行(和保存意味着丢弃写入空设备的所有数据,但报告写操作成功)。
如果Integration Service在Linux上运行,您可以使用/dev/null
- 设置适当的目标设置,如下所示:
Reject File Dir: /dev/
Reject Filename: null
等同于/dev/null
的Windows是NUL
文件。我没有使用PowerCenter会话进行测试,但C:\some\directory\NUL
应该可以正常工作。