DynamoDB Query GSI dengan AWS CLI

Mengkueri sebuah global secondary index adalah aws dynamodb query biasa ditambah satu flag: --index-name. Key condition kemudian menargetkan key index, bukan key tabel — di sini AlbumTitle-index memungkinkan kita mengambil lagu berdasarkan album, sebuah pola akses yang tidak bisa dilayani base table (Artist + SongTitle) tanpa scan.

Code

aws dynamodb query \
  --table-name 'Music' \
  --index-name 'AlbumTitle-index' \
  --key-condition-expression '#hashKey = :hashKeyValue' \
  --expression-attribute-names '{"#hashKey":"AlbumTitle"}' \
  --expression-attribute-values '{":hashKeyValue":{"S":"Danzon"}}'

Output-nya adalah item yang cocok dalam DynamoDB JSON:

{
    "Items": [
        {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
    ],
    "Count": 2,
    "ScannedCount": 2
}

Penjelasan

  • --index-name — menyebut GSI yang dikueri (--table-name tetap wajib). --key-condition-expression menggunakan partition key index (dan sort key opsional) — AlbumTitle di sini — dengan operator yang sama seperti kueri tabel.
  • Hanya eventual consistency — GSI mereplikasi dari base table secara asinkron. Menambahkan --consistent-read ke kueri GSI tidak meningkatkannya; ia gagal dengan ValidationException. (Local secondary index mendukung strong consistency.)
  • Anda hanya mendapat atribut yang diproyeksikan — kueri GSI mengembalikan apa yang diproyeksikan index (ALL, KEYS_ONLY, atau atribut yang tercantum INCLUDE) dan tidak bisa mengambil sisanya dari base table.
  • Key tidak unik di GSI — banyak item bisa berbagi key index yang sama, dan item yang tidak memiliki atribut key index tidak akan muncul (itulah pola sparse-index).
  • Paginasi otomatis — CLI mengikuti token paginasi service di balik layar dan mencetak hasil gabungan. Gunakan --max-items untuk membatasi output (sebuah NextToken muncul; lanjutkan dengan --starting-token), atau --no-paginate untuk satu panggilan service.

Lakukan secara visual

DynamoDB Expression Builder membangun key condition + map name/value untuk kueri index dan memberi Anda perintah CLI yang siap dijalankan.

Untuk menelusuri index sebuah tabel dan menjalankan kueri GSI dari sebuah form — grid berpaginasi, copy-as-CLI — unduh DynoTable.

Contoh terkait

References

Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.

Bangun request ini secara visual

Susun operasi ini di DynamoDB Query Builder gratis — key condition, filter, index, Limit, urutan sortir, dan loop paginasi — lalu salin kembali sebagai program SDK v3, CLI, atau boto3 yang bisa dijalankan.

Buka DynamoDB Query Builder

Bekerja dengan DynamoDB tanpa Console

DynoTable adalah klien desktop yang cepat untuk DynamoDB — jelajahi tabel, jalankan query gaya SQL, dan edit Item secara lokal.