Amazon dynamodb 如何通过Python/Boto3添加DynamoDB全局二级索引

Amazon dynamodb 如何通过Python/Boto3添加DynamoDB全局二级索引,amazon-dynamodb,boto3,python-ggplot,Amazon Dynamodb,Boto3,Python Ggplot,在创建DynamoDB表之后,是否可以将全局二级索引添加到现有的DynamoDB表中?我正在将Python 3.x与Boto3一起使用,在创建表之后,我没有找到任何将它们添加到表中的示例。通常,可以在创建表之后添加全局二级索引(GSI) 但是,更改可能需要很长时间才能生效,因为构建GSI需要表扫描 如果是boto3,请查看 例如,您可以尝试以下操作: response=client.update\u表( TableName='YourTableName', #…剪断。。。 全局二次索引更新=[

在创建DynamoDB表之后,是否可以将全局二级索引添加到现有的DynamoDB表中?我正在将Python 3.x与Boto3一起使用,在创建表之后,我没有找到任何将它们添加到表中的示例。

通常,可以在创建表之后添加全局二级索引(
GSI

但是,更改可能需要很长时间才能生效,因为构建
GSI
需要表扫描

如果是boto3,请查看

例如,您可以尝试以下操作:

response=client.update\u表(
TableName='YourTableName',
#…剪断。。。
全局二次索引更新=[
{
“创建”:{
“IndexName”:“YourGSIName”,
“KeySchema”:[
{
'AttributeName':'YourGSIFieldName',
“键类型”:“哈希”
}
],
“投影”:{
“ProjectionType”:“全部”
},
“通过供应”:{
“ReadCapacityUnits”:1,
“WriteCapacityUnits”:1
}
}
}
],
#…剪断。。。
)

这种方法似乎工作得很好,但如果不小心,可以使用相同的KeySchema创建多个全局二级索引。这将浪费资源,没有任何价值。因此,在创建新的GS索引之前,这个例程应该检查索引是否已经存在。是的,我个人建议使用CF模板(或类似模板)来避免这种情况