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

gsi

Menggunakan Data Store di AWS

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

gsi_1

Menggunakan Data Store di AWS

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

lsi

Menggunakan Data Store di AWS

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

gsi_atau_lsi

Menggunakan Data Store di AWS

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)

serialisasi

Menggunakan Data Store di AWS

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

streams

Menggunakan Data Store di AWS

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

ttl

Menggunakan Data Store di AWS

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

indeks

Menggunakan Data Store di AWS

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)

batch

Menggunakan Data Store di AWS

Ayo berlatih!

Menggunakan Data Store di AWS

Preparing Video For Download...