【发布时间】:2015-07-18 10:36:45
【问题描述】:
我在 s3 中有很多(数百万)小日志文件,其名称(日期/时间)有助于定义它,即 servername-yyyy-mm-dd-HH-MM。例如
s3://my_bucket/uk4039-2015-05-07-18-15.csv
s3://my_bucket/uk4039-2015-05-07-18-16.csv
s3://my_bucket/uk4039-2015-05-07-18-17.csv
s3://my_bucket/uk4039-2015-05-07-18-18.csv
...
s3://my_bucket/uk4339-2015-05-07-19-23.csv
s3://my_bucket/uk4339-2015-05-07-19-24.csv
...
etc
从 EC2,使用 AWS CLI,我想同时下载所有 2015 年分钟等于 16 的文件,仅适用于服务器 uk4339 和 uk4338
有没有聪明的方法来做到这一点?
另外,如果这是 s3 中用于查询数据的糟糕文件结构,我将非常感谢有关如何更好地进行设置的任何建议。
我可以将相关的aws s3 cp ... 命令放入 shell/bash 脚本中的循环中,以按顺序下载相关文件,但想知道是否有更有效的方法。
作为一个额外的好处,我想将结果绑定在一起作为一个 csv。
可以使用这行 R 代码在 R 中生成模拟 csv 文件的快速示例
R> write.csv(data.frame(cbind(a1=rnorm(100),b1=rnorm(100),c1=rnorm(100))),file='uk4339-2015-05-07-19-24.csv',row.names=FALSE)
创建的 csv 是 uk4339-2015-05-07-19-24.csv。仅供参考,最后我会将组合数据导入 R。
【问题讨论】:
-
我不知道 S3,但请告诉我如何在 S3 中生成所有文件的列表,以及如何复制其中一个,我会尽力向您展示一种方法做的真快...
-
要进行行绑定,您可以简单地将所有 CSV 组合在一起(剥离标题)并将其作为单个 CSV 读取吗?如果是这样,最好在复制每个文件后执行此操作。
标签: r amazon-web-services amazon-ec2 amazon-s3 aws-cli