AWS Database Migration Service
用户指南 (版本 API Version 2016-01-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

字符替换任务设置

您可以指定复制任务为具有 AWS DMS STRINGWSTRING 数据类型的所有源数据库列,在目标数据库上执行字符替换。您可以为具有来自以下源和目标数据库的终端节点的任意任务配置字符替换:

  • 源数据库:

    • Oracle

    • Microsoft SQL Server

    • MySQL

    • PostgreSQL

    • SAP Adaptive Server Enterprise (ASE)

    • IBM Db2 LUW

  • 目标数据库:

    • Oracle

    • Microsoft SQL Server

    • MySQL

    • PostgreSQL

    • SAP Adaptive Server Enterprise (ASE)

    • Amazon Redshift

注意

AWS DMS 版本 3.1.3 和更高版本支持字符替换。

您可以在任务设置中使用 CharacterSetSettings 参数指定字符替换。这些字符替换发生在使用 Unicode 码位值(采用十六进制表示法)指定的字符处。您可以分两个阶段实施替换,在指定了这两个阶段时需按以下顺序进行:

  1. 单个字符替换 – AWS DMS 可以将源上的所选字符的值,替换为目标上对应字符的指定替换值。使用 CharacterSetSettings 中的 CharacterReplacements 数组,选择具有您指定的 Unicode 码位的所有源字符。使用此数组还可以指定目标上对应字符的替换码位。

    要选择源上具有指定码位的所有字符,请将 CharacterReplacements 数组中 SourceCharacterCodePoint 的实例设置为该码位。然后通过在此数组中设置 TargetCharacterCodePoint 的对应实例,指定所有等同目标字符的替换码位。要删除目标字符而不是替换它们,请将 TargetCharacterCodePoint 的对应实例设置为零 (0)。您可以通过在 CharacterReplacements 数组中指定额外的 SourceCharacterCodePointTargetCharacterCodePoint 对,替换或删除所需任意数量的不同目标字符值。如果您为 SourceCharacterCodePoint 的多个实例指定了相同值,则 TargetCharacterCodePoint 的上一个对应设置的值应用到目标。

    例如,假设您为 CharacterReplacements 指定以下值。

    "CharacterSetSettings": { "CharacterReplacements": [ { "SourceCharacterCodePoint": 62, "TargetCharacterCodePoint": 61 }, { "SourceCharacterCodePoint": 42, "TargetCharacterCodePoint": 41 } ] }

    在本示例中,AWS DMS 在目标上将具有源位码十六进制值 62 的所有字符,替换为码位值为 61 的字符。此外,AWS DMS 在目标上将具有源位码值 42 的所有字符,替换为码位值为 41 的字符。换而言之,AWS DMS 在目标上将字母 'b' 的所有实例替换为字母 'a'。与此类似,AWS DMS 在目标上将字母 'B' 的所有实例替换为字母 'A'

  2. 字符集验证和替换 – 完成任意单独的字符替换之后,AWS DMS 可以验证并确保所有目标字符均具有您指定的单个字符集中的有效 Unicode 码位。您可使用 CharacterSetSettings 中的 CharacterSetSupport 来配置此目标字符验证和修改。要指定验证字符集,请将 CharacterSetSupport 中的 CharacterSet 设置为字符集字符串值。(CharacterSet 的可能值见下文。) 您可以让 AWS DMS 通过以下方式之一修改无效的目标字符:

    • 为所有无效目标字符指定单个替换 Unicode 码位,不论其当前码位如何。要配置此替换码位,请将 CharacterSetSupport 中的 ReplaceWithCharacterCodePoint 设置为指定值。

    • 通过将 ReplaceWithCharacterCodePoint 设置为零 (0) 配置删除所有无效目标字符。

    例如,假设您为 CharacterSetSupport 指定以下值。

    "CharacterSetSettings": { "CharacterSetSupport": { "CharacterSet": "UTF16_PlatformEndian", "ReplaceWithCharacterCodePoint": 0 } }

    在本示例中,AWS DMS 将删除在目标上找到但在 "UTF16_PlatformEndian" 字符集中无效的所有字符。因此,将删除使用十六进制值 2FB6 指定的任意字符。由于这是一个 4 字节 Unicode 码位而 UTF16 字符集仅接受 2 字节码位,此值无效。

注意

复制任务在启动您通过表映射指定的任意全局或表级别转换之前,完成所有指定的字符替换。有关表映射的更多信息,请参阅使用表映射指定任务设置

AWS DMS 支持的 CharacterSet 值显示在下表中。

UTF-8 ibm-860_P100-1995 ibm-280_P100-1995
UTF-16 ibm-861_P100-1995 ibm-284_P100-1995
UTF-16BE ibm-862_P100-1995 ibm-285_P100-1995
UTF-16LE ibm-863_P100-1995 ibm-290_P100-1995
UTF-32 ibm-864_X110-1999 ibm-297_P100-1995
UTF-32BE ibm-865_P100-1995 ibm-420_X120-1999
UTF-32LE ibm-866_P100-1995 ibm-424_P100-1995
UTF16_PlatformEndian ibm-867_P100-1998 ibm-500_P100-1995
UTF16_OppositeEndian ibm-868_P100-1995 ibm-803_P100-1999
UTF32_PlatformEndian ibm-869_P100-1995 ibm-838_P100-1995
UTF32_OppositeEndian ibm-878_P100-1996 ibm-870_P100-1995
UTF-16BE,version=1 ibm-901_P100-1999 ibm-871_P100-1995
UTF-16LE,version=1 ibm-902_P100-1999 ibm-875_P100-1995
UTF-16,version=1 ibm-922_P100-1999 ibm-918_P100-1995
UTF-16,version=2 ibm-1168_P100-2002 ibm-930_P120-1999
UTF-7 ibm-4909_P100-1999 ibm-933_P110-1995
IMAP-mailbox-name ibm-5346_P100-1998 ibm-935_P110-1999
SCSU ibm-5347_P100-1998 ibm-937_P110-1999
BOCU-1 ibm-5348_P100-1997 ibm-939_P120-1999
CESU-8 ibm-5349_P100-1998 ibm-1025_P100-1995
ISO-8859-1 ibm-5350_P100-1998 ibm-1026_P100-1995
US-ASCII ibm-9447_P100-2002 ibm-1047_P100-1995
gb18030 ibm-9448_X100-2005 ibm-1097_P100-1995
ibm-912_P100-1995 ibm-9449_P100-2002 ibm-1112_P100-1995
ibm-913_P100-2000 ibm-5354_P100-1998 ibm-1122_P100-1999
ibm-914_P100-1995 ibm-1250_P100-1995 ibm-1123_P100-1995
ibm-915_P100-1995 ibm-1251_P100-1995 ibm-1130_P100-1997
ibm-1089_P100-1995 ibm-1252_P100-2000 ibm-1132_P100-1998
ibm-9005_X110-2007 ibm-1253_P100-1995 ibm-1137_P100-1999
ibm-813_P100-1995 ibm-1254_P100-1995 ibm-4517_P100-2005
ibm-5012_P100-1999 ibm-1255_P100-1995 ibm-1140_P100-1997
ibm-916_P100-1995 ibm-5351_P100-1998 ibm-1141_P100-1997
ibm-920_P100-1995 ibm-1256_P110-1997 ibm-1142_P100-1997
iso-8859_10-1998 ibm-5352_P100-1998 ibm-1143_P100-1997
iso-8859_11-2001 ibm-1257_P100-1995 ibm-1144_P100-1997
ibm-921_P100-1995 ibm-5353_P100-1998 ibm-1145_P100-1997
iso-8859_14-1998 ibm-1258_P100-1997 ibm-1146_P100-1997
ibm-923_P100-1998 macos-0_2-10.2 ibm-1147_P100-1997
ibm-942_P12A-1999 macos-6_2-10.4 ibm-1148_P100-1997
ibm-943_P15A-2003 macos-7_3-10.2 ibm-1149_P100-1997
ibm-943_P130-1999 macos-29-10.2 ibm-1153_P100-1999
ibm-33722_P12A_P12A-2009_U2 macos-35-10.2 ibm-1154_P100-1999
ibm-33722_P120-1999 ibm-1051_P100-1995 ibm-1155_P100-1999
ibm-954_P101-2007 ibm-1276_P100-1995 ibm-1156_P100-1999
euc-jp-2007 ibm-1006_P100-1995 ibm-1157_P100-1999
ibm-1373_P100-2002 ibm-1098_P100-1995 ibm-1158_P100-1999
windows-950-2000 ibm-1124_P100-1996 ibm-1160_P100-1999
ibm-950_P110-1999 ibm-1125_P100-1997 ibm-1164_P100-1999
ibm-1375_P100-2008 ibm-1129_P100-1997 ibm-1364_P110-2007
ibm-5471_P100-2006 ibm-1131_P100-1997 ibm-1371_P100-1999
ibm-1386_P100-2001 ibm-1133_P100-1997 ibm-1388_P103-2001
windows-936-2000 ISO_2022,locale=ja,version=0 ibm-1390_P110-2003
ibm-1383_P110-1999 ISO_2022,locale=ja,version=1 ibm-1399_P110-2003
ibm-5478_P100-1995 ISO_2022,locale=ja,version=2 ibm-5123_P100-1999
euc-tw-2014 ISO_2022,locale=ja,version=3 ibm-8482_P100-1999
ibm-964_P110-1999 ISO_2022,locale=ja,version=4 ibm-16684_P110-2003
ibm-949_P110-1999 ISO_2022,locale=ko,version=0 ibm-4899_P100-1998
ibm-949_P11A-1999 ISO_2022,locale=ko,version=1 ibm-4971_P100-1999
ibm-970_P110_P110-2006_U2 ISO_2022,locale=zh,version=0 ibm-9067_X100-2005
ibm-971_P100-1995 ISO_2022,locale=zh,version=1 ibm-12712_P100-1998
ibm-1363_P11B-1998 ISO_2022,locale=zh,version=2 ibm-16804_X110-1999
ibm-1363_P110-1997 HZ ibm-37_P100-1995,swaplfnl
windows-949-2000 x11-compound-text ibm-1047_P100-1995,swaplfnl
windows-874-2000 ISCII,version=0 ibm-1140_P100-1997,swaplfnl
ibm-874_P100-1995 ISCII,version=1 ibm-1141_P100-1997,swaplfnl
ibm-1162_P100-1999 ISCII,version=2 ibm-1142_P100-1997,swaplfnl
ibm-437_P100-1995 ISCII,version=3 ibm-1143_P100-1997,swaplfnl
ibm-720_P100-1997 ISCII,version=4 ibm-1144_P100-1997,swaplfnl
ibm-737_P100-1997 ISCII,version=5 ibm-1145_P100-1997,swaplfnl
ibm-775_P100-1996 ISCII,version=6 ibm-1146_P100-1997,swaplfnl
ibm-850_P100-1995 ISCII,version=7 ibm-1147_P100-1997,swaplfnl
ibm-851_P100-1995 ISCII,version=8 ibm-1148_P100-1997,swaplfnl
ibm-852_P100-1995 LMBCS-1 ibm-1149_P100-1997,swaplfnl
ibm-855_P100-1995 ibm-37_P100-1995 ibm-1153_P100-1999,swaplfnl
ibm-856_P100-1995 ibm-273_P100-1995 ibm-12712_P100-1998,swaplfnl
ibm-857_P100-1995 ibm-277_P100-1995 ibm-16804_X110-1999,swaplfnl
ibm-858_P100-1997 ibm-278_P100-1995 ebcdic-xml-us