首页 > 解决方案 > 适用于 S3 选择的 AWS CLI

问题描述

我有以下代码,用于对位于 S3 存储桶中的密钥文件运行 SQL 查询。这完美运行。我的问题是,我不希望将输出写入输出文件。我可以在屏幕上看到输出(我的偏好 #1)吗?如果不是,那么附加到输出文件而不是覆盖它的能力怎么样(我的偏好#2)。我正在使用 AWS-CLI 二进制文件来运行此查询。如果有其他方法,我很乐意尝试(只要它在 bash 内)

aws s3api select-object-content \
    --bucket "project2" \
    --key keyfile1 \
    --expression "SELECT * FROM s3object s where Lower(s._1) = 'email@search.com'" \
    --expression-type 'SQL' \
    --input-serialization '{"CSV": {"FieldDelimiter": ":"}, "CompressionType": "GZIP"}' \
    --output-serialization '{"CSV": {"FieldDelimiter": ":"}}' "OutputFile"

标签: sqlamazon-web-servicesamazon-s3amazon-s3-select

解决方案


当然,您可以使用 AWS CLI 来执行此操作,因为stdout它只是 linux 中的一个特殊文件。

aws s3api select-object-content \
--bucket "project2" \
--key keyfile1 \
--expression "SELECT * FROM s3object s where Lower(s._1) = 'email@search.com'" \
--expression-type 'SQL' \
--input-serialization '{"CSV": {"FieldDelimiter": ":"}, "CompressionType": "GZIP"}' \
--output-serialization '{"CSV": {"FieldDelimiter": ":"}}' /dev/stdout

注意/dev/stdout最后。


推荐阅读