Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Anda dapat menggunakan AWS CLI untuk membuat tabel Amazon DynamoDB dengan satu atau lebih indeks sekunder global, menjelaskan indeks pada tabel, dan melakukan kueri menggunakan indeks.
Topik
Membuat tabel dengan Indeks Sekunder Global
Indeks sekunder global dapat dibuat pada saat Anda membuat tabel. Untuk melakukannya, gunakan parameter create-table
dan berikan spesifikasi Anda untuk satu atau beberapa indeks sekunder global. Contoh berikut membuat tabel bernama GameScores
dengan indeks sekunder global yang disebut GameTitleIndex
. Tabel dasar memiliki kunci partisi UserId
dan semacam kunciGameTitle
, memungkinkan Anda untuk menemukan skor terbaik pengguna individu untuk permainan tertentu secara efisien, sedangkan GSI memiliki kunci partisi GameTitle
dan semacam kunciTopScore
, memungkinkan Anda untuk dengan cepat menemukan skor tertinggi keseluruhan untuk permainan tertentu.
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 } } ]"
Anda harus menunggu hingga DynamoDB membuat tabel dan menetapkan status tabel menjadi ACTIVE
. Setelah itu, Anda bisa mulai memasukkan item data ke dalam tabel. Anda dapat menggunakan describe-table untuk menentukan status pembuatan tabel.
Menambahkan Indeks Sekunder Global ke tabel yang sudah ada
Indeks sekunder global juga dapat ditambahkan atau diubah setelah pembuatan tabel. Untuk melakukannya, gunakan parameter update-table
dan berikan spesifikasi Anda untuk satu atau beberapa indeks sekunder global. Contoh berikut menggunakan skema yang sama seperti contoh sebelumnya, tetapi mengasumsikan bahwa tabel telah dibuat dan kita menambahkan nanti. 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\"] } } } ]"
Mendeskripsikan tabel dengan Indeks Sekunder Global
Untuk mendapatkan informasi tentang Indeks Sekunder Global pada sebuah tabel, gunakan parameter describe-table
. Untuk setiap indeks, Anda dapat mengakses namanya, skema kunci, dan atribut yang diproyeksikan.
aws dynamodb describe-table --table-name GameScores
Mengkueri Indeks Sekunder Global
Anda dapat menggunakan operasi query
pada indeks sekunder global dengan cara yang hampir sama seperti Anda query
tabel. Anda harus menentukan nama indeks, kriteria kueri untuk kunci urutan indeks, dan atribut yang ingin Anda kembalikan. Dalam contoh ini, indeks adalah GameTitleIndex
dan kunci urutan indeks adalah GameTitle
.
Satu-satunya atribut yang dikembalikan adalah atribut yang telah diproyeksikan ke dalam indeks. Anda dapat memodifikasi kueri ini untuk memilih atribut non-kunci juga, tetapi ini akan memerlukan aktivitas pengambilan tabel yang relatif mahal. Untuk informasi selengkapnya tentang pengambilan tabel, lihat Proyeksi atribut.
aws dynamodb query --table-name GameScores\ --index-name GameTitleIndex \ --key-condition-expression "GameTitle = :v_game" \ --expression-attribute-values '{":v_game":{"S":"Alien Adventure"} }'