如何解决适用于S3 Select的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"
解决方法
当然,您可以使用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
。
AWS CLI不提供此类选项。
但是,我们欢迎您通过自己选择的AWS开发工具包调用它。
例如,在boto3 Python SDK中,有一个select_object_content()
函数将数据作为流返回。然后,您可以根据需要阅读,操作,打印或保存它。
我认为它会两次打开/ dev / stdout并导致kaos。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。