使用aws cli将全局二级索引添加到DynamoDB中的现有表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用aws cli将全局二级索引添加到DynamoDB中的现有表相关的知识,希望对你有一定的参考价值。

我无法找到如何使用aws cli将全局二级索引添加到DynamoDB中的现有表的示例。 这就是我所知道的docs

任何指针将不胜感激

答案

这是update-table document

例:

aws dynamodb update-table --table-name <tableName> --global-secondary-index-updates file://gsi-command.json

使用更新,创建或删除操作创建JSON文件: -

从下面的示例JSON中保留其中一个操作(更新,创建或删除),并相应地更新属性定义

[
  {
    "Update": {
      "IndexName": "string",
      "ProvisionedThroughput": {
        "ReadCapacityUnits": long,
        "WriteCapacityUnits": long
      }
    },
    "Create": {
      "IndexName": "string",
      "KeySchema": [
        {
          "AttributeName": "string",
          "KeyType": "HASH"|"RANGE"
        }
        ...
      ],
      "Projection": {
        "ProjectionType": "ALL"|"KEYS_ONLY"|"INCLUDE",
        "NonKeyAttributes": ["string", ...]
      },
      "ProvisionedThroughput": {
        "ReadCapacityUnits": long,
        "WriteCapacityUnits": long
      }
    },
    "Delete": {
      "IndexName": "string"
    }
  }
  ...
]
另一答案

更新表文档的选项部分中有一小部分提到了所需的options specific to creating a new global secondary index,它要求属性定义包含新索引的关键元素。只需将该选项添加到@notionquest提供的示例的末尾即可。

aws dynamodb update-table --table-name <tableName> --global-secondary-index-updates file://gsi-command.json --attribute-definitions AttributeName=<attributeName>, AttributeType=<attributeType>
另一答案

在现有表中创建全局二级索引。使用此CLI命令和JSON文件进行更新。

aws dynamodb update-table --table-name sample--cli-input-json file://gsi-update.json --endpoint-url http://localhost:8000

以JSON格式保存参数。

{  
   "AttributeDefinitions":[  
      {  
         "AttributeName":"String",
         "AttributeType":"S"
      },
      {  
         "AttributeName":"String",
         "AttributeType":"S"
      }
   ],
   "GlobalSecondaryIndexUpdates":[  
      {  
         "Create":{  
            "IndexName":"index-name",
            "KeySchema":[  
               {  
                  "AttributeName":"String",
                  "KeyType":"HASH"
               },
               {  
                  "AttributeName":"String",
                  "KeyType":"RANGE"
               }
            ],
            "Projection":{  
               "ProjectionType":"ALL"
            },
            "ProvisionedThroughput":{  
               "ReadCapacityUnits":5,
               "WriteCapacityUnits":5
            }
         }
      }
   ]
}

以上是关于使用aws cli将全局二级索引添加到DynamoDB中的现有表的主要内容,如果未能解决你的问题,请参考以下文章

在 Dynamo DB 中对本地二级索引进行索引

在Dynamo DB中索引本地二级索引

使用 DynamoMapper 和类 Annotation 创建具有全局二级索引的表

如何在 AWS CDK 2.0 中编写稀疏的全局二级索引行?

AWS Amplify 在创建 DynamoDB 表后创建全局二级索引

DynamoDB 中本地索引和全局索引的区别