AWS Data Pipeline 中的 ShellCommandActivity
ShellCommandActivity in AWS Data Pipeline
我正在使用数据管道将 Dynamo DB 数据传输到 S3。在 S3 存储桶中,我得到了备份,但它被分成了多个文件。为了在单个文件中获取数据,我使用了 Shell 命令 Activity 运行以下命令:
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 命令 Activity 不支持 cat
或者这里有什么问题?有没有其他方法可以将不同的文件合并到 S3 本身的单个文件中?
aws s3
中没有 cat
命令。其他选项:
cp/sync
文件并使用 shell 中的 cat
命令连接所有文件
- 通过调用
aws s3 cp s3://<file> -
获取文件名并遍历列表,并将输出附加到新文件。您可以使用 cp
的 --recursive
选项在单个命令中执行此操作,但如果将文件复制到 stdout ,则不支持 --recursive
我正在使用数据管道将 Dynamo DB 数据传输到 S3。在 S3 存储桶中,我得到了备份,但它被分成了多个文件。为了在单个文件中获取数据,我使用了 Shell 命令 Activity 运行以下命令:
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 命令 Activity 不支持 cat
或者这里有什么问题?有没有其他方法可以将不同的文件合并到 S3 本身的单个文件中?
aws s3
中没有 cat
命令。其他选项:
cp/sync
文件并使用 shell 中的 - 通过调用
aws s3 cp s3://<file> -
获取文件名并遍历列表,并将输出附加到新文件。您可以使用cp
的--recursive
选项在单个命令中执行此操作,但如果将文件复制到 stdout ,则不支持
cat
命令连接所有文件
--recursive