首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS中的“CharacterSetSettings”

AWS中的“CharacterSetSettings”
EN

Stack Overflow用户
提问于 2019-05-30 20:41:56
回答 1查看 1.2K关注 0票数 0

我使用AWS数据库迁移服务(DMS)创建复制任务。我注意到在TaskSettings JSON中有一个名为CharacterSetSettings的属性。但是,似乎没有关于该属性的文档。

我试着搜索文档和谷歌寻找这个属性,什么也没有出现。

任务设置JSON:

代码语言:javascript
复制
{
    "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数据库迁移服务任务的任务设置- AWS数据库迁移服务上列出。

EN

回答 1

Stack Overflow用户

发布于 2020-01-13 17:35:00

你在寻找字符替换任务设置。这似乎是相当新的。

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

  • 甲骨文
  • MySQL
  • PostgreSQL
  • SAP自适应服务器企业
  • IBM Db2 LUW

目标数据库:

  • 甲骨文
  • MySQL
  • PostgreSQL
  • SAP自适应服务器企业
  • 亚马逊红移

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

该对象如下所示:

代码语言:javascript
复制
"CharacterSetSettings": {
    "CharacterReplacements": [ {
        "SourceCharacterCodePoint": int,
        "TargetCharacterCodePoint": int
        },
        [...]
    ],
    "CharacterSetSupport": {
        "CharacterSet": str,
        "ReplaceWithCharacterCodePoint": int
    }
}

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

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56385361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档