我想知道是否有可能貓存儲在亞馬遜s3上的gzip文件。也許使用一些流媒體客戶端。你怎麼看?zcat上亞馬遜s3
我們正在尋找熱塑成型爲類似於zcat s3://bucket_name/your_file | grep "log_id"
我想知道是否有可能貓存儲在亞馬遜s3上的gzip文件。也許使用一些流媒體客戶端。你怎麼看?zcat上亞馬遜s3
我們正在尋找熱塑成型爲類似於zcat s3://bucket_name/your_file | grep "log_id"
一個操作不exaclty一個ZCAT,而是利用Hadoop的下載大型文件的方式,從S3平行可能是http://hadoop.apache.org/common/docs/current/distcp.html
Hadoop的DistCp使用S3:// YOUR_BUCKET/your_file/TMP/your_file
或
的hadoop DistCp使用S3:// YOUR_BUCKET/your_file HDFS://主:8020/your_file
也許從這一點可以通過管道將ZCAT ...
要添加憑據,你必須編輯核心site.xml文件有:
<configuration>
<property>
<name>fs.s3.awsAccessKeyId</name>
<value>YOUR_KEY</value>
</property>
<property>
<name>fs.s3.awsSecretAccessKey</name>
<value>YOUR_KEY</value>
</property>
<property>
<name>fs.s3n.awsAccessKeyId</name>
<value>YOUR_KEY</value>
</property>
<property>
<name>fs.s3n.awsSecretAccessKey</name>
<value>YOUR_KEY</value>
</property>
</configuration>
你也可以使用s3cat,蒂姆的一部分凱對AWS的命令行工具:
要獲得zcat FILENAME | grep "log_id"
相當於,你會怎麼做:
> s3cat BUCKET/OBJECT | zcat - | grep "log_id"
從S3 REST API » Operations on Objects » GET Object:
要使用GET,必須具有讀取訪問的對象。如果您授予匿名用戶的讀取權限,則可以在不使用授權標頭的情況下返回對象。
如果是這樣的話,你可以使用:
$ curl <url-of-your-object> | zcat | grep "log_id"
或
$ wget -O- <url-of-your-object> | zcat | grep "log_id"
但是,如果你還沒有授予對象上的匿名讀取權限,您需要創建和發送授權標頭作爲GET
請求的一部分,這與curl
/wget
有點繁瑣。幸運的是,有人已經做到了,那就是Perl aws script by Tim Kay,作爲recommended by Hari。請注意,只要您使用以aws
開頭的命令版本,例如,您不必將蒂姆凱的腳本放在您的路徑上或以其他方式安裝(除非使其可執行)。
$ ./aws cat BUCKET/OBJECT | zcat | grep "log_id"
如果您的操作系統支持的話(可能),你可以使用/dev/fd/1
目標爲aws s3 cp
:
aws s3 cp s3://bucket_name/your_file | zcat | grep log_id
似乎有成爲EOF後,一些尾隨字節,但zcat
和bzcat
方便地只寫警告到STDERR
。
我只是證實了這個工程通過加載一些DB轉儲直接從S3這樣的:
aws s3 cp s3://some_bucket/some_file.sql.bz2 /dev/fd/1 | bzcat -c | mysql -uroot some_db
所有這一切都與什麼,但東西已經在您的計算機和官方AWS CLI工具上。贏得。
您需要嘗試使用s3streamcat,它支持bzip,gzip和xz壓縮文件。
與
sudo pip install s3streamcat
使用安裝
用法:
s3streamcat s3://bucketname/dir/file_path
s3streamcat s3://bucketname/dir/file_path | more
s3streamcat s3://bucketname/dir/file_path | grep something
今天發現這個線程,並喜歡基思的答案。快速發展到今天,它的工作已經完成:
aws s3 cp s3://some-bucket/some-file.bz2 - | bzcat -c | mysql -uroot some_db
可以節省別人一小段時間。