Dynamodb put_item QPS

oy
1

put_item eylemin Plânları sınırlamak dynamodb mu?

Ben boto3 bir asenkron sarıcı olan aiobotocore kullanarak dynamodb için json dosyalarından bazı kayıtlar göç etmeye çalıştı.

yöntem put_item kullanarak, throughtput ulaşmak zor.

put_item gelen değişim yöntemleri batch_write_item için sonra yazma kapasitesine kadar kolaylıkla bulunuyor.

# Codes like this
import aiobotocore
import asyncio

resources = iter([])     
throughput = 1000
loop = asyncio.get_event_loop()
dydb = aiobotocore.get_session().create_client('dynamodb')


async def put_item(cli, item, table_name):
    await cli.put_item(TableName=table_name, Item=item)


async def batch_write_item(cli, items):
    await cli.batch_write_item(RequestItems=items)


async def test_put_item(resource, table_name):
    for item in resource:
        await put_item(dydb, item, table_name)


async def test_batch_write_item(resource):
    batch = []
    for item in resource:
        if len(batch) > 24:
            await batch_write_item(dydb, batch)
            batch = []
        else:
            batch.append(item)


if __name__ == __main__:
    # put item
    tasks = [test_put_item(resource) for _ in range(throughput)]
    loop.run_until_complete(asyncio.gather(*tasks))

    # batch write
    # tasks = [test_batch_write_item(resource) for _ in range(throughput // 25)]
    # loop.run_until_complete(*tasks)
Oluştur 02/04/2018 saat 01:57
kaynak kullanıcı
Diğer dillerde...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more