AWS DMS CDC任务无法检测列名和类型的更改。
创始人
2024-11-15 09:30:42
0

在AWS DMS中,CDC(Change Data Capture)任务无法检测列名和类型的更改。这是由于CDC任务只能检测到数据的更改,而不是数据库模式的更改。

但是,您可以通过以下步骤来解决这个问题:

  1. 创建一个Lambda函数,用于在CDC任务之前执行。此函数将调用AWS Glue的“GetTable” API来获取源表的元数据(包括列名和类型)。
import boto3

def get_table_metadata(database_name, table_name):
    glue_client = boto3.client('glue')
    response = glue_client.get_table(DatabaseName=database_name, Name=table_name)
    columns = response['Table']['StorageDescriptor']['Columns']
    return columns

def lambda_handler(event, context):
    source_database_name = event['sourceDatabaseName']
    source_table_name = event['sourceTableName']
    
    columns = get_table_metadata(source_database_name, source_table_name)
    
    # 将元数据存储在S3或其他地方,以便后续使用
    # ...
  1. 在AWS DMS任务之前,您可以使用AWS Lambda来调用上述函数,并将源数据库和表名作为输入参数传递给函数。可以使用AWS CloudWatch Events或AWS Step Functions来触发Lambda函数。

  2. 在目标端,您可以创建另一个Lambda函数,用于在CDC任务之后执行。此函数将调用AWS Glue的“GetTable” API来获取目标表的元数据,并将其与之前存储的源表元数据进行比较。

import boto3

def get_table_metadata(database_name, table_name):
    glue_client = boto3.client('glue')
    response = glue_client.get_table(DatabaseName=database_name, Name=table_name)
    columns = response['Table']['StorageDescriptor']['Columns']
    return columns

def compare_metadata(source_columns, target_columns):
    # 比较源表和目标表的元数据
    # ...

def lambda_handler(event, context):
    source_database_name = event['sourceDatabaseName']
    source_table_name = event['sourceTableName']
    target_database_name = event['targetDatabaseName']
    target_table_name = event['targetTableName']
    
    source_columns = get_table_metadata(source_database_name, source_table_name)
    target_columns = get_table_metadata(target_database_name, target_table_name)
    
    compare_result = compare_metadata(source_columns, target_columns)
    
    # 处理比较结果
    # ...

您可以根据自己的需求和情况修改上述代码示例。这种方法可以通过比较源表和目标表的元数据,来检测列名和类型的更改,并采取相应的处理措施。

相关内容

热门资讯

6分钟辅助!hhpoker是真... 6分钟辅助!hhpoker是真的假的,hhpoker真的有透视吗,演示教程(真是有挂)1、每一步都需...
第七分钟辅助!we poker... 第七分钟辅助!we poker插件,we poker免费辅助器,手筋教程(有挂方式)暗藏猫腻,小编详...
七分钟辅助!aa poker辅... 七分钟辅助!aa poker辅助包,pokemmo脚本辅助器下载,讲义教程(有挂秘籍)1、pokem...
第四分钟辅助!wepoker辅... 第四分钟辅助!wepoker辅助器安装包定制,aapoker透视脚本,大纲教程(有挂总结)所有人都在...
第四分钟辅助!wpk透视辅助靠... 第四分钟辅助!wpk透视辅助靠谱吗,wepoker透视苹果系统,诀窍教程(有挂猫腻);运wepoke...
七分钟辅助!aapoker透视... 七分钟辅助!aapoker透视脚本入口,wejoker开挂,学习教程(有挂教程)1、打开软件启动之后...
第四分钟辅助!淘宝买wepok... 第四分钟辅助!淘宝买wepoker透视有用吗,wpk俱乐部怎么作弊,积累教程(有挂规律)1、下载好淘...
6分钟辅助!we-poker软... 6分钟辅助!we-poker软件,购买的wpk辅助在哪里下载,积累教程(有挂技巧)购买的wpk辅助在...
第2分钟辅助!如何下载wepo... 第2分钟辅助!如何下载wepoker安装包,newpoker怎么安装脚本,教程书教程(今日头条)1、...
4分钟辅助!wepoker钻石... 4分钟辅助!wepoker钻石怎么看底牌,wepoker辅助器有哪些功能,法门教程(有挂详细)该软件...