Hanya simpan nilai terbaru

Halaman ini menjelaskan strategi yang memungkinkan Anda hanya menyimpan nilai terbaru di kolom pada tabel Bigtable.

Semua library klien Cloud Bigtable memungkinkan Anda untuk menggunakan filter untuk membaca nilai terbaru, atau sel, pada baris dan kolom tertentu. Namun, dalam beberapa kasus, Anda mungkin tidak perlu membaca versi data yang lebih lama. Anda dapat menggunakan kebijakan pembersihan sampah memori berbasis versi yang menentukan untuk hanya menyimpan satu sel dalam satu kolom. Namun, karena pembersihan sampah memori dapat memerlukan waktu hingga satu minggu, dalam praktiknya tabel Anda mungkin berisi data lama yang tidak pernah Anda rencanakan untuk dibaca.

Untuk mempertahankan nilai terbaru saja, sebaiknya gunakan pendekatan delete-then-write untuk membatasi kolom dalam tabel Anda ke satu sel saja.

Hapus, lalu tulis

Untuk mempertahankan hanya satu nilai dalam satu kolom, Anda dapat mengirim permintaan yang menghapus kolom, lalu membuatnya kembali dengan nilai dan stempel waktu baru dalam satu tindakan atomik.

Contoh kode semu Java berikut menunjukkan cara kerjanya. Urutannya penting: penghapusan harus terjadi sebelum penulisan.

RowMutation mutation = RowMutation.create(TABLE, ROW_KEY)
                .deleteCells(COLUMN_FAMILY, COLUMN_QUALIFIER, Range.TimestampRange.unbounded())
                .setCell((COLUMN_FAMILY, COLUMN_QUALIFIER, TIMESTAMP, VALUE);
dataClient.mutateRow(mutation);

Berikan hal berikut:

  • TABLE: ID tabel
  • COLUMN_FAMILY: grup kolom yang berisi kolom
  • COLUMN_QUALIFIER: penentu kolom yang akan dihapus dan dibuat ulang
  • TIMESTAMP: stempel waktu baru
  • VALUE: nilai baru untuk kolom

Stempel waktu nol

Sebelumnya, kami merekomendasikan strategi untuk selalu mengirim operasi tulis dengan stempel waktu 0. Anda masih dapat menggunakan pendekatan tersebut, tetapi karena stempel waktu yang valid berguna, kami merekomendasikan pendekatan hapus-lalu-tulis.

Jika Anda menetapkan stempel waktu untuk sel ke 0 atau nilai apa pun yang lebih kecil dari waktu saat ini dalam milidetik, dan juga menggunakan kebijakan pembersihan sampah memori berbasis usia, sel Anda mungkin akan dihapus saat pembersihan sampah memori dilakukan berikutnya.

Langkah selanjutnya