случайная выборка из ведра S3 - PullRequest
0 голосов
/ 08 апреля 2020

У меня возникла проблема, когда мне нужно было произвести случайную выборку из корзины AWS S3. Я использую библиотеку python boto3 для запросов S3.

Проблема в том, что в корзине содержится около 400 миллионов ключей. Так что создание списка ключей в виде:

kwargs = {'Bucket': bucket}

count = 0
while (True):
    resp = s3.list_objects_v2(**kwargs)
    for obj in resp['Contents']:
        keys.append(obj['Key'])
        try:
            kwargs['ContinuationToken'] = resp['NextContinuationToken']
        except KeyError:
            break

займет огромное количество времени.

Другой вариант, если есть способ, сделать случайную выборку ключей на AWS сторона уже. Я не уверен, возможно ли это даже быстрее или быстрее?

Каким был бы быстрый способ случайной выборки некоторых ключей из корзины AWS? Конечно, я счастлив использовать что-то отличное от boto3

Я думал, что фильтрация по дате - это то, чем я могу легко управлять, поэтому я сделал что-то вроде:

export LASTWEEK=`date -v-1d +%F`
aws s3api list-objects-v2 --bucket alcheratech-old-analysed-data --query 'Contents[?LastModified > `$YESTERDAY`]'

Это кажется Бежать некоторое время, а также. Не уверен, что это перечисляет все, а затем фильтрует ...


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...