为什么不使用 RedshiftCopyActivity 从 Redshift 复制到 S3?输入是 RedshiftDataNode,输出是 S3DataNode,您可以在其中指定 directoryPath 的表达式。
还可以在RedshiftCopyActivity中指定transformSql属性覆盖默认值:select * from + inputRedshiftTable。
示例管道:
{
“对象”:[{
"id": "CSVId1",
“名称”:“默认CSV1”,
“类型”:“CSV”
}, {
"id": "RedshiftDatabaseId1",
“数据库名称”:“数据库名称”,
“用户名”:“用户”,
"name": "DefaultRedshiftDatabase1",
"*密码": "密码",
"type": "RedshiftDatabase",
“clusterId”:“redshiftclusterId”
}, {
"id": "默认",
"scheduleType": "时间序列",
"failureAndRerunMode": "CASCADE",
“名称”:“默认”,
"role": "DataPipelineDefaultRole",
"resourceRole": "DataPipelineDefaultResourceRole"
}, {
"id": "RedshiftDataNodeId1",
“日程”: {
"ref": "ScheduleId1"
},
"tableName": "订单",
"name": "DefaultRedshiftDataNode1",
"type": "RedshiftDataNode",
“数据库”:{
"ref": "RedshiftDatabaseId1"
}
}, {
"id": "Ec2ResourceId1",
“日程”: {
"ref": "ScheduleId1"
},
"securityGroups": "MySecurityGroup",
"name": "DefaultEc2Resource1",
"role": "DataPipelineDefaultRole",
"logUri": "s3://myLogs",
"resourceRole": "DataPipelineDefaultResourceRole",
“类型”:“Ec2Resource”
}, {
"myComment": "该对象用于控制任务调度。",
"id": "DefaultSchedule1",
"name": "RunOnce",
“发生”:“1”,
"期间": "1 天",
“类型”:“时间表”,
"startAt": "FIRST_ACTIVATION_DATE_TIME"
}, {
"id": "S3DataNodeId1",
“日程”: {
"ref": "ScheduleId1"
},
"directoryPath": "s3://my-bucket/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}",
"name": "DefaultS3DataNode1",
“数据格式”:{
“参考”:“CSVId1”
},
“类型”:“S3DataNode”
}, {
"id": "RedshiftCopyActivityId1",
“输出”: {
“参考”:“S3DataNodeId1”
},
“输入”: {
"ref": "RedshiftDataNodeId1"
},
“日程”: {
"ref": "ScheduleId1"
},
"name": "DefaultRedshiftCopyActivity1",
“运行”:{
“参考”:“Ec2ResourceId1”
},
“类型”:“RedshiftCopyActivity”
}]
}