更改架构转换将源数据属性键重新映射到目标数据所需的配置。在“更改架构”转换节点中,您可以:
-
更改多个数据属性键的名称。
-
如果支持新数据类型并且两种数据类型之间存在转换路径,则更改数据属性键的数据类型。
-
指示要删除的数据属性键,以选择数据属性键的子集。
您还可以根据需要(例如,为了修改其他数据来源或遵循联接转换),为作业图添加其他更改架构节点。
使用更改架构来处理十进制数据类型
使用更改架构转换处理十进制数据类型时,更改架构转换会将精度修改为默认值(10,2)。要修改此精度并针对您的使用案例进行设置,您可以使用 SQL 查询转换并以特定的精度转换列。
例如,如果您有一个名为“DecimalCol”、类型为“Decimal”的输入列,并且您想将其重新映射到名为“OutputDecimalCol”、特定精度为(18,6)的输出列,则需要:
-
在更改架构转换之后添加一个后续的 SQL 查询转换。
-
在 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 列的精度要求。
将更改架构转换添加到您的作业
注意
更改架构转换不区分大小写。
将更改架构转换节点添加到作业图
-
(可选)打开资源面板,然后选择更改架构将新转换添加到作业图(如果需要)。
-
在节点属性面板中,输入作业图中节点的名称。如果尚未选择父节点,请从 Node parents (父节点) 列表中选择一个节点,用作转换的输入源。
-
选择节点属性面板中的转换选项卡。
-
修改输入架构:
-
要重命名数据属性键,请在 Target key (目标键) 字段中输入键的新名称。
-
要更改数据属性键的数据类型,请从 Data type (数据类型) 列表中为键选择新数据类型。
-
要从目标架构中删除数据属性键,请选中该键对应的 Drop (删除) 复选框。
-
(可选)配置转换节点属性后,您可以选择节点详细信息面板中的 Output schema (输出架构) 选项卡,查看数据的修改架构。当您首次为任务中的任何节点选择此选项卡时,系统会提示您提供 IAM 角色以访问数据。如果您尚未在 Job details (任务详细信息) 选项卡上指定 IAM 角色,系统会提示您在此处输入 IAM 角色。
(可选)配置节点属性和转换属性后,您可以选择节点详细信息窗格中的 Data preview (数据预览) 选项卡来预览已修改的数据集。当您首次为任务中的任何节点选择此选项卡时,系统会提示您提供 IAM 角色以访问数据。使用此功能会产生相关费用,并且一旦您提供 IAM 角色,则会立即开始计费。