AWS Data Pipeline中的ShellCommandActivity

时间:2016-03-25 09:13:05

标签: shell amazon-web-services amazon-s3 amazon-data-pipeline

我正在使用Data Pipeline将Dynamo DB数据传输到S3。在S3存储桶中,我获得了备份,但它被拆分为多个文件。为了在单个文件中获取数据,我使用了Shell命令活动,它运行以下命令:

aws s3 cat #{myOutputS3Loc}/#{format(@scheduledStartTime,'YYYY-MM-dd')}/* > #{myRenamedFile}

这应该将S3文件夹中存在的所有文件连接到名为#{myRenamedFile}的单个文件。但是我在数据管道中遇到以下错误:

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: aws help aws <command> help aws <command> <subcommand> help aws: error: argument subcommand: Invalid choice, valid choices are: ls | website cp | mv rm | sync mb | rb

这是否意味着Shell命令活动不支持cat或者这里有什么问题?是否还有其他方法可以将不同的文件合并到S3本身的单个文件中?

1 个答案:

答案 0 :(得分:0)

cat中没有aws s3命令。其他选择:

  • cp/sync文件并使用shell中的cat命令连接所有文件
  • 通过调用aws s3 cp s3://<file> -获取文件名并在列表中循环,并将输出附加到新文件。您可以使用--recursive cp选项的单个命令执行此操作,但如果将文件复制到stdout,则不支持--recursive