AWS S3 Select中行的跳过/偏移/扫描范围

时间:2020-03-18 15:44:55

标签: amazon-web-services amazon-s3 amazon-s3-select

我想知道是否有人想出如何跳过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。

0 个答案:

没有答案
相关问题