我正在使用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本身的单个文件中?
答案 0 :(得分:0)
cat
中没有aws s3
命令。其他选择:
cp/sync
文件并使用shell中的cat
命令连接所有文件aws s3 cp s3://<file> -
获取文件名并在列表中循环,并将输出附加到新文件。您可以使用--recursive
cp
选项的单个命令执行此操作,但如果将文件复制到stdout,则不支持--recursive