gpt4 book ai didi

javascript - 如何在 DynamoDB 表中插入多个项目并在超出最大容量时等待?

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:03 27 4
gpt4 key购买 nike

我有一个 json 文件,其中包含大约 700 个项目,我需要将其插入到 DynamoDB 表中。我目前正在使用 transactWrite,但插入所有这些项目需要很长时间。如何使用batchWrite,如果超过 25 个项目,则等待并再次运行该函数,直到插入所有项目?

data.forEach(async item => {
const params = {
TransactItems: [
{
Put: {
Item: {
pk: `User_${id}`,
sk: 'v0_User_Info',
val: item.User,
editTimeStamp: `${+new Date()}`,
latest: 1,
},
TableName: 'ddb-table',
},
},
{
Put: {
Item: {
pk: `User_${id}`,
sk: 'v1_User_Info',
user: item.User,
editTimeStamp: `${+new Date()}`,
},
TableName: 'ddb-table',
},
},
],
};
await docClient.transactWrite(params).promise()
.then(response => console.log(response))
.catch(err => console.table(err))
})
};

最佳答案

batchWriteItem返回一个名为 UnprocessedItems 的字段其中包含哪些项目无法处理并应重试。如果该列表为空,则一切都已成功写入。 UnprocessedItems 与批处理请求的格式完全相同,因此您应该能够直接将其传递给新的批处理请求。

有关循环和重试 UnprocessedItems 的一些示例代码,请查看此 answer类似的问题。

关于javascript - 如何在 DynamoDB 表中插入多个项目并在超出最大容量时等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56403003/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com