Ringkasan tampilan yang diotorisasi
Tampilan yang diizinkan di Bigtable memungkinkan Anda memberikan akses mendetail ke subkumpulan data tabel tertentu secara terpisah dari tabel dasarnya.
Anda dapat menggunakan tampilan ini untuk mengisolasi data dalam tabel multi-tenant dan mengontrol akses baca dan tulis. Anda juga dapat membuat ribuan tampilan secara terprogram, mirip dengan tampilan yang dapat diupdate atau alias yang difilter di sistem penyimpanan lainnya.
Sebelum memulai, pastikan Anda memahami model penyimpanan Bigtable. Untuk mengetahui petunjuk penyiapan, lihat Membuat dan mengelola tampilan resmi.
Definisi tampilan yang diotorisasi
Saat membuat tampilan yang diotorisasi, Anda menentukannya dengan menentukan data yang akan disertakan dalam tampilan yang diotorisasi menggunakan salah satu parameter berikut:
- Awalan kunci baris - misalnya, semua baris yang dimulai dengan
examplepetstore1# - Awalan penentu kolom - misalnya, semua kolom yang penentunya
dimulai dengan
order#dalam grup kolom yang ditentukan - Penentu kolom - misalnya, hanya kolom
order-examplepetstoredalam grup kolom yang ditentukan - Kombinasi awalan row key dan penentu kolom
Jika penentu kolom yang sama digunakan di beberapa grup kolom dan Anda ingin menyertakan semua kolom dengan penentu tersebut dalam tampilan, Anda harus menentukan setiap kombinasi penentu kolom dan grup kolom secara terpisah saat menentukan tampilan.
Nilai row key dan penentu kolom yang Anda gunakan untuk menentukan tampilan yang diizinkan diperlakukan sebagai data layanan. Oleh karena itu, jangan membuat tampilan yang diotorisasi menggunakan nilai row key atau penentu kolom yang berisi informasi sensitif. Untuk informasi tentang cara penanganan data layanan, lihat Pemberitahuan Google Cloud Privasi.
Pencantuman kolom dalam grup atau semua baris
Jika Anda ingin memastikan bahwa setiap kolom yang ditambahkan ke grup kolom dalam tabel pokok juga disertakan dalam tampilan yang diotorisasi, Anda harus menentukan string kosong ("") sebagai awalan penentu kolom. Misalnya, file definisi akan menyertakan ini dalam subset family:
"qualifierPrefixes": [""].
Demikian pula, jika Anda ingin menentukan tampilan yang diotorisasi yang menyertakan semua
baris dalam tabel, tentukan string kosong ("") sebagai awalan row key. Dalam file definisi, ini ditulis sebagai "rowPrefixes": [""] dalam subset tampilan.
Untuk menghindari tampilan resmi yang terlalu rumit, Bigtable memungkinkan Anda menentukan maksimal 10 awalan penentu yang berbeda. Artinya, tampilan yang diberi otorisasi dapat menentukan satu grup kolom dengan 10 awalan penentu, 10 grup kolom dengan satu awalan penentu, atau di antara keduanya selama jumlah total penentu paling banyak 10.
Sebagai praktik terbaik, tentukan kunci hanya sekali per objek JSON. Jika Anda menentukan kunci, seperti nama grup kolom, lebih dari sekali, entri terakhir untuk kunci tersebut akan menggantikan entri sebelumnya untuk kunci tersebut.
Contoh file definisi
Bagian ini menyajikan contoh file definisi tampilan yang diotorisasi dalam format JSON.
Berikut adalah contoh file definisi untuk tampilan yang diotorisasi yang menyertakan kolom address dari grup kolom customer dan kolom yang dimulai dengan tel untuk baris dengan awalan row key examplepetstore1#.
{
"subsetView":
{
"rowPrefixes": ["examplepetstore1#"],
"familySubsets":
{
"customer":
{
"qualifiers":["address"],
"qualifierPrefixes":["tel"]
}
}
},
"deletionProtection": true
}
Berikut adalah contoh file definisi untuk tampilan resmi
yang menyertakan kolom skus dalam grup kolom order dan semua kolom dalam
grup kolom customer.
{
"subsetView": {
"rowPrefixes": [""],
"familySubsets": {
"order": {
"qualifiers": ["skus"]
},
"customer": {
"qualifierPrefixes": [""]
}
}
}
}
Berikut adalah contoh file definisi untuk tampilan yang diotorisasi yang hanya menyertakan data di kolom skus dalam grup kolom order di baris yang memiliki awalan row key examplepetstore1#.
{
"subsetView": {
"rowPrefixes": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus"]
}
}
}
}
Berikut adalah contoh file definisi untuk tampilan resmi
yang hanya menyertakan data di kolom skus dan agents dalam grup kolom order
serta kolom dog, cat, dan bird dalam grup kolom pet_id.
{
"subsetView": {
"rowPrefixes": [""]
"familySubsets": {
"order": {
"qualifiers": ["skus", "agents"]
"pet_id": {
"qualifiers": ["dog", "cat", "bird"]
}
}
}
}
}