【问题标题】:A weird issue with Change Capture stage变更捕获阶段的一个奇怪问题
【发布时间】:2018-04-04 03:55:05
【问题描述】:

我设计了一个带有变更捕获的并行作业,我的阶段属性设置如下:

exclude values: some fields I don't want to compare 
change keys: fields as keys 
options: 
change mode=Explicit Keys, All Values 
other settings as default.

我绝对保证选择正确的字段作为键,并在列列表中检查这些字段的“键”选项。 但是当我运行作业时,我得到了错误:

Change_Capture:一个字段不能既是键又是值。

以下是输入和输出列:

如果我设置

change mode= Explicit Keys & Values

并明确关键字段和值字段,它可以解决。

怎么会这样?我几乎整天都在解决这个问题。请帮忙!

【问题讨论】:

  • 能分享一下输入输出表的定义吗?你说的是排除领域,但图片只显示了一个。这是一份简单的工作吗?您是否尝试减少值列的数量以检查是哪一个导致错误?
  • 我刚刚添加了列设置。而且我尝试只保留一个键和值字段,但没有奏效

标签: datastage cdc


【解决方案1】:

一些选项

1.您能否将更改键的字段顺序与输入步骤中出现的相同。

例如:在 CC 阶段 SHEET_ID 中的更改键应位于 BARCODE 之前。

2.从两个输入中查找重复的列

【讨论】:

  • 3.您还可以在 Input Stages 中移除 Key 检查。
  • 感谢您的回复。你所有的建议我都试过了,还是没用。我确保没有重复的列。
  • 您能否在转换中禁用运行时列传播(RCP)。确保在作业属性以及所有阶段都禁用
  • 我记得遇到这个错误是因为它主要是因为运行时列传播。请创建一个未启用 RCP 的新作业(在作业属性中禁用它)并将阶段复制粘贴到新作业中。
【解决方案2】:

作为您只使用一组键的要求,还从所有字段的列表中排除一些值,即正常运行时间(根据您的定义)- 您需要选择更改模式作为 'Explicit Keys & Values'强>

假设您不想在示例中排除 UPTIME - 您可以使用显式键,所有值,它都有效...

【讨论】:

  • 'Explicit Keys & Values' 会起作用。我试过了。但我很困惑,我之前在另一份工作中尝试过“显式键,所有值”和“排除值”,它运行成功。
猜你喜欢
  • 1970-01-01
  • 2017-12-21
  • 2012-12-20
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多