You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将S3中的Avro文件推送至Kinesis流 解决DMS源端点配置报错

DMS S3源端点externalTableDefinition参数配置方法

S3作为DMS源端点时不会自动解析存储文件的Schema,必须通过externalTableDefinition参数显式传入结构化的表定义JSON,同步Avro格式文件到Kinesis的场景可直接参考下面的模板修改对应字段:

{
  "TableCount": "1",
  "Tables": [
    {
      "TableName": "自定义同步任务的逻辑表名,可按业务场景命名,例如hourly_behavior_log",
      "TablePath": "S3桶内存放Avro文件的前缀路径,例如log/avro/hourly/",
      "TableOwner": "s3",
      "TableColumns": [
        {
          "ColumnName": "Avro文件内的字段名,例如user_id",
          "ColumnType": "对应DMS支持的字段类型,例如BIGINT、STRING、TIMESTAMP、BOOLEAN、DOUBLE",
          "ColumnNullable": false
        },
        {
          "ColumnName": "字段名,例如event_time",
          "ColumnType": "TIMESTAMP",
          "ColumnNullable": false
        },
        {
          "ColumnName": "字段名,例如event_detail",
          "ColumnType": "STRING",
          "ColumnNullable": true
        }
      ],
      "TableColumnsTotal": "3",
      "DataFormat": "avro",
      "CompressionType": "Avro文件实际使用的压缩格式,可选值为none、gzip、snappy、zstd",
      "IncludeOpForFullLoad": true,
      "CdcInsertsAndUpdates": true
    }
  ]
}

注意:TableColumnsTotal的数值必须和TableColumns数组里的字段数量完全一致,字段类型要和Avro Schema的定义一一对应,否则会出现文件解析失败。

S3源到Kinesis目标的其他必填配置项
  • IAM权限配置:给DMS任务关联的服务角色添加最小必要权限:S3侧需要s3:ListBucket、s3:GetObject权限,Kinesis侧需要kinesis:PutRecord、kinesis:PutRecords权限
  • S3源端点基础参数:
    • 引擎类型选择Amazon S3
    • 准确填写S3桶名称,不要带s3://前缀
    • 选择S3桶实际所在的AWS区域,建议和DMS复制实例、目标Kinesis流部署在同一区域,减少跨区延迟与流量成本
    • 额外连接属性必须配置三个键值对,多个配置用分号分隔:cdcPath=和上述TablePath保持一致的S3前缀路径;dataFormat=avro;compressionType=和Avro文件实际压缩格式一致
  • Kinesis目标端点基础参数:
    • 引擎类型选择Amazon Kinesis Data Streams
    • 准确填写目标Kinesis流名称、所在区域
    • 消息格式建议选择JSON,方便后续Flink任务直接解析消费
  • DMS任务配置:按小时生成新Avro文件的场景,任务类型选择「全量+变更数据捕获(CDC)」即可,DMS会自动扫描指定路径下新增的Avro文件推送到Kinesis流。

内容的提问来源于stack exchange,提问作者lerileri25

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 05:15:31