Retensi data dengan perjalanan waktu dan fail-safe
Dokumen ini menjelaskan periode retensi data perjalanan waktu dan fail-safe untuk set data. Selama periode perjalanan waktu dan fail-safe, data yang telah diubah atau dihapus dalam tabel mana pun dalam set data akan terus disimpan jika Anda perlu memulihkannya.
Perjalanan waktu
Anda dapat mengakses data dari titik mana pun dalam periode perjalanan waktu, yang mencakup tujuh hari terakhir secara default. Perjalanan waktu memungkinkan Anda membuat kueri data yang diperbarui atau dihapus, memulihkan tabel atau set data yang dihapus, atau memulihkan tabel yang telah habis masa berlakunya.
Mengonfigurasi periode perjalanan waktu
Anda dapat menetapkan durasi periode perjalanan waktu, dari minimum dua hari hingga maksimum tujuh hari. Tujuh hari adalah defaultnya. Anda menetapkan periode perjalanan waktu di level set data, yang kemudian berlaku untuk semua tabel dalam set data. Default tingkat project juga dapat dikonfigurasi.
Anda dapat mengonfigurasi periode perjalanan waktu agar lebih lama jika diperlukan waktu yang lebih lama untuk memulihkan data yang telah diperbarui atau dihapus, dan menjadi lebih singkat saat periode tersebut tidak diperlukan. Dengan periode perjalanan waktu yang lebih singkat, Anda dapat menghemat biaya penyimpanan saat menggunakan model penagihan penyimpanan fisik. Penghematan ini tidak berlaku saat menggunakan model penagihan penyimpanan logis.
Untuk mengetahui informasi selengkapnya tentang pengaruh model penagihan penyimpanan terhadap biaya, lihat Penagihan.
Pengaruh periode perjalanan waktu terhadap pemulihan tabel dan set data
Tabel atau set data yang dihapus menggunakan durasi periode perjalanan waktu yang berlaku pada saat penghapusan.
Misalnya, jika Anda memiliki periode perjalanan waktu selama dua hari, lalu meningkatkan durasinya menjadi tujuh hari, tabel yang dihapus sebelum perubahan tersebut tetap hanya dapat dipulihkan selama dua hari. Demikian pula, jika Anda memiliki durasi periode perjalanan waktu lima hari dan Anda mengurangi durasi tersebut menjadi tiga hari, tabel apa pun yang dihapus sebelum perubahan tersebut akan tetap dapat dipulihkan selama lima hari.
Karena periode perjalanan waktu ditetapkan di tingkat set data, Anda tidak dapat mengubah periode perjalanan waktu set data yang telah dihapus hingga set data tersebut dibatalkan penghapusannya.
Jika Anda mengurangi durasi periode perjalanan waktu, menghapus tabel, dan kemudian menyadari bahwa Anda memerlukan periode pemulihan yang lebih panjang untuk data tersebut, Anda dapat membuat snapshot tabel dari titik waktu sebelum penghapusan tabel. Anda harus melakukannya saat tabel yang dihapus masih dapat dipulihkan. Untuk mengetahui informasi selengkapnya, lihat Membuat snapshot tabel menggunakan perjalanan waktu.
Menentukan periode perjalanan waktu
Anda dapat menggunakan konsol Google Cloud, alat command line bq, atau BigQuery API untuk menentukan periode perjalanan waktu bagi set data.
Untuk mendapatkan petunjuk tentang cara menentukan periode perjalanan waktu untuk set data baru, lihat Membuat set data.
Untuk mendapatkan petunjuk tentang cara memperbarui periode perjalanan waktu untuk set data yang ada, lihat Memperbarui periode perjalanan waktu.
Jika stempel waktu menentukan waktu di luar periode perjalanan waktu, atau dari sebelum tabel dibuat, kueri akan gagal dan menampilkan error seperti berikut:
TableID
was created at time which is before its allowed time travel intervaltimestamp
. Creation time:timestamp
Perjalanan waktu dan akses tingkat baris
Jika tabel memiliki, atau telah memiliki, kebijakan akses tingkat baris, hanya administrator tabel yang dapat mengakses data historis untuk tabel tersebut.
Izin Identity and Access Management (IAM) berikut diperlukan:
Izin | Resource |
---|---|
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions
|
Tabel yang data historisnya sedang diakses |
Peran BigQuery berikut memberikan izin yang diperlukan:
Peran | Resource |
---|---|
roles/bigquery.admin
|
Tabel yang data historisnya sedang diakses |
Izin bigquery.rowAccessPolicies.overrideTimeTravelRestrictions
tidak dapat ditambahkan ke peran khusus.
Jalankan perintah berikut untuk mendapatkan waktu epoch Unix yang setara:
date -d '2023-08-04 16:00:34.456789Z' +%s000
Ganti
1691164834000
waktu epoch UNIX yang diterima dari perintah sebelumnya di alat command line bq. Jalankan perintah berikut untuk memulihkan salinan tabeldeletedTableID
yang dihapus di tabelrestoredTable
lain, dalam set datamyDatasetID
yang sama:bq cp myProjectID:myDatasetID.deletedTableID@1691164834000 myProjectID:myDatasetID.restoredTable
Fail-safe
BigQuery menyediakan periode fail-safe. Selama periode fail-safe, data yang dihapus akan otomatis disimpan selama tujuh hari lagi setelah periode perjalanan waktu usai, sehingga data tersedia untuk pemulihan darurat. Data dapat dipulihkan pada level tabel. Data dipulihkan untuk tabel dari titik waktu yang diwakili oleh stempel waktu saat tabel itu dihapus. Periode fail-safe tidak dapat dikonfigurasi.
Anda tidak dapat membuat kueri atau memulihkan data secara langsung di penyimpanan fail-safe. Untuk memulihkan data dari penyimpanan fail-safe, hubungi Cloud Customer Care.
Penagihan
Jika Anda menetapkan model penagihan penyimpanan ke model penagihan byte fisik, Anda akan ditagih secara terpisah untuk byte yang digunakan untuk penyimpanan perjalanan waktu dan fail-safe. Penyimpanan perjalanan waktu dan fail-safe dikenai biaya sesuai dengan tarif penyimpanan fisik aktif. Anda dapat mengonfigurasi periode perjalanan waktu untuk menyeimbangkan biaya penyimpanan dengan kebutuhan retensi data Anda.
Jika Anda menetapkan model penagihan penyimpanan ke model penagihan byte logis, total biaya penyimpanan untuk penyimpanan perjalanan waktu dan fail-safe akan disertakan dalam tarif dasar yang dikenakan kepada Anda.
Tabel berikut menunjukkan perbandingan biaya penyimpanan fisik dan logis:
Model penagihan | Apa yang Anda bayar? |
---|---|
Penyimpanan fisik (terkompresi) |
|
Penyimpanan logis (tidak dikompresi) (setelan default) |
|
Jika menggunakan penyimpanan fisik, Anda dapat melihat byte yang digunakan oleh perjalanan waktu dan fail-safe dengan melihat kolom TIME_TRAVEL_PHYSICAL_BYTES
dan FAIL_SAFE_PHYSICAL_BYTES
di tabel virtual TABLE_STORAGE
dan TABLE_STORAGE_BY_ORGANIZATION
. Untuk contoh cara menggunakan salah satu tampilan ini guna memperkirakan biaya, lihat Memperkirakan penagihan penyimpanan.
Biaya penyimpanan berlaku untuk data time travel dan fail-safe, tetapi Anda hanya ditagih jika biaya penyimpanan data tidak berlaku di tempat lain di BigQuery. Detail berikut berlaku:
- Saat tabel dibuat, tidak ada biaya penyimpanan perjalanan waktu atau fail-safe.
- Jika data diubah atau dihapus, Anda akan dikenai biaya untuk penyimpanan data yang diubah atau dihapus yang disimpan oleh perjalanan waktu selama periode perjalanan waktu dan periode fail-safe. Hal ini mirip dengan harga penyimpanan untuk snapshot dan clone tabel.
Contoh retensi data
Tabel berikut menunjukkan cara data yang dihapus atau diubah berpindah di antara periode retensi penyimpanan. Contoh ini menunjukkan situasi saat total penyimpanan aktif adalah 200 GiB dan 50 GiB dihapus dengan periode perjalanan waktu tujuh hari:
Hari ke-0 | Hari ke-1 | Hari ke-2 | Hari ke-3 | Hari 4 | Hari 5 | Hari 6 | Hari ke-7 | Hari 8 | Hari 9 | Hari ke-10 | Hari ke-11 | Hari ke-12 | Hari ke-13 | Hari ke-14 | Hari ke-15 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Penyimpanan aktif | 200 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 |
Penyimpanan perjalanan waktu | 50 | 50 | 50 | 50 | 50 | 50 | 50 | |||||||||
Penyimpanan fail-safe | 50 | 50 | 50 | 50 | 50 | 50 | 50 |
Menghapus data dari penyimpanan fisik jangka panjang juga berfungsi dengan cara yang sama.
Batasan
- Perjalanan waktu hanya memberikan akses ke data historis selama durasi periode perjalanan waktu. Agar dapat menyimpan data tabel untuk tujuan non-darurat selama durasi yang lebih lama dari periode perjalanan waktu, gunakan snapshot tabel.
- Jika tabel memiliki, atau sebelumnya memiliki, kebijakan akses tingkat baris, perjalanan waktu hanya dapat digunakan oleh administrator tabel. Untuk informasi selengkapnya, lihat Perjalanan waktu dan akses tingkat baris.
- Perjalanan waktu tidak memulihkan metadata tabel.
- Perjalanan waktu tidak didukung di jenis tabel berikut:
- Tabel eksternal
- Tabel hasil kueri sementara yang di-cache
- Tabel sesi sementara
- Tabel multi-pernyataan sementara
- Tabel yang tercantum di bagian set data eksternal.
Langkah selanjutnya
- Pelajari cara membuat kueri dan memulihkan data perjalanan waktu.
- Pelajari snapshot tabel lebih lanjut.