Dalam tutorial ini, Anda akan membuat tabel virtual yang diotorisasi di BigQuery, yang dapat digunakan oleh analis data Anda untuk menganalisis hasil kueri tanpa memerlukan akses ke data sumber yang mendasarinya.
Anda dapat melakukannya dengan membuat tampilan yang diotorisasi dari kueri SQL yang membatasi kolom yang dapat dilihat oleh analis data dalam hasil kueri.
Tujuan
- Buat set data untuk menampung data sumber Anda.
- Jalankan kueri untuk memuat data ke dalam tabel tujuan di set data sumber.
- Buat set data untuk menampung tampilan yang diotorisasi.
- Buat tampilan yang diotorisasi dari kueri SQL yang membatasi kolom yang dapat dilihat analis data Anda dalam hasil kueri.
- Beri analis data Anda izin untuk menjalankan tugas kueri.
- Beri analis data Anda akses ke set data yang berisi tampilan yang diotorisasi.
- Memberikan akses tampilan yang diotorisasi ke set data sumber.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, baca bagian Pembersihan.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Pastikan penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan BigQuery API, jika belum diaktifkan.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.- Pastikan Anda memiliki izin yang diperlukan untuk melakukan tugas dalam dokumen ini.
Membuat set data untuk menyimpan data sumber Anda
Anda mulai dengan membuat set data untuk menyimpan data sumber.
Untuk membuat set data sumber, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel kiri, klik Explorer:

Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.
Di panel Explorer, di samping project tempat Anda ingin membuat set data, klik View actions > Create dataset.
Di halaman Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
github_source_data.Untuk Location type, pastikan Multi-region dipilih.
Untuk Multi-region, pilih US atau EU. Semua resource yang Anda buat dalam tutorial ini harus berada di lokasi multi-region yang sama.
Klik Create dataset.
SQL
Gunakan pernyataan DDL CREATE SCHEMA:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE SCHEMA github_source_data;
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Membuat tabel dan memuat data sumber Anda
Setelah membuat set data sumber, Anda dapat mengisi tabel di dalamnya dengan menyimpan hasil kueri SQL ke tabel tujuan. Kueri ini mengambil data dari set data publik GitHub.
Konsol
Buka halaman BigQuery.
Di editor kueri, masukkan kueri berikut:
SELECT commit, author, committer, repo_name FROM `bigquery-public-data.github_repos.commits` LIMIT 1000;Klik Edit > Query settings.
Untuk Destination, pilih Set a destination table for query results.
Untuk Dataset, masukkan
PROJECT_ID.github_source_data.Ganti
PROJECT_IDdengan project ID Anda.Untuk Table ID, masukkan
github_contributors.Klik Save.
Klik Run.
Setelah kueri selesai, di panel Explorer, klik Datasets, lalu klik set data
github_source_data.Klik Overview > Tables, lalu klik tabel
github_contributors.Untuk memastikan data telah ditulis ke tabel, klik tab Preview.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Membuat set data untuk menyimpan tampilan yang diotorisasi
Setelah membuat set data sumber, Anda perlu membuat set data baru yang terpisah untuk menyimpan tampilan yang diotorisasi dan akan Anda bagikan kepada analis data. Di langkah selanjutnya, Anda akan memberikan akses lihat yang diotorisasi ke data dalam set data sumber. Kemudian, analis data Anda akan memiliki akses ke tampilan yang diotorisasi, tetapi bukan akses langsung ke data sumber.
Tampilan yang diotorisasi harus dibuat dalam set data yang berbeda dengan data sumber. Dengan demikian, pemilik data dapat memberi pengguna akses ke tampilan yang diotorisasi tanpa memberikan akses ke data dasar secara bersamaan. Set data dari data sumber dan set data tampilan yang diotorisasi harus berada di lokasi regional yang sama.
Untuk membuat set data guna menyimpan tampilan, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel kiri, klik Explorer:

Di panel Explorer, pilih project tempat Anda ingin membuat set data.
Luaskan opsi Tampilkan tindakan, lalu klik Buat set data.
Di halaman Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
shared_views.Untuk Location type, pastikan Multi-region dipilih.
Untuk Multi-region, pilih US atau EU. Semua resource yang Anda buat dalam tutorial ini harus berada di lokasi multi-region yang sama.
Klik Create dataset.
SQL
Gunakan pernyataan DDL CREATE SCHEMA:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE SCHEMA shared_views;
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Membuat tampilan yang diotorisasi di set data baru
Di set data baru, buat tampilan yang ingin Anda beri otorisasi. Ini adalah tampilan yang Anda bagikan kepada analis data Anda. Tampilan ini dibuat menggunakan kueri SQL yang mengecualikan kolom yang tidak ingin Anda tampilkan kepada analis data.
Tabel sumber github_contributors berisi dua kolom jenis RECORD:
author dan committer. Untuk tutorial ini, tampilan yang diizinkan tidak menyertakan semua
data penulis kecuali nama penulis, dan tidak menyertakan semua
data committer kecuali nama committer.
Untuk membuat tampilan dalam set data baru, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di editor kueri, masukkan kueri berikut.
SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
Ganti
PROJECT_IDdengan project ID Anda.Klik File > Save > Save view.
Pada dialog Save view, lakukan hal berikut:
Untuk Project, pastikan project Anda dipilih.
Untuk Dataset, masukkan
shared_views.Untuk Table, masukkan
github_analyst_view.Klik Save.
SQL
Gunakan pernyataan DDL CREATE VIEW:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE VIEW shared_views.github_analyst_view AS ( SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors` );
Ganti
PROJECT_IDdengan project ID Anda.Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Memberi analis data Anda izin untuk menjalankan tugas kueri
Untuk membuat kueri tampilan, analis data memerlukan izin bigquery.jobs.create
agar dapat menjalankan tugas kueri. Izin ini hanya diperlukan pada project tempat tugas kueri dijalankan (project penagihan atau eksekusi), yang dapat berbeda dengan project yang berisi tampilan.
Di bagian ini, Anda akan memberikan peran bigquery.user kepada analis data di
project yang mereka gunakan untuk menjalankan tugas. Peran bigquery.user mencakup
izin bigquery.jobs.create. Pada langkah selanjutnya, Anda akan memberi analis data
izin untuk mengakses tampilan.
Untuk menetapkan grup analis data ke peran bigquery.user di project
yang mereka gunakan untuk menjalankan tugas, lakukan hal berikut:
Di konsol Google Cloud , buka halaman IAM.
Pastikan project yang digunakan analis Anda untuk menjalankan tugasnya dipilih di pemilih project.
Klik Grant access.
Pada dialog Grant access to, lakukan hal berikut:
Di kolom New principals, masukkan grup yang berisi analis data Anda. Contoh,
data_analysts@example.com.Di kolom Select a role, telusuri peran BigQuery User, lalu pilih peran tersebut.
Klik Simpan.
Memberi analis data Anda izin untuk mengkueri tampilan yang diizinkan
Agar analis data Anda dapat membuat kueri tampilan, mereka harus diberi peran
bigquery.dataViewer di tingkat set data atau tingkat tampilan.
Memberikan peran ini di level set data akan memberi analis Anda akses ke semua tabel dan tampilan dalam set data. Karena set data yang dibuat dalam tutorial ini berisi satu tampilan yang diotorisasi, Anda memberikan akses di level set data. Jika Anda
memiliki kumpulan tampilan yang diotorisasi yang perlu Anda beri akses, pertimbangkan
untuk menggunakan set data yang diotorisasi.
Peran bigquery.user yang Anda berikan kepada analis data sebelumnya
memberi mereka izin yang diperlukan untuk membuat tugas kueri dalam project tempat
tugas kueri dijalankan. Namun, mereka tidak akan berhasil membuat kueri tabel virtual kecuali jika mereka juga memiliki akses bigquery.dataViewer ke tabel virtual yang diizinkan atau ke set data yang berisi tabel virtual.
Untuk memberi analis data Anda akses bigquery.dataViewer ke set data yang
berisi tampilan yang diotorisasi, lakukan hal berikut:
Konsol
Buka halaman BigQuery.
Di panel kiri, klik Explorer:

Di panel Explorer, klik Datasets, lalu pilih set data
shared_viewsuntuk membuka tab Details.Klik Sharing > Permissions.
Di panel Share permissions, klik Add principal.
Untuk New principals, masukkan grup yang berisi analis data Anda—misalnya,
data_analysts@example.com.Klik Select a role, lalu pilih BigQuery > BigQuery Data Viewer.
Klik Save.
Klik Close.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Mengizinkan tampilan untuk mengakses set data sumber
Setelah membuat kontrol akses untuk set data yang berisi tampilan yang diotorisasi, Anda memberikan akses tampilan yang diotorisasi ke set data sumber. Otorisasi ini memberi akses lihat ke data sumber, tetapi bukan akses bagi grup analis data Anda ke data sumber.
Untuk memberikan akses tampilan yang diotorisasi ke data sumber, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel kiri, klik Explorer:

Di panel Explorer, klik Datasets, lalu pilih set data
github_source_datauntuk membuka tab Details.Klik Sharing > Authorize views.
Di panel Authorized views, untuk Authorized view, masukkan
PROJECT_ID.shared_views.github_analyst_view.Ganti PROJECT_ID dengan project ID Anda.
Klik Add authorization.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Memverifikasi konfigurasi
Setelah konfigurasi selesai, anggota grup analis data Anda (misalnya,
data_analysts) dapat memverifikasi konfigurasi dengan membuat kueri tampilan.
Untuk memverifikasi konfigurasi, analis data harus menjalankan kueri berikut:
Buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
SELECT * FROM `
PROJECT_ID.shared_views.github_analyst_view`;Ganti
PROJECT_IDdengan project ID Anda.Klik Run.
Hasil kuerinya mirip dengan berikut ini. Hanya nama penulis dan nama committer yang terlihat dalam hasil.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
Kode sumber lengkap
Berikut adalah kode sumber lengkap tutorial sebagai referensi Anda.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
Konsol
- Di konsol Google Cloud , buka halaman Manage resources.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
gcloud
Menghapus project Google Cloud :
gcloud projects delete PROJECT_ID
Menghapus resource satu per satu
Atau, untuk menghapus setiap resource yang digunakan dalam tutorial ini, lakukan hal berikut:
Hapus set data yang berisi tampilan yang diotorisasi.
Hapus tabel di set data sumber.
Karena Anda membuat resource yang digunakan dalam tutorial ini, tidak diperlukan izin tambahan untuk menghapusnya.
Langkah berikutnya
- Untuk mempelajari kontrol akses di BigQuery, lihat Peran dan izin IAM BigQuery.
- Untuk mempelajari tampilan BigQuery, lihat Pengantar tampilan logis.
- Untuk mempelajari lebih lanjut tabel virtual yang diizinkan, lihat Tabel virtual yang diizinkan.
- Untuk mempelajari konsep dasar tentang kontrol akses, lihat Ringkasan IAM.
- Untuk mempelajari cara mengelola kontrol akses, lihat Mengelola kebijakan.