View a markdown version of this page

字符替换任务设置 - AWS Database Migration Service

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

字符替换任务设置

您可以指定复制任务在目标数据库上为 AWS DMS STRING或WSTRING数据类型的所有源数据库列执行字符替换。有关如何使用任务配置文件来设置任务设置的信息,请参阅任务设置示例。

您可以为具有来自以下源和目标数据库的终端节点的任意任务配置字符替换:

  • 源数据库:

    • Oracle

    • Microsoft SQL Server

    • MySQL

    • MariaDB

    • PostgreSQL

    • SAP Adaptive Server Enterprise(ASE)

    • IBM Db2 LUW

  • 目标数据库:

    • Oracle

    • Microsoft SQL Server

    • MySQL

    • MariaDB

    • PostgreSQL

    • SAP Adaptive Server Enterprise(ASE)

    • Amazon Redshift

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

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

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

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

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

    在此示例中, AWS DMS 用代码点值为 61 的字符替换目标上源代码点十六进制值 62 的所有字符。此外, AWS DMS 用代码点值为 41 的字符替换目标上源代码点 42 的所有字符。换而言之, 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 字节码位,此值无效。

注意

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

字符替换不支持 LOB 数据类型。这包括 DMS 认为是 LOB 数据类型的任何数据类型。例如,Oracle 中的 Extended 数据类型被视为 LOB。有关源数据类型的更多信息,请参阅下面的 Oracle 的源数据类型。

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