关键词:
【中文标题】复制任务设置 JSON 上的 Boto3 DMS \'modify_replication_task\' 错误【英文标题】:Boto3 DMS 'modify_replication_task' error on replication task settings JSON复制任务设置 JSON 上的 Boto3 DMS 'modify_replication_task' 错误 【发布时间】:2019-10-14 13:47:42 【问题描述】:我正在使用 boto3 创建 DMS 复制任务。我正在使用以下replication_task_settings.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"
],
,
"ControlTablesSettings":
"ControlSchema": "control",
"HistoryTimeslotInMinutes": 5,
"HistoryTableEnabled": true,
"SuspendedTablesTableEnabled": true,
"StatusTableEnabled": true
,
"StreamBufferSettings":
"StreamBufferCount": 3,
"StreamBufferSizeInMB": 8,
"CtrlStreamBufferSizeInMB": 5
,
"ChangeProcessingDdlHandlingPolicy":
"HandleSourceTableDropped": false,
"HandleSourceTableTruncated": true,
"HandleSourceTableAltered": false
,
"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
调用dms_client.create_replication_task
时,上面的 JSON 可以正常工作。但是,修改复制任务时不起作用。
当使用上面提到的replication_task_settings.json
调用dms_client.modify_replication_task
时,我收到以下错误:
botocore.exceptions.ClientError: An error occurred (InvalidParameterValueException) when calling the ModifyReplicationTask operation: Invalid task settings JSON
我不知道为什么会这样,任何帮助将不胜感激!
我尝试删除一些已经默认的设置。我尝试寻找格式错误的 JSON,但没有什么明显的。
我希望replication_task_settings,json
可以用于创建和修改 DMS 复制任务。
【问题讨论】:
【参考方案1】:tableMappings 的 modify_replication_task() 的 boto3 文档建议 -- 在使用 CLI 或 boto3 时,提供包含表映射的 JSON 文件的路径。在路径前加上 file:// 。例如, --table-mappings file://mappingfile.json 。使用 DMS API 时,提供 JSON 作为参数值。
是的,你完全正确。 提供 JSON 文件作为参数在 CLI 中有效,但在 boto3 中无效。在 boto3 中,它会引发错误“Invalid TableMappings / Invalid JSON error”。
尝试以下方法使其工作:
import boto3
dms_client = boto3.client('dms')
table_mapping =
"rules":[
"rule-type":"selection",
"rule-id":str(idx),
"rule-name":str(idx),
"object-locator":
"schema-name":schema_name,
"table-name":table_name
,
"rule-action":"include"
]
dms_client.modify_replication_task(
ReplicationTaskArn=repl_task_arn,
TableMappings=json.dumps(table_mapping)
)
【讨论】:
【参考方案2】:我在尝试使用 CLI 修改复制任务时遇到了类似的问题:
aws --profile non-prod dms modify-replication-task --replication-task-arn arn:aws:dms:ap-southeast-3:567384657322:task:ABC --replication-task-settings file:/json_task --region ap-southeast-3
这是错误:
调用时发生错误(InvalidParameterValueException) ModifyReplicationTask 操作:无效的任务设置 JSON
以下命令有效:
aws --profile non-prod dms modify-replication-task --replication-task-arn arn:aws:dms:ap-southeast-3:567384657322:task:ABC --replication-task-settings file://json_task --region ap-southeast-3
更改是在JSON文件名前使用两个“//”来修改任务。
【讨论】:
在 Terraform 中启动 AWS DMS 复制任务
】在Terraform中启动AWSDMS复制任务【英文标题】:StartingAWSDMSReplicationTaskinTerraform【发布时间】:2018-04-0520:31:24【问题描述】:有什么方法可以通过Terraform启动AWSDatabaseMigrationServicefull-load-and-cdc复制任务?最好是在创建任务时自动启... 查看详情
DMS 任务在 Oracle 正在进行的复制中失败(完全加载工作正常)
】DMS任务在Oracle正在进行的复制中失败(完全加载工作正常)【英文标题】:DMStaskgettingfailedonOracleon-goingreplication(Fullloadworksfine)【发布时间】:2021-09-1100:39:09【问题描述】:我们正在使用AWSDMS将oracle数据库迁移到s3存储桶中,并... 查看详情
AWS DMS:复制任务已停止。停止原因 FULL_LOAD_ONLY_FINISHED
】AWSDMS:复制任务已停止。停止原因FULL_LOAD_ONLY_FINISHED【英文标题】:AWSDMS:Replicationtaskhasstopped.StopReasonFULL_LOAD_ONLY_FINISHED【发布时间】:2022-01-1907:52:44【问题描述】:面临DMS中停止复制等问题。eventserrorDMS任何人知道如何解决这... 查看详情
AWS DMS - 如何将 RDS 表数据写入单个 S3 目标文件?
...成功设置DMS以csv格式(完全加载)将数据从RDS(SQLServer)复制到S3。但是,在运行任务时,DMS会复制源表并在S3中为单个表创建多个csv文件。有什么办法可以确保对于1个表,DMS 查看详情
Oracle 到 Aurora - DMS - 失败
...次调用最后一次):文件“task_runner.py”,第2行,在导入boto3文 查看详情
AWS DMS 任务在 CDC 模式下一段时间后失败
】AWSDMS任务在CDC模式下一段时间后失败【英文标题】:AWSDMStaskfailingaftersometimeinCDCmode【发布时间】:2021-08-1012:43:14【问题描述】:在初始迁移+CDC模式下,我无法设置将RDS数据库(PostgreSQL,引擎10.15)中的数据迁移到S3存储桶的任... 查看详情
能够通过 *** 从本地 ping EC2。但是,无法 ping DMS 复制实例
】能够通过***从本地pingEC2。但是,无法pingDMS复制实例【英文标题】:AbletopingEC2fromon-premisesthrough***.But,unabletopingDMSreplicationinstance【发布时间】:2019-11-1117:47:35【问题描述】:我已经设置了一个***,并且能够从本地pingEC2实例的私... 查看详情
AWS ECS - 如何将任务的执行角色传递给 Boto3?
】AWSECS-如何将任务的执行角色传递给Boto3?【英文标题】:AWSECS-Howtopasstask\'sexecutionroletoBoto3?【发布时间】:2021-06-2719:13:17【问题描述】:我正在使用运行WindowsServer2019AMI/Docker的EC2实例运行ECS服务-但是在运行使用boto3的任务时,... 查看详情
如何取消芹菜队列上的任务? [复制]
】如何取消芹菜队列上的任务?[复制]【英文标题】:Howtocancelataskonceleryqueue?[duplicate]【发布时间】:2013-12-3009:34:40【问题描述】:我想撤销celery队列中待处理的任务,但撤销对任务状态没有任何影响。状态始终为PENDING或SUCCESS。... 查看详情
如何使用 boto3 从连接到 ECS 任务的网络接口获取公共 IP
】如何使用boto3从连接到ECS任务的网络接口获取公共IP【英文标题】:HowtogetpublicipfromanetworkinterfaceattachedtoanECStaskwithboto3【发布时间】:2018-12-1823:09:48【问题描述】:我需要一些帮助。我正在尝试使用boto3从网络接口获取公共IP,... 查看详情
将 DMS 连接到 S3
...描述】:我们正在尝试使用S3源设置DMS,但是我们无法将复制实例连接到源S3端点。当我们在源端点上运行连接测试时,我们收到的错误是:ErrorDetails:[errType=ERROR_RESPONSE,status=1020414,errMessage=Failedtoconnecttodatabase.,er 查看详情
AWS DMS Redshift 作为目标
...续迁移到Redshift。根据文档,如果目标是redshift,则DMS在复制到redshift之前使用S3存储桶临时存储数据。我找不到任何文件来确认此S3存储桶是否是临时的(仅用于初始复制)并且在复制完成后被删除。(https://docs.aws.a 查看详情
无法通过 Site-to-Site *** 和 DMS 源数据库端点测试连接从本地 ping DMS 复制实例的私有 IP
...通过Site-to-Site***和DMS源数据库端点测试连接从本地pingDMS复制实例的私有IP【英文标题】:UnabletopingPrivateIPofDMSReplicationInstancefromon-premisesoverSite-to-Site***&DMSsourceDBendpointtestconnectionfails【发布时间】:2019-10-1312:27:24【问题描述】:... 查看详情
AWS DMS oracle 完全加载失败
...:56【问题描述】:我正在运行RDSoracle12TORDSOracle12。但我的任务失败并出现以下错误。无法理解问题所在。**上次错误无法连接到数据库。从子任务2线程1收到任务错误通知[reptask/replicationtask.c:2822][1020414]执行创建PK语句失败 查看详情
我们可以使用 boto3 Python 在 aws s3 存储桶之间递归复制文件和文件夹吗?
】我们可以使用boto3Python在awss3存储桶之间递归复制文件和文件夹吗?【英文标题】:Canwecopythefilesandfoldersrecursivelybetweenawss3bucketsusingboto3Python?【发布时间】:2017-09-1310:56:53【问题描述】:是否可以使用boto3将一个源存储桶中的所... 查看详情
获取 Json 对象上的项目总数? [复制]
】获取Json对象上的项目总数?[复制]【英文标题】:GettotalnumberofitemsonJsonobject?[duplicate]【发布时间】:2012-11-2618:56:08【问题描述】:可能重复:LengthofJavascriptObject(ie.AssociativeArray)我有一个类似的对象:varjsonArray=\'-1\':\'-1\':\'b\',\'2... 查看详情
确认设备上的 AWS Cognito Boto3 错误:给出的设备密钥无效
】确认设备上的AWSCognitoBoto3错误:给出的设备密钥无效【英文标题】:AWSCognitoBoto3ErroronConfirmDevice:Invaliddevicekeygiven【发布时间】:2020-03-2212:42:14【问题描述】:我一直在使用启用MFA的Python、Django和Boto3创建AWSCognito流。我的身份验... 查看详情
数据迁移服务 (DMS):出现错误后如何继续(无法执行删除语句)?
...题描述】:AWS/DMS源AuroraMySQL->目标AuroraMySQL我的目标是复制所有更改除了删除。将单个表从源复制到目标。 查看详情