Trabajo con escenarios avanzados de índice secundario global de DynamoDB mediante AWS Command Line Interface v2 - Amazon DynamoDB

Trabajo con escenarios avanzados de índice secundario global de DynamoDB mediante AWS Command Line Interface v2

En el siguiente ejemplo de código se muestra cómo trabajar con configuraciones avanzadas de índice secundario global.

  • Cree una tabla con varios GSI.

  • Cree una tabla con capacidad bajo demanda y GSI.

  • Coloque elementos en una tabla con múltiples GSI.

  • Consultar múltiples GSI con diferentes condiciones.

Bash
AWS CLI con Bash script

Cree una tabla con varios GSI.

# Create a table with multiple GSIs aws dynamodb create-table \ --table-name MusicLibrary \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ AttributeName=AlbumTitle,AttributeType=S \ AttributeName=Genre,AttributeType=S \ AttributeName=Year,AttributeType=N \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --billing-mode PAY_PER_REQUEST \ --global-secondary-indexes \ "[ { \"IndexName\": \"AlbumIndex\", \"KeySchema\": [{\"AttributeName\":\"AlbumTitle\",\"KeyType\":\"HASH\"}], \"Projection\": {\"ProjectionType\":\"ALL\"} }, { \"IndexName\": \"GenreYearIndex\", \"KeySchema\": [ {\"AttributeName\":\"Genre\",\"KeyType\":\"HASH\"}, {\"AttributeName\":\"Year\",\"KeyType\":\"RANGE\"} ], \"Projection\": {\"ProjectionType\":\"INCLUDE\",\"NonKeyAttributes\":[\"Artist\",\"SongTitle\"]} } ]"

Cree una tabla con capacidad bajo demanda y GSI.

# Create a table with on-demand capacity and GSI aws dynamodb create-table \ --table-name MusicOnDemand \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ AttributeName=Genre,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --billing-mode PAY_PER_REQUEST \ --global-secondary-indexes \ "[ { \"IndexName\": \"GenreIndex\", \"KeySchema\": [{\"AttributeName\":\"Genre\",\"KeyType\":\"HASH\"}], \"Projection\": {\"ProjectionType\":\"ALL\"} } ]"

Coloque elementos en una tabla con múltiples GSI.

# Add items to MusicLibrary table aws dynamodb put-item \ --table-name MusicLibrary \ --item '{ "Artist": {"S": "The Beatles"}, "SongTitle": {"S": "Hey Jude"}, "AlbumTitle": {"S": "Past Masters"}, "Genre": {"S": "Rock"}, "Year": {"N": "1968"} }' aws dynamodb put-item \ --table-name MusicLibrary \ --item '{ "Artist": {"S": "Miles Davis"}, "SongTitle": {"S": "So What"}, "AlbumTitle": {"S": "Kind of Blue"}, "Genre": {"S": "Jazz"}, "Year": {"N": "1959"} }'

Consulte elementos de una tabla con múltiples GSI.

# Query the AlbumIndex GSI echo "Querying AlbumIndex GSI:" aws dynamodb query \ --table-name MusicLibrary \ --index-name AlbumIndex \ --key-condition-expression "AlbumTitle = :album" \ --expression-attribute-values '{":album":{"S":"Kind of Blue"}}' # Query the GenreYearIndex GSI with a range condition echo "Querying GenreYearIndex GSI with range condition:" aws dynamodb query \ --table-name MusicLibrary \ --index-name GenreYearIndex \ --key-condition-expression "Genre = :genre AND #yr > :year" \ --expression-attribute-names '{"#yr": "Year"}' \ --expression-attribute-values '{":genre":{"S":"Rock"},":year":{"N":"1965"}}'
  • Para obtener información sobre la API, consulte los siguientes temas en la Referencia de comandos de AWS CLI.

Para obtener una lista completa de las guías para desarrolladores de AWS SDK y ejemplos de código, consulte Uso de DynamoDB con un SDK de AWS. En este tema también se incluye información sobre cómo comenzar a utilizar el SDK y detalles sobre sus versiones anteriores.