Amazon s3 如何grep到存储在S3中的文件中
有人知道如何使用aws S3直接在存储桶中对S3文件执行grep吗? 例如,我有很多行的FILE1.csv、FILE2.csv,并希望查找包含字符串JZZ的行Amazon s3 如何grep到存储在S3中的文件中,amazon-s3,grep,Amazon S3,Grep,有人知道如何使用aws S3直接在存储桶中对S3文件执行grep吗? 例如,我有很多行的FILE1.csv、FILE2.csv,并希望查找包含字符串JZZ的行 aws s3 ls --recursive s3://mybucket/loaded/*.csv.gz | grep ‘JZZ’ aws s3 cp命令可以将输出发送到stdout: aws s3 cp s3://mybucket/foo.csv - | grep 'JZZ' 破折号(-)向命令发送信号,以将输出发送到标准输出 请参阅
aws s3 ls --recursive s3://mybucket/loaded/*.csv.gz | grep ‘JZZ’
aws s3 cp
命令可以将输出发送到stdout
:
aws s3 cp s3://mybucket/foo.csv - | grep 'JZZ'
破折号(-
)向命令发送信号,以将输出发送到标准输出
请参阅:您还可以使用GLUE/Athena组合,它允许您直接在AWS中执行。 根据数据量的不同,查询的成本可能会很大,而且需要时间 基本上
- 创建一个读取署名的粘合分类器
- 针对数据库(csvdumpdb)创建一个到S3数据目录的爬虫程序-它将创建一个包含所有找到的CSV的所有行的表
- 使用雅典娜进行查询,例如 选择“$path”,其中的行类似于“%some%funcy%string%”
- 然后得到类似于 $path行 s3://mybucket/mydir/my.csv“一些我确实找到了一些,是的,”花式,是的,字符串”
无需运行任何外部基础结构。您可以使用以下命令在本地执行此操作:
aws s3 ls——递归s3:///|awk'{print$4}'| xargs-I FNAME sh-c“echo FNAME;aws s3 cp s3:///FNAME-| grep--color=始终为“””
说明:
ls命令生成一个文件列表,然后我们从输出中选择文件名,对于每个文件(xargs命令),从S3下载文件并grep输出
如果您必须从S3下载大量数据(由于传输成本),我不推荐这种方法。如果您在VPC中的某个EC2实例上运行该命令,并且该实例上连接了S3 VPC端点,则可以避免internet传输的成本。这很有魅力。谢谢!在我的世界中,从S3下载产品数据到我的计算机不是一个选项。这是一个简单的方法。谢谢您的评论@james