Topik ini menjelaskan cara membuat, memulihkan, mengubah, dan menghapus snapshot tabel MaxCompute.
Pendahuluan
Snapshot tabel menyimpan data dari tabel dasar pada titik waktu tertentu.
Snapshot tabel dapat dikonfigurasi dengan waktu kedaluwarsa yang independen. Sistem secara otomatis menghapus snapshot tabel ketika waktu yang ditentukan telah berlalu setelah pembuatan snapshot.
Snapshot tabel bersifat read-only. Anda dapat membuat (memulihkan) tabel dari snapshot tabel untuk memperbaiki atau memulihkan data tabel.
Dua keuntungan utama menggunakan snapshot tabel:
Periode cadangan data yang lebih lama untuk retensi dan pemulihan data.
Periode retensi maksimum snapshot tabel melebihi periode retensi maksimum yang didukung oleh fitur cadangan lokal saat ini. Anda dapat menyimpan data dari titik waktu tertentu sesuai kebutuhan. Jika aturan bisnis baru atau pembaruan data menyebabkan masalah, Anda dapat memulihkan data ke versi sebelumnya yang benar berdasarkan snapshot tabel untuk menghindari dampak lebih lanjut pada bisnis Anda.
Biaya penyimpanan diminimalkan.
Hanya byte yang berbeda antara snapshot dan tabel dasarnya yang disimpan. Oleh karena itu, ruang penyimpanan yang digunakan oleh snapshot tabel biasanya lebih kecil daripada salinan lengkap tabel.
Penerapan
Jenis tabel yang didukung
Tabel Standard, termasuk tabel partisi, non-partisi, dan Tabel terkluster
Membuat snapshot dari tabel PK/Append Delta
Jenis tabel yang tidak didukung
Transaction Table
View
Materialized views (Delta Live MV)
External Table
Batasan Wilayah dan penyewa: Snapshot tabel harus berada di Wilayah yang sama dan dalam penyewa yang sama dengan tabel dasarnya.
Snapshot tabel bersifat read-only. Anda tidak dapat langsung memperbarui data dalam snapshot. Untuk mengubah data, Anda harus membuat tabel standard dari snapshot tersebut lalu memperbarui tabel baru tersebut. Namun, Anda dapat memperbarui metadata snapshot, seperti deskripsi, tanggal kedaluwarsa, dan kebijakan izin akses.
Batasan siklus hidup: Jika Anda membuat snapshot untuk tabel partisi yang telah dikonfigurasi dengan lifecycle, aturan siklus hidup tersebut tidak berlaku untuk data dalam snapshot.
Latensi penulisan streaming: Data yang ditulis menggunakan Streaming Tunnel dan di-flush dengan memanggil
streamRecordPack.flushdalam kit pengembangan perangkat lunak (SDK) Tunnel memiliki latensi 5 hingga 10 menit sebelum dapat dimasukkan ke dalam snapshot.Snapshot tabel yang dihapus tidak dapat dipulihkan.
Batasan Pekerjaan
Jumlah maksimum snapshot per tabel: 1.000.
Jumlah maksimum pekerjaan CREATE SNAPSHOT bersamaan per Proyek: 100.
Jumlah total maksimum pekerjaan CREATE SNAPSHOT per Proyek per hari: 50.000.
Jumlah maksimum pekerjaan CREATE SNAPSHOT per tabel per hari: 50.
Buat snapshot tabel
Sintaksis
Saat membuat tabel, Anda dapat mengonfigurasi waktu kedaluwarsa data. Saat ini, jika tidak diatur, snapshot tabel akan mewarisi masa hidup data yang dikonfigurasikan untuk proyek (ini akan diubah di masa mendatang sehingga waktu kedaluwarsa snapshot tabel sepenuhnya independen).
CREATE [OR REPLACE] SNAPSHOT TABLE [IF NOT EXISTS] <table_snapshot_name>
CLONE <source_table_name>
[OPTIONS(<snapshot_option_list>)]Parameter
Parameter | Deskripsi |
table_snapshot_name | Nama snapshot tabel yang akan dibuat. |
source_table_name | Tabel tempat snapshot akan dibuat. |
snapshot_option_list |
|
Contoh
CREATE SNAPSHOT TABLE <table_snapshot_name>
CLONE <source_table_name>
OPTIONS(
expiration_timestamp=TIMESTAMP "2025-07-01 00:00:00",
description="Snapshot tabel yang kedaluwarsa dalam xxx hari"
);Pemulihan dari snapshot tabel
Anda dapat memulihkan ke tabel sumber atau membuat tabel baru.
CREATE [ OR REPLACE ] TABLE [ IF NOT EXISTS ] <source_table_name>
CLONE <table_snapshot_name>Modifikasi snapshot tabel
Anda hanya dapat memodifikasi OPTIONS.
ALTER SNAPSHOT TABLE [IF EXISTS] <snapshot_table_name>
SET OPTIONS(<snapshot_option_list>)Hapus snapshot tabel
DROP SNAPSHOT TABLE [IF EXISTS] <table_snapshot_name>Izin
Operasi snapshot tabel mirip dengan operasi tabel. Manajemen izin mencakup pembuatan snapshot tabel, pemulihan dari snapshot tabel, pencatatan snapshot tabel, mendapatkan deskripsi snapshot tabel, memperbarui metadata snapshot tabel, menghapus snapshot tabel, dan menanyakan data dari snapshot tabel.
Penagihan
Biaya penyimpanan berlaku untuk snapshot tabel. Namun, MaxCompute hanya menagih untuk data dalam snapshot tabel yang tidak termasuk dalam tabel lain. Detailnya adalah sebagai berikut:
Saat Anda membuat snapshot tabel, tidak ada biaya penyimpanan yang dikenakan untuk snapshot tabel.
Jika Anda menambahkan data ke tabel dasar setelah membuat snapshot tabel, tidak ada biaya penyimpanan yang dikenakan untuk snapshot tabel akibat data baru ini.
Jika Anda memodifikasi atau menghapus data di tabel dasar setelah membuat snapshot tabel, tidak ada biaya penyimpanan yang dikenakan untuk data yang diperbarui atau dihapus di tabel dasar. Namun, karena data ini masih disimpan dalam tabel snapshot dan tidak akan di-purge, biaya penyimpanan akan dikenakan untuk snapshot tabel.
CatatanData yang dimodifikasi atau dihapus di tabel dasar masih dapat dipulihkan melalui cadangan lokal dalam periode cadangan lokal, dan tidak ada biaya cadangan lokal yang dikenakan.
Jika beberapa snapshot tabel berisi data yang diubah atau dihapus, Anda hanya dikenai biaya penyimpanan berdasarkan snapshot terbesar.