Интересно, кто-нибудь понял, как пропустить строки в S3 Выберите ?
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 обрабатывает частичные записи?
Обновить : Вы не можете использовать ScanRange для gzip
файла:
botocore.exceptions.ClientError: Произошла ошибка (UnsupportedScanRangeInput) при вызове операции SelectObjectContent: запросы диапазона сканирования не поддерживаются для объектов с типом GZIP.