Membuat dan mengelola tampilan berparameter
Anda dapat membuat tampilan berparameter dari tampilan logis di Bigtable, lalu melakukan operasi pada tampilan berparameter.
Sebelum membaca halaman ini, pahami Ringkasan tampilan berparameter.
Sebelum memulai
Jika Anda berencana menggunakan Google Cloud CLI, ikuti langkah-langkah berikut:
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna membuat dan mengelola tampilan berparameter, minta administrator untuk memberi Anda peran Admin Bigtable (roles/bigtable.admin) di instance.
Atau, Anda dapat meminta izin berikut di tingkat instance:
- Buat:
bigtable.logicalViews.create - Update:
bigtable.logicalViews.update - Hapus:
bigtable.logicalViews.delete - Daftar:
bigtable.logicalViews.list
Untuk membuat tampilan berparameter, Anda juga harus memiliki setidaknya izin
bigtable.tables.readRows pada tabel sumber.
Membuat tampilan berparameter
Tampilan berparameter adalah tabel virtual yang ditentukan oleh pernyataan SQL SELECT yang
dapat menyertakan fungsi VIEW_PARAMETERS().
Konsol
Di konsol Google Cloud , buka daftar instance Bigtable.
Dari daftar, pilih instance.
Di panel navigasi, klik Bigtable Studio.
Buka tab baru dengan mengklik Menu tab baru, lalu pilih Editor.
Di editor kueri, tulis kueri SQL Anda. Definisi kueri harus memanggil fungsi
VIEW_PARAMETERS()untuk menentukan satu atau beberapa parameter tampilan. Contoh:SELECT * FROM TABLE_ID WHERE STARTS_WITH(_key, CAST(VIEW_PARAMETERS('PARAM_NAME') AS BYTES))Ganti kode berikut:
TABLE_ID: ID tabel sumber.PARAM_NAME: nama parameter tampilan, yang diapit dalam tanda petik tunggal, untuk diteruskan sebagai argumen ke fungsiVIEW_PARAMETERS(). Ini menentukan nama parameter, bukan nilai runtime-nya. Anda memberikan nilai runtime saat membuat kueri tampilan yang diparameterkan.
Jika kueri adalah SQL yang valid, pesan Valid akan muncul.
Opsional: Untuk memformat pernyataan Anda dalam gaya SQL, klik Format.
Klik Simpan, lalu pilih Simpan sebagai tampilan logis.
Dalam dialog Simpan tampilan logis Anda, masukkan nama untuk tampilan, lalu klik Simpan.
Tampilan akan muncul di panel Explorer, dalam daftar Logical Views, dengan ikon tampilan berparameter variable_add.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan editor kueri, lihat Mengelola data menggunakan Bigtable Studio.
gcloud
Untuk membuat tampilan berparameter, gunakan perintah
gcloud bigtable logical-views create.
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE \
--query="SELECT * FROM TABLE_ID WHERE STARTS_WITH(_key, CAST(VIEW_PARAMETERS('PARAM_NAME') AS BYTES))"
Ganti kode berikut:
VIEW: ID dengan panjang maksimal 128 karakter untuk tampilan berparameter baru. ID harus unik di antara ID tabel dan ID tampilan dalam instance.INSTANCE: ID instance tempat tampilan berparameter akan dibuat.TABLE_ID: ID tabel sumber.PARAM_NAME: nama parameter tampilan, yang diapit dalam tanda petik tunggal, untuk diteruskan sebagai argumen ke fungsiVIEW_PARAMETERS(). Hal ini menentukan nama parameter, bukan nilai runtime-nya. Anda memberikan nilai runtime saat membuat kueri tampilan yang diparameterkan.
Opsional:
- Untuk melindungi tampilan berparameter dari penghapusan, tambahkan perintah dengan
flag
--deletion-protection. Jika Anda tidak menerapkan setelan ini, tampilan dapat dihapus. Anda juga dapat mengizinkan penghapusan tampilan secara eksplisit dengan menambahkan--no-deletion-protection. Untuk mengetahui informasi selengkapnya, lihat bagian Memperbarui tampilan berparameter dalam dokumen ini.
Membuat tampilan berparameter dengan kunci baris terstruktur
Jika tabel Anda menggunakan kunci baris terstruktur, Anda dapat memfilter segmen tertentu dari kunci baris. Untuk mengetahui informasi selengkapnya, lihat Mengelola skema kunci baris.
Misalnya, jika row key dalam tabel histori pembelian menyimpan pengguna, stempel waktu tanggal pembelian, dan ID pesanan, yang dibatasi oleh simbol #, Anda dapat menentukan skema baris sebagai berikut:
field {
field_name: "user_id"
type: { bytesType { encoding { raw {} } } }
}
field {
field_name: "reversed_timestamp"
type: { timestampType { encoding { unixMicrosInt64 { encoding: { orderedCodeBytes: {} } } } } }
}
field {
field_name: "order_id"
type: { stringType { encoding { utf8Bytes {} } } }
}
encoding {
delimitedBytes { delimiter "#" }
}
Kemudian, Anda dapat membuat tampilan yang memfilter kolom ID pengguna:
Konsol
Di Bigtable Studio, buka editor kueri dan masukkan kueri SQL yang memfilter segmen row key:
SELECT * FROM TABLE_ID WHERE user_id = CAST(VIEW_PARAMETERS('user_id') AS BYTES)Ganti
TABLE_IDdengan ID tabel sumber.Klik Simpan, lalu pilih Simpan sebagai tampilan logis.
Dalam dialog Simpan tampilan logis Anda, masukkan nama untuk tampilan, lalu klik Simpan.
Tampilan akan muncul di panel Explorer, dalam daftar Logical Views, dengan ikon tampilan yang diparameterkan variable_add.
gcloud
Untuk membuat tampilan berparameter dengan kunci baris terstruktur, gunakan perintah
gcloud bigtable logical-views create.
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE \
--query="SELECT * FROM TABLE_ID WHERE user_id = CAST(VIEW_PARAMETERS('user_id') AS BYTES)"
Ganti kode berikut:
VIEW: ID hingga 128 karakter untuk tampilan berparameter baru. ID harus unik di antara ID tabel dan ID tampilan dalam instance.INSTANCE: ID instance tempat tampilan berparameter akan dibuat.TABLE_ID: ID tabel sumber.
Memperbarui tampilan berparameter
Anda memperbarui tampilan berparameter dengan cara yang sama seperti memperbarui tampilan logis.
Menghapus tampilan berparameter
Anda menghapus tampilan berparameter dengan cara yang sama seperti Anda menghapus tampilan logis.
Melihat informasi tentang tampilan yang diberi parameter
Anda dapat melihat daftar tampilan berparameter dengan cara yang sama seperti melihat daftar tampilan logis untuk instance.
Konsol
Di konsol Google Cloud , buka daftar instance Bigtable.
Dari daftar, pilih instance.
Di panel navigasi, klik Bigtable Studio.
Di panel Explorer, luaskan Logical Views.
Tampilan berparameter muncul dalam daftar dengan ikon tampilan berparameter variable_add yang membedakannya dari tampilan logis standar.
Jika instance memiliki lebih dari 10 tampilan, klik Tampilkan lebih banyak untuk memuat 10 tampilan berikutnya.
gcloud
Untuk melihat daftar tampilan logis untuk instance, gunakan perintah
gcloud bigtable logical-views list.
gcloud bigtable logical-views list --instance=INSTANCE
Ganti INSTANCE dengan ID instance.
Mengueri tampilan berparameter
Anda membuat kueri tampilan berparameter dengan cara yang sama seperti tabel reguler, tetapi Anda memberikan peta
view_parameters dalam permintaan.
Konsol
Di konsol Google Cloud , buka daftar instance Bigtable.
Dari daftar, pilih instance.
Di panel navigasi, klik Bigtable Studio.
Di panel Explorer, luaskan Logical Views.
Di samping tampilan berparameter yang ingin Anda kueri, klik menu more_vert Tindakan tampilan, lalu klik Kueri tampilan.
Panel Parameter akan terbuka dengan nama parameter tampilan yang telah diisi otomatis.
Di Lihat parameter, masukkan nilai runtime untuk setiap parameter yang diperlukan di kolom Nilai.
Nilai parameter diteruskan sebagai string. Jika parameter dalam definisi tampilan Anda dikonversi ke jenis lain (seperti bilangan bulat atau byte), masukkan nilai string mentah.
Opsional: Untuk menambahkan lebih banyak parameter, klik Tambahkan parameter, lalu masukkan nama dan nilai parameter. Nama parameter harus unik dalam parameter tampilan.
Klik Simpan.
Di editor kueri, klik Run.
Hasil kueri Anda akan muncul di tabel Results.
Jika Anda menjalankan kueri tanpa memberikan parameter tampilan yang diperlukan, pesan error akan muncul di bagian hasil dengan tombol Edit parameter. Klik Edit parameter untuk membuka panel Parameter dan masukkan nilai parameter yang belum ada.
Nilai parameter dikonfigurasi untuk setiap tab editor kueri. Jika Anda keluar dari Bigtable Studio selama sesi dan kembali, tab, kueri, hasil, dan parameter yang dikonfigurasi akan tetap ada.
Java
Contoh berikut menunjukkan cara membuat kueri
tampilan berparameter bernama purchase_history_pv, yang memfilter data berdasarkan
ID pengguna:
// Assumes 'purchase_history_pv' was created with the definition:
// SELECT * FROM purchases WHERE user_id = CAST(VIEW_PARAMETERS('user_id') AS BYTES)
String query = "SELECT customer_info[email], order_details[status], order_info[items] from purchase_history_pv";
PreparedStatement preparedStatement = dataClient.prepareStatement(query);
BoundStatement boundStatement = preparedStatement.bind().build();
// The user ID is now passed out-of-band in a view parameters map.
Map<String, Value> viewParameters = new HashMap<>();
viewParameters.put("user_id", Value.newBuilder().setType(stringType()).setStringValue(userId).build());
// Execute the query, passing the view parameters using a proto field in the request.
ResultSet rs = dataClient.executeQuery(
boundStatement,
viewParameters
);
Hal ini mencegah pengguna dapat melihat atau memanipulasi parameter user_id
dalam kueri itu sendiri, sehingga memberikan pemisahan logis yang bersih.