从管道AWS中删除s3文件

Jua*_*lez 2 amazon-web-services emr amazon-data-pipeline

我想问一下我正在尝试使用AWS中的数据管道完成的处理任务,但我无法让它工作.

基本上,我有2个数据节点代表2个MySQL数据库,其中数据应该定期提取并放在S3存储桶中.这个复制活动工作正常,每天选择已添加的每一行,今天说 - 1天.

但是,将收集的数据包含为CSV的存储桶应成为EMR活动的输入,EMR活动将处理这些文件并聚合信息.问题是我不知道如何删除已经处理的文件或将其移动到另一个存储桶,因此我不必每天处理所有文件.

为了澄清,我正在寻找一种方法来从管道中移动或删除S3存储桶中已处理的文件.我能这样做吗?有没有其他方法我只能根据命名约定或其他方式处理EMR活动中的某些文件?

Bob*_*low 6

更好的是,创建一个DataPipeline ShellCommandActivity并使用aws命令行工具.

使用以下两行创建脚本:

    sudo yum -y upgrade aws-cli 
    aws s3 rm $1 --recursive
Run Code Online (Sandbox Code Playgroud)

第一行确保您拥有最新的aws工具.

第二个删除目录及其所有内容.$ 1是传递给脚本的参数.

在您的ShellCommandActivity中:

    "scriptUri": "s3://myBucket/scripts/theScriptAbove.sh",
    "scriptArgument": "s3://myBucket/myDirectoryToBeDeleted"
Run Code Online (Sandbox Code Playgroud)

有关aws s3命令如何工作的详细信息,请参见:

    http://docs.aws.amazon.com/cli/latest/reference/s3/index.html
Run Code Online (Sandbox Code Playgroud)