選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 在 DynamoDB 中使用全域次要索引 AWS CLI

焦點模式
使用 在 DynamoDB 中使用全域次要索引 AWS CLI - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

您可以使用 AWS CLI 建立具有一或多個全域次要索引的 Amazon DynamoDB 資料表、描述資料表上的索引,並使用索引執行查詢。

建立具有全域次要索引的資料表

您可在建立資料表的同時建立全域次要索引。若要執行這項操作,請使用 create-table 參數,並提供一或多個全域次要索引的規格。以下範例會建立名為 GameScores 的資料表,以及名為 GameTitleIndex 的全域次要索引。基底資料表具有 的分割區索引鍵UserId和 的排序索引鍵GameTitle,可讓您有效率地尋找個別使用者在特定遊戲的最佳分數,而 GSI具有 的分割區索引鍵GameTitle和 的排序索引鍵TopScore,可讓您快速尋找特定遊戲的整體最高分數。

aws dynamodb create-table \ --table-name GameScores \ --attribute-definitions AttributeName=UserId,AttributeType=S \ AttributeName=GameTitle,AttributeType=S \ AttributeName=TopScore,AttributeType=N \ --key-schema AttributeName=UserId,KeyType=HASH \ AttributeName=GameTitle,KeyType=RANGE \ --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5 \ --global-secondary-indexes \ "[ { \"IndexName\": \"GameTitleIndex\", \"KeySchema\": [{\"AttributeName\":\"GameTitle\",\"KeyType\":\"HASH\"}, {\"AttributeName\":\"TopScore\",\"KeyType\":\"RANGE\"}], \"Projection\":{ \"ProjectionType\":\"INCLUDE\", \"NonKeyAttributes\":[\"UserId\"] }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": 10, \"WriteCapacityUnits\": 5 } } ]"

您必須等到 DynamoDB 建立資料表,並將資料表狀態設定為 ACTIVE。之後,您可以開始將資料項目放入資料表中。您可以使用 describe-table 來判斷資料表建立的狀態。

將全域次要索引新增至現有資料表

全域次要索引也可以在建立資料表之後新增或修改。若要執行這項操作,請使用 update-table 參數,並提供一或多個全域次要索引的規格。下列範例使用與上一個範例相同的結構描述,但假設資料表已建立,而我們GSI稍後要新增 。

aws dynamodb update-table \ --table-name GameScores \ --attribute-definitions AttributeName=TopScore,AttributeType=N \ --global-secondary-index-updates \ "[ { \"Create\": { \"IndexName\": \"GameTitleIndex\", \"KeySchema\": [{\"AttributeName\":\"GameTitle\",\"KeyType\":\"HASH\"}, {\"AttributeName\":\"TopScore\",\"KeyType\":\"RANGE\"}], \"Projection\":{ \"ProjectionType\":\"INCLUDE\", \"NonKeyAttributes\":[\"UserId\"] } } } ]"

使用全域次要索引描述資料表

若要取得資料表上全域次要索引的資訊,請使用 describe-table 參數。對於每個索引,您可以存取其名稱、索引鍵結構描述和投影屬性。

aws dynamodb describe-table --table-name GameScores

查詢全域次要索引

您可以依照與 query 資料表大致相同的方式在全域次要索引上使用 query 操作。您必須指定索引名稱、索引排序索引鍵的查詢準則,以及您要傳回的屬性。在本例中,索引是 GameTitleIndex,而索引排序索引鍵為 GameTitle

傳回的唯一屬性是已投影到索引的屬性。您也可以修改此查詢來選擇非索引鍵屬性,但這需要相對昂貴的資料表擷取活動。如需資料表擷取的詳細資訊,請參閱 屬性投影

aws dynamodb query --table-name GameScores\ --index-name GameTitleIndex \ --key-condition-expression "GameTitle = :v_game" \ --expression-attribute-values '{":v_game":{"S":"Alien Adventure"} }'
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。