

# 使用更改架构重新映射数据属性键
<a name="transforms-configure-applymapping"></a>

*更改架构*转换将源数据属性键重新映射到目标数据所需的配置。在“更改架构”转换节点中，您可以：
+ 更改多个数据属性键的名称。
+ 如果支持新数据类型并且两种数据类型之间存在转换路径，则更改数据属性键的数据类型。
+ 指示要删除的数据属性键，以选择数据属性键的子集。

您还可以根据需要（例如，为了修改其他数据来源或遵循*联接*转换），为作业图添加其他*更改架构*节点。

## 使用更改架构来处理十进制数据类型
<a name="transforms-configure-applymapping-decimal-datatype"></a>

 使用**更改架构**转换处理十进制数据类型时，**更改架构**转换会将精度修改为默认值（10,2）。要修改此精度并针对您的使用案例进行设置，您可以使用 **SQL 查询**转换并以特定的精度转换列。

 例如，如果您有一个名为“DecimalCol”、类型为“Decimal”的输入列，并且您想将其重新映射到名为“OutputDecimalCol”、特定精度为（18,6）的输出列，则需要：

1.  在**更改架构**转换之后添加一个后续的 **SQL 查询**转换。

1.  在 **SQL 查询**转换中，使用 SQL 查询将重新映射的列转换为所需的精度。SQL 查询将如下所示：

   ```
   SELECT col1, col2, CAST(DecimalCol AS DECIMAL(18,6)) AS OutputDecimalCol
   FROM __THIS__
   ```

    在上面的 SQL 查询中：
   +  `col1` 和 `col2` 是数据中的其他列，您希望在不做任何修改的情况下传递这些列。
   +  `DecimalCol` 是输入数据中的原始列名。
   +  `CAST(DecimalCol AS DECIMAL(18,6))` 将 `DecimalCol` 转换为 Decimal 类型，并指定精度为 18 位，包含 6 位小数。
   +  `AS OutputDecimalCol` 会将转换后的列重命名为 `OutputDecimalCol`。

 通过使用 **SQL 查询**转换，您可以覆盖由**更改架构**转换设置的默认精度，并将 Decimal 列显式转换为所需的精度。利用这种方法，您可以利用**更改架构**转换来重命名和重构数据，同时通过后续的 **SQL 查询**转换来处理 Decimal 列的精度要求。

## 将更改架构转换添加到您的作业
<a name="transforms-configure-applymapping-add-to-job"></a>

**注意**  
**更改架构**转换不区分大小写。

**将更改架构转换节点添加到作业图**

1. （可选）打开资源面板，然后选择**更改架构**将新转换添加到作业图（如果需要）。

1. 在节点属性面板中，输入作业图中节点的名称。如果尚未选择父节点，请从 **Node parents (父节点)** 列表中选择一个节点，用作转换的输入源。

1. 选择节点属性面板中的**转换**选项卡。

1. 修改输入架构：
   + 要重命名数据属性键，请在 **Target key (目标键)** 字段中输入键的新名称。
   + 要更改数据属性键的数据类型，请从 **Data type (数据类型)** 列表中为键选择新数据类型。
   + 要从目标架构中删除数据属性键，请选中该键对应的 **Drop (删除)** 复选框。

1. （可选）配置转换节点属性后，您可以选择节点详细信息面板中的 **Output schema (输出架构)** 选项卡，查看数据的修改架构。当您首次为任务中的任何节点选择此选项卡时，系统会提示您提供 IAM 角色以访问数据。如果您尚未在 **Job details (任务详细信息)** 选项卡上指定 IAM 角色，系统会提示您在此处输入 IAM 角色。

1. （可选）配置节点属性和转换属性后，您可以选择节点详细信息窗格中的 **Data preview (数据预览)** 选项卡来预览已修改的数据集。当您首次为任务中的任何节点选择此选项卡时，系统会提示您提供 IAM 角色以访问数据。使用此功能会产生相关费用，并且一旦您提供 IAM 角色，则会立即开始计费。