Dalam tutorial ini, Anda akan membuat tampilan yang diotorisasi di BigQuery yang digunakan oleh analis data Anda. Tampilan yang diotorisasi memungkinkan Anda membagikan hasil kueri kepada pengguna dan grup tertentu tanpa memberi mereka akses ke data sumber yang mendasarinya. Tampilan diberi akses ke data sumber, bukan pengguna atau grup. Anda juga dapat menggunakan kueri SQL tampilan untuk mengecualikan kolom dan kolom dari hasil kueri.
Pendekatan alternatif untuk menggunakan tampilan yang diotorisasi adalah dengan menyiapkan kontrol akses tingkat kolom pada data sumber, lalu memberi pengguna akses ke tampilan yang membuat kueri data yang dikontrol akses. Untuk mengetahui informasi selengkapnya tentang kontrol akses tingkat kolom, lihat Pengantar kontrol akses tingkat kolom.
Jika memiliki beberapa tampilan yang diotorisasi yang mengakses set data sumber yang sama, Anda dapat memberi otorisasi pada set data yang berisi tampilan, bukan memberikan otorisasi pada setiap tampilan.
Tujuan
- Buat set data untuk menampung data sumber Anda.
- Jalankan kueri untuk memuat data ke tabel tujuan di set data sumber.
- Buat set data untuk menampung tampilan resmi Anda.
- Buat tampilan yang diotorisasi dari kueri SQL yang membatasi kolom yang dapat dilihat oleh analis data Anda dalam hasil kueri.
- Berikan izin kepada analis data Anda untuk menjalankan tugas kueri.
- Berikan akses ke set data yang berisi tampilan yang diotorisasi kepada analis data Anda.
- Berikan 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, lihat Pembersihan.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery API.
- Pastikan Anda memiliki izin yang diperlukan untuk melakukan tugas dalam dokumen ini.
Peran yang diperlukan
Jika membuat project baru, Anda adalah pemilik project, dan Anda akan diberi semua izin IAM yang diperlukan untuk menyelesaikan tutorial ini.
Jika menggunakan project yang sudah ada, Anda memerlukan peran berikut.
Make sure that you have the following role or roles on the project:
- BigQuery Studio Admin (
roles/bigquery.studioAdmin
)
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Buka IAM - Pilih project.
- Klik Berikan akses.
-
Di kolom New principals, masukkan ID pengguna Anda. Ini biasanya adalah alamat email untuk Akun Google.
- Di daftar Pilih peran, pilih peran.
- Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
- Klik Simpan.
bigquery.datasets.create
untuk membuat set data sumber dan set data yang berisi tampilan yang diotorisasi.bigquery.tables.create
untuk membuat tabel yang menyimpan data sumber dan membuat tampilan yang diizinkan.bigquery.jobs.create
untuk menjalankan tugas kueri yang memuat data ke dalam tabel sumber.bigquery.datasets.getIamPolicy
danbigquery.datasets.get
untuk mendapatkan izin IAM untuk set data sumber dan set data yang berisi tampilan yang diotorisasi.bigquery.datasets.setIamPolicy
danbigquery.datasets.update
untuk memperbarui izin IAM untuk set data sumber dan set data yang berisi tampilan yang diotorisasi.
Untuk mengetahui informasi selengkapnya tentang peran di BigQuery, lihat Peran IAM yang telah ditetapkan.
Izin yang diperlukan
Untuk membuat resource yang digunakan dalam tutorial ini, izin berikut diperlukan. Peran bawaan Admin BigQuery Studio memberikan semua izin ini.
Untuk mengetahui informasi selengkapnya tentang izin IAM di BigQuery, lihat Izin BigQuery.
Membuat set data untuk menyimpan data sumber
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 Explorer, di samping project tempat Anda ingin membuat set data, klik > Create dataset.
View actionsDi halaman Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
github_source_data
.Untuk Jenis lokasi, 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 Studio.
Di editor kueri, masukkan pernyataan berikut:
CREATE SCHEMA github_source_data;
Klik
Run.
Untuk 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 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 informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Membuat tabel dan memuat data sumber
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 Query editor, tempel kueri berikut:
SELECT commit, author, committer, repo_name FROM `bigquery-public-data.github_repos.commits` LIMIT 1000;
Klik More dan pilih Query settings.
Untuk Destination, pilih Set a destination table for query results.
Untuk Dataset, masukkan
PROJECT_ID.github_source_data
.Ganti
PROJECT_ID
dengan project ID Anda.Untuk Table ID, masukkan
github_contributors
.Klik Save.
Klik Run.
Setelah kueri selesai, di panel Explorer, luaskan
github_source_data
, lalu klikgithub_contributors
.Untuk memverifikasi bahwa 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 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 informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Membuat set data untuk menyimpan tampilan resmi
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 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 Explorer, pilih project tempat Anda ingin membuat set data.
Luaskan opsi
View actions, lalu klik Create dataset.Di halaman Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
shared_views
.Untuk Jenis lokasi, 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 Studio.
Di editor kueri, masukkan pernyataan berikut:
CREATE SCHEMA shared_views;
Klik
Run.
Untuk 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 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 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_ID
dengan project ID Anda.Klik Save > Save view.
Pada dialog Simpan tampilan, 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 Studio.
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_ID
dengan project ID Anda.Klik
Run.
Untuk 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 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 informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Memberi analis data izin untuk menjalankan tugas kueri
Untuk membuat kueri tampilan, analis data memerlukan izin bigquery.jobs.create
agar dapat menjalankan tugas kueri. Peran bigquery.studioUser
mencakup
izin bigquery.jobs.create
. Peran bigquery.studioUser
tidak memberikan izin kepada pengguna untuk melihat atau membuat kueri tampilan yang diotorisasi. Di langkah berikutnya, Anda
akan memberikan izin kepada analis data untuk mengakses tampilan.
Untuk menetapkan grup analis data ke peran bigquery.studioUser
di
level project, lakukan hal berikut:
Di konsol Google Cloud, buka halaman IAM.
Pastikan project Anda dipilih di pemilih project.
Klik
Berikan akses.Pada dialog Berikan akses ke, 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 Studio User, lalu pilih peran tersebut.
Klik Simpan.
Memberikan izin kepada analis data untuk membuat kueri 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 tingkat 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 tingkat set data. Jika Anda
memiliki kumpulan tampilan yang diotorisasi yang perlu Anda berikan akses, sebaiknya
gunakan set data yang diotorisasi.
Peran bigquery.studioUser
yang Anda berikan kepada analis data sebelumnya
memberi mereka izin yang diperlukan untuk membuat tugas kueri. Namun, mereka tidak akan berhasil membuat kueri tampilan kecuali jika mereka juga memiliki akses bigquery.dataViewer
ke tampilan yang diberi otorisasi atau ke set data yang berisi tampilan.
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 Explorer, pilih set data
shared_views
.Klik > Permissions.
SharingDi 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 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 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 akan 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 data sumber ke tampilan yang diotorisasi, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel Explorer, pilih set data
github_source_data
.Klik > Otorisasi tampilan.
BerbagiDi panel Authorized views, untuk Authorized view, masukkan
PROJECT_ID.shared_views.github_analyst_view
.Ganti PROJECT_ID dengan project ID Anda.
Klik Tambahkan otorisasi.
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 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 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_ID
dengan project ID Anda.Klik
Run.
Hasil kueri mirip dengan berikut ini. Hanya nama penulis dan nama committer yang terlihat dalam hasil.
Untuk 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 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 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
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
gcloud
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Menghapus resource satu per satu
Atau, untuk menghapus setiap resource yang digunakan dalam tutorial ini, lakukan langkah-langkah 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 ada izin tambahan yang diperlukan 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 tampilan yang diotorisasi lebih lanjut, lihat Tampilan yang diotorisasi.
- Untuk mempelajari konsep dasar tentang kontrol akses, lihat ringkasan IAM.
- Untuk mempelajari cara mengelola kontrol akses, lihat Mengelola kebijakan.