

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 之前映像任务设置
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.BeforeImage"></a>

在将 CDC 更新写入数据流目标（如 Kinesis 或 Apache Kafka）时，可以在更新进行更改之前查看源数据库行的原始值。为此，请根据源数据库引擎提供的数据 AWS DMS 填充更新事件*之前的图像*。有关如何使用任务配置文件来设置任务设置的信息，请参阅[任务设置示例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。

为此，可使用 `BeforeImageSettings` 参数，它使用从源数据库系统收集的值向每个更新操作添加一个新的 JSON 属性。

确保仅对完全加载及 CDC 任务或仅 CDC 的任务应用 `BeforeImageSettings`。完全加载及 CDC 任务可迁移现有数据并复制持续更改。仅 CDC 任务仅仅复制数据更改。

不将 `BeforeImageSettings` 应用于仅完全加载的任务。

`BeforeImageSettings` 的可用选项如下所示：
+ `EnableBeforeImage` – 设置为 `true` 时，在映像前开启。默认值为 `false`。
+ `FieldName` – 为新的 JSON 属性指定名称。当 `EnableBeforeImage` 为 `true` 时，`FieldName` 是必填项且不能为空。
+ `ColumnFilter` – 指定要使用之前映像添加的列。要仅添加属于表主键一部分的列，请使用默认值 `pk-only`。要添加具有之前映像值的任何列，请使用 `all`。请注意，之前的图像不支持大型二进制对象（LOB）数据类型，例如 CLOB 和 BLOB。

下面的示例演示 `BeforeImageSettings` 的用法。

```
"BeforeImageSettings": {
    "EnableBeforeImage": true,
    "FieldName": "before-image",
    "ColumnFilter": "pk-only"
  }
```

有关 Kinesis 的之前映像设置（包括其他表映射设置）的信息，请参阅[使用之前映像查看 Kinesis 数据流（作为目标）的 CDC 行的原始值](CHAP_Target.Kinesis.md#CHAP_Target.Kinesis.BeforeImage)。

有关 Kafka 的之前映像设置（包括其他表映射设置）的信息，请参阅 [使用之前映像查看 Apache Kafka（作为目标）的 CDC 行的原始值](CHAP_Target.Kafka.md#CHAP_Target.Kafka.BeforeImage)。