我想知道是否有人想出如何跳过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
您似乎可以limit number of records returned
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': {}},
)
还有一个request用于将OFFSET / SKIP添加到s3api, 但它已关闭。
您还可以指定ScanRange以字节为单位,但是如果对象被压缩会怎样?
它是压缩对象的字节范围还是未压缩的字节?
如果未压缩,S3 Select如何处理部分记录?
更新:您无法在gzip
文件上使用ScanRange:
botocore.exceptions.ClientError:发生错误 (UnsupportedScanRangeInput)调用SelectObjectContent时 操作:具有类型的对象不支持扫描范围查询 GZIP。