Indeks, stream, dan optimisasi DynamoDB
Menggunakan Data Store di AWS
Dunieski Otano
AWS Solutions Architect
Query yang tidak bisa dilakukan
Tabel: userId (partition key), orderDate (sort key)
Kebutuhan: Cari pesanan berdasarkan alamat email
Masalah: Tidak bisa query atribut non-key
Solusi: Global Secondary Index
Indeks memungkinkan banyak pola akses
Global Secondary Index (GSI)
Partition key berbeda
dari tabel dasar
Dapat ditambahkan kapan saja setelah pembuatan tabel
Hanya baca dengan konsistensi eventual
Use case: Query pada atribut non-primary key
Local Secondary Index (LSI)
Partition key sama
, sort key berbeda
Harus dibuat saat pembuatan tabel
Mendukung baca sangat konsisten
Use case: Urutan sortir alternatif dalam partisi
GSI vs LSI - kapan digunakan
GSI
: Partition key berbeda, bisa ditambah kapan saja, konsistensi eventual
LSI
: Partition key sama, buat saat pembuatan tabel, konsistensi kuat
Paling umum: GSI untuk pola akses fleksibel
Serialisasi data untuk DynamoDB
Masalah
: DynamoDB tidak menyimpan objek Python
Solusi
: Serialisasi ke JSON atau biner
JSON
: Data sederhana (dict, list) - json.dumps()
Base64
: Data biner (gambar, token)
DynamoDB Streams untuk change data capture
Streams
: Log berurutan semua perubahan tabel
Menangkap: Insert, update, delete
Use case: Audit log, replikasi, trigger
Proses dengan Lambda untuk reaksi real-time
Time-to-Live untuk kedaluwarsa otomatis
TTL
: Penghapusan item otomatis setelah kedaluwarsa
Isi stempel waktu Unix di atribut TTL
Cocok untuk: Sesi, token sementara, cache
Tidak ada biaya untuk penghapusan TTL
Tipe proyeksi indeks dan kinerja query
KEYS_ONLY
: Hanya atribut key, ukuran paling kecil
INCLUDE
: Key + atribut tertentu
ALL
: Semua atribut, terbesar, tanpa fetch tambahan
Pertukaran: Biaya penyimpanan vs kinerja query
Operasi batch dan transaksi
BatchGetItem
: Baca hingga 100 item, maks 16MB
BatchWriteItem
: Tulis hingga 25 item
TransactWriteItems
: ACID untuk hingga 100 item
Gunakan untuk: Efisiensi (batch) atau konsistensi (transaksi)
Ayo berlatih!
Menggunakan Data Store di AWS
Preparing Video For Download...