Tabel dan tampilan
Bigtable menyimpan data Anda dalam tabel dan memungkinkan Anda membuat tampilan khusus—tampilan logis, tampilan terwujud berkelanjutan, dan tampilan resmi—dari tabel Anda. Bergantung pada kasus penggunaan Anda, tampilan ini membantu Anda menyederhanakan pola kueri SQL, melakukan pra-penghitungan agregasi, dan menerapkan kontrol akses yang terperinci.
Tabel
Tabel Bigtable adalah key-value map yang diurutkan yang menyimpan data dalam baris dan kolom. Setiap baris diindeks oleh row key tunggal yang unik. Kolom yang terkait satu sama lain biasanya dikelompokkan ke dalam grup kolom.
Bigtable memiliki model data yang fleksibel, dan tabelnya sparse. Artinya, jika kolom tidak digunakan dalam baris, tidak ada data yang disimpan untuk kolom tersebut. Anda tidak perlu menyimpan nilai NULL untuk kolom yang tidak digunakan seperti yang Anda lakukan dengan database relasional. Dalam tabel Bigtable, baris tertentu mungkin memiliki satu kolom dan baris di sebelahnya memiliki 100 kolom.
Dalam baris, kolom dapat berisi beberapa sel, yang masing-masing diidentifikasi oleh empat tuple (row key, grup kolom, penentu kolom, stempel waktu). Menyimpan beberapa sel dalam kolom memberikan catatan tentang bagaimana data yang disimpan untuk baris dan kolom tersebut telah berubah dari waktu ke waktu.
Tabel Bigtable tidak mendukung gabungan, dan transaksi hanya didukung dalam satu baris.
Tabel adalah resource tingkat instance yang direplikasi secara otomatis ke setiap cluster dalam instance. Retensi data dikontrol dengan kebijakan pengumpulan sampah yang ditetapkan di tingkat grup kolom.
Untuk mengetahui informasi selengkapnya, lihat Ringkasan Bigtable dan Praktik terbaik desain skema.
Tampilan
Bigtable mendukung jenis tampilan tabel berikut: tampilan logis, tampilan terwujud berkelanjutan, dan tampilan yang diotorisasi. Tabel virtual memungkinkan Anda membagikan data tabel dengan pengguna dan grup tertentu tanpa memberi mereka akses ke data sumber yang mendasarinya.
Tampilan logis
Tampilan logis – sering disebut hanya sebagai tampilan – adalah hasil kueri SQL. Tabel ini berfungsi sebagai tabel virtual yang dapat dikueri oleh kueri SQL lainnya. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola tampilan logis.
Tampilan berparameter
Tampilan berparameter adalah jenis tampilan logis yang secara dinamis memfilter rentang data berdasarkan konteks aplikasi. Pendekatan ini melindungi aplikasi Anda dari injeksi SQL dan mengurangi kebutuhan akan beberapa tampilan statis.
Untuk mengetahui informasi selengkapnya, lihat Ringkasan tampilan berparameter.
Tampilan terwujud berkelanjutan
Tampilan terwujud berkelanjutan dibuat dengan menjalankan kueri SQL secara berkelanjutan terhadap tabel Bigtable. Bigtable membuat tabel baru berdasarkan output kueri dan menyinkronkannya dengan tabel sumber.
Tampilan terwujud berkelanjutan dapat membantu meningkatkan performa kueri. Tabel baru – tampilan terwujud berkelanjutan – memiliki skema yang berbeda dengan tabel sumber, yang berisi data yang telah diagregasi atau diubah sebelumnya yang dioptimalkan untuk kueri yang berbeda dengan yang digunakan pada tabel sumber.
Tampilan terwujud berkelanjutan bersifat hanya baca. Anda akan ditagih untuk penyimpanan tampilan terwujud berkelanjutan serta untuk pekerjaan pemrosesan yang dilakukan untuk membuat tabel kedua, menyinkronkannya dengan tabel sumber, dan mereplikasinya.
Untuk mengetahui informasi selengkapnya, lihat Tampilan terwujud berkelanjutan.
Tampilan yang diberi otorisasi
Tampilan yang diotorisasi adalah tampilan tabel yang Anda konfigurasi untuk menyertakan data tabel tertentu, lalu memberikan akses secara terpisah dari akses ke tabel sumber. Tampilan yang diotorisasi ditentukan oleh file definisi berformat JSON.
Tidak seperti tampilan terwujud berkelanjutan atau tampilan logis, tampilan yang diizinkan Bigtable dapat digunakan untuk mengontrol akses baca dan tulis.
Tampilan yang diizinkan berguna jika Anda menyimpan data untuk beberapa pelanggan dalam tabel Bigtable, dan Anda ingin memberikan akses kepada setiap pelanggan hanya ke subset tabel yang berisi data mereka.
Tampilan yang diotorisasi tidak menimbulkan biaya penyimpanan tambahan.
Untuk mengetahui informasi selengkapnya, lihat Ringkasan tampilan yang diizinkan.
Perbandingan
Tabel berikut memberikan informasi tambahan tentang perbedaan tampilan tabel Bigtable.
| Tampilan logis | Tampilan berparameter | Tabel virtual terwujud berkelanjutan | Tampilan yang diberi otorisasi | |
|---|---|---|---|---|
| Struktur | Tabel virtual yang merepresentasikan hasil kueri SQL | Tabel virtual yang merepresentasikan hasil kueri SQL | Tabel hanya baca berdasarkan tabel sumber | Subset tabel |
| Definisi | Kueri SQL | Kueri SQL menggunakan VIEW_PARAMETERS() |
Kueri SQL | File definisi JSON |
| Konsistensi dengan tabel sumber | Konsisten saat kueri dijalankan | Konsisten saat kueri dijalankan | Konsistensi tertunda | Konsisten saat kueri dijalankan |
| Opsi kueri | Harus menggunakan SQL | SQL | SQL atau Bigtable Data API | Bigtable Data API |
| Dapat Ditulis | Tidak | Tidak | Tidak | Ya |
| Penyimpanan | Data tetap berada di tabel sumber | Data tetap berada di tabel sumber | Data diduplikasi, digabungkan, atau ditransformasikan dan disimpan dalam tabel baru yang hanya dapat dibaca | Data tetap berada di tabel sumber |
| Biaya penggunaan | Pemrosesan komputasi untuk menjalankan kueri | Pemrosesan komputasi untuk menjalankan kueri | Pemrosesan komputasi saat menyinkronkan, biaya penyimpanan | Pemrosesan komputasi untuk menjalankan kueri |