Python 当您处于空闲层时,是否可以同时从并行或异步函数在dynamodb中编写代码?
没有并行函数的执行:时间=x 使用4个并行函数执行:时间=x/4 当执行带有4个并行函数的代码时,总时间不会除以4,而是保持不变 我的问题是: Dynamodb支持并行函数表写入吗Python 当您处于空闲层时,是否可以同时从并行或异步函数在dynamodb中编写代码?,python,amazon-dynamodb,Python,Amazon Dynamodb,没有并行函数的执行:时间=x 使用4个并行函数执行:时间=x/4 当执行带有4个并行函数的代码时,总时间不会除以4,而是保持不变 我的问题是: Dynamodb支持并行函数表写入吗 def用户输入输出(事件、上下文): 对于范围(4)中的i: x=清单#一份新的工作清单 响应=lambda_client.invoke( FunctionName=“tesis aws用户开发人员”, 调用类型=“事件”, 有效负载=json.dumps(x) ) def工作人员(事件、上下文): table=bo
def用户输入输出(事件、上下文):
对于范围(4)中的i:
x=清单#一份新的工作清单
响应=lambda_client.invoke(
FunctionName=“tesis aws用户开发人员”,
调用类型=“事件”,
有效负载=json.dumps(x)
)
def工作人员(事件、上下文):
table=boto3.resource('dynamodb')。table('patron2'))
rowsFinal=event['list']
对于rowsFinal中的行:
表.放置项目(项目={
“id”:str(uuid.uuid4()),
“系列”:第[0]行,
“秩”:行[1],
“规程”:第[2]行,
“性别”:第[3]行,
“工资”:第[4]行
})
答复={
“状态代码”:200,
“参数”:rowsFinal
}
返回响应
我希望函数的总执行时间将大大减少,因为我使用的是4个并行函数。
总执行时间:x
总执行时间:x/4
for row in rowsFinal:
table.put_item(Item={
'id': str(uuid.uuid4()),
'serie': row[0],
'rank': row[1],
'discipline': row[2],
'sex': row[3],
'salary': row[4]
})
这似乎不是并行运行的,而是以迭代的方式运行的
编辑
调用,如中所述是同步的,它等待响应
使用调用\u async,它们将并行运行
编辑2
代替表格。使用batch\u write\u item()
并按最多25个项目或16MB总计对它们进行分组是否有任何配置使dynamo支持并行写入?Dynamodb支持并行写入,但在您的情况下,Lambda是问题所在,因为它等待写入操作完成。def customfanin_out(事件,上下文):对于范围(4)内的i:x=list#aqui envio una lista nueva para cada función response=lambda#u client.invoke#u async(FunctionName=“tesis aws用户开发人员”,InvokeArgs=json.dumps(x))
我按照您的建议使用了以下代码,但没有改善结果。在这4个调用中,每个调用中有多少项需要放入?(list
或rowsFinal
预期大小)25000个元素的列表,每个并行函数分成6250个元素。