0

我正在使用 AWS Database Migration Service (DMS) 创建复制任务。我注意到在 TaskSettings JSON 中有一个名为CharacterSetSettings. 但是,似乎没有此属性的文档。

我尝试在文档和谷歌中搜索此属性,但没有出现。

任务设置 JSON:

{
    "TargetMetadata": {
        "TargetSchema": "",
        "SupportLobs": true,
        "FullLobMode": false,
        "LobChunkSize": 0,
        "LimitedSizeLobMode": true,
        "LobMaxSize": 256,
        "InlineLobMaxSize": 0,
        "LoadMaxFileSize": 0,
        "ParallelLoadThreads": 0,
        "ParallelLoadBufferSize": 0,
        "BatchApplyEnabled": false,
        "TaskRecoveryTableEnabled": false
    },
    "FullLoadSettings": {
        "TargetTablePrepMode": "TRUNCATE_BEFORE_LOAD",
        "CreatePkAfterFullLoad": false,
        "StopTaskCachedChangesApplied": false,
        "StopTaskCachedChangesNotApplied": false,
        "MaxFullLoadSubTasks": 8,
        "TransactionConsistencyTimeout": 1000,
        "CommitRate": 10000
    },
    "Logging": {
        "EnableLogging": true,
        "LogComponents": [
            {
                "Id": "SOURCE_UNLOAD",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "TARGET_LOAD",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "SOURCE_CAPTURE",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "TARGET_APPLY",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "TASK_MANAGER",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            }
        ],
        "CloudWatchLogGroup": "dms-tasks-altitude-staging-to-prod-instance",
        "CloudWatchLogStream": "dms-task-RU2FBO6SGUASAODLXHJ63OYDAM"
    },
    "ControlTablesSettings": {
        "historyTimeslotInMinutes": 5,
        "ControlSchema": "control",
        "HistoryTimeslotInMinutes": 5,
        "HistoryTableEnabled": true,
        "SuspendedTablesTableEnabled": true,
        "StatusTableEnabled": true
    },
    "StreamBufferSettings": {
        "StreamBufferCount": 3,
        "StreamBufferSizeInMB": 8,
        "CtrlStreamBufferSizeInMB": 5
    },
    "ChangeProcessingDdlHandlingPolicy": {
        "HandleSourceTableDropped": true,
        "HandleSourceTableTruncated": true,
        "HandleSourceTableAltered": true
    },
    "ErrorBehavior": {
        "DataErrorPolicy": "LOG_ERROR",
        "DataTruncationErrorPolicy": "LOG_ERROR",
        "DataErrorEscalationPolicy": "SUSPEND_TABLE",
        "DataErrorEscalationCount": 0,
        "TableErrorPolicy": "SUSPEND_TABLE",
        "TableErrorEscalationPolicy": "STOP_TASK",
        "TableErrorEscalationCount": 0,
        "RecoverableErrorCount": -1,
        "RecoverableErrorInterval": 5,
        "RecoverableErrorThrottling": true,
        "RecoverableErrorThrottlingMax": 1800,
        "ApplyErrorDeletePolicy": "IGNORE_RECORD",
        "ApplyErrorInsertPolicy": "LOG_ERROR",
        "ApplyErrorUpdatePolicy": "LOG_ERROR",
        "ApplyErrorEscalationPolicy": "LOG_ERROR",
        "ApplyErrorEscalationCount": 0,
        "ApplyErrorFailOnTruncationDdl": false,
        "FullLoadIgnoreConflicts": true,
        "FailOnTransactionConsistencyBreached": false,
        "FailOnNoTablesCaptured": false
    },
    "ChangeProcessingTuning": {
        "BatchApplyPreserveTransaction": true,
        "BatchApplyTimeoutMin": 1,
        "BatchApplyTimeoutMax": 30,
        "BatchApplyMemoryLimit": 500,
        "BatchSplitSize": 0,
        "MinTransactionSize": 1000,
        "CommitTimeout": 1,
        "MemoryLimitTotal": 1024,
        "MemoryKeepTime": 60,
        "StatementCacheSize": 50
    },
    "ValidationSettings": {
        "EnableValidation": true,
        "ValidationMode": "ROW_LEVEL",
        "ThreadCount": 5,
        "PartitionSize": 10000,
        "FailureMaxCount": 10000,
        "RecordFailureDelayInMinutes": 5,
        "RecordSuspendDelayInMinutes": 30,
        "MaxKeyColumnSize": 8096,
        "TableFailureMaxCount": 1000,
        "ValidationOnly": false,
        "HandleCollationDiff": false,
        "RecordFailureDelayLimitInMinutes": 0
    },
    "PostProcessingRules": null,
    "CharacterSetSettings": null
}

应该有关于CharacterSetSettings. 我希望该文档列在为 AWS Database Migration Service 任务指定任务设置 - AWS Database Migration Service上。

4

1 回答 1

0

您正在搜索字符替换任务设置。它似乎是相当新的。

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

源数据库:

  • 甲骨文
  • 微软 SQL 服务器
  • MySQL
  • PostgreSQL
  • SAP Adaptive Server 企业版 (ASE)
  • IBM Db2 LUW

目标数据库:

  • 甲骨文
  • 微软 SQL 服务器
  • MySQL
  • PostgreSQL
  • SAP Adaptive Server 企业版 (ASE)
  • 亚马逊红移

在启动您通过表映射指定的任何全局或表级转换之前,复制任务会完成所有指定的字符替换。

该对象如下所示:

"CharacterSetSettings": {
    "CharacterReplacements": [ {
        "SourceCharacterCodePoint": int,
        "TargetCharacterCodePoint": int
        },
        [...]
    ],
    "CharacterSetSupport": {
        "CharacterSet": str,
        "ReplaceWithCharacterCodePoint": int
    }
}

DMS 分两个阶段处理字符替换:

  • 在第一阶段,CharacterReplacements是描述一个 Unicode 代码点与另一个代码点的单个替换的对象列表。例如,如果您想替换ba, 设置SourceCharacterCodePoint62,TargetCharacterCodePoint61.
  • 在第二阶段,设置CharacterSetSupport使 DMS 验证所有字符对于CharacterSet(即UTF-8, . 在文档UTF-16ISO-8859-1查找完整列表)编码有效。如果它发现无效字符,它们将被替换为ReplaceWithCharacterCodePoint.

对于这两个阶段,特殊代码点0可用于删除字符。

于 2020-01-13T17:35:00.560 回答