6

我有以下代码,用于对位于 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"
4

3 回答 3

7

当然,您可以使用 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最后。

于 2020-08-17T13:33:46.210 回答
0

AWS CLI 不提供此类选项。

但是,欢迎您改为通过您选择的 AWS 开发工具包调用它。

例如,在 boto3 Python SDK 中,有一个select_object_content()函数将数据作为返回。然后,您可以随心所欲地阅读、操作、打印或保存它。

于 2020-08-17T06:26:02.687 回答
-1

我认为它打开 /dev/stdout 两次导致 kaos。

于 2020-11-16T05:14:24.377 回答