amazon-web-services - AWS S3 Select 中的 SKIP/OFFSET/ScanRange 行
问题描述
我想知道是否有人想出如何在S3 Select中跳过行?
SELECT S.* FROM s3object S SKIP 100 LIMIT 200
--or
SELECT * from s3object s LIMIT 5, 10
--or
SELECT * from s3object s limit 5 OFFSET 10
看起来您可以限制返回的记录数
s3 = boto3.client('s3')
bucket = bucket
file_name = file
sql_stmt = """SELECT S.* FROM s3object S LIMIT 10"""
req = s3.select_object_content(
Bucket=bucket,
Key=file,
ExpressionType='SQL',
Expression=sql_stmt,
InputSerialization = {'CSV': {'FileHeaderInfo': 'USE'}},
OutputSerialization = {'CSV': {}},
)
还有一个请求将 OFFSET/SKIP 添加到 s3api,但它已关闭。
您也可以以字节为单位指定ScanRange,但如果对象被压缩会发生什么?
它是以字节为单位的压缩对象还是未压缩对象?
如果未压缩,S3 Select 如何处理部分记录?
更新:您不能在gzip
文件中使用 ScanRange:
botocore.exceptions.ClientError:调用 SelectObjectContent 操作时发生错误 (UnsupportedScanRangeInput):GZIP 类型的对象不支持扫描范围查询。
解决方案
推荐阅读
- spring-boot - @Configuration bean 设置 spring.application.name
- html - 抓取不可见的 URL
- ruby-on-rails - 生产环境的 Heroku 错误 `secret_key_base` 必须是 String 类型
- react-native - 本机模块是空对象
- reactjs - Material-UI InputLabel 在输入值由另一个输入字段设置时覆盖文本
- javascript - 使用 AJAX 更新动态更新某个容器
- robotframework - 使用机器人框架的facebook注销代码
- python - 如何从 Robot Framework 中的 JSON 列表中获取价值?
- r - addPolygons 不在闪亮的服务器上呈现形状数据
- ruby-on-rails - 在carrierwave / mini-magick上调整图像大小在rails中出现未知格式错误