Menggunakan template kueri
Template kueri ruang bersih data BigQuery mempercepat waktu untuk mendapatkan insight dan memberikan lapisan keamanan dan kontrol tambahan untuk meminimalkan masalah ekstraksi data. Dengan telah menentukan dan membatasi kueri yang dapat dijalankan di ruang bersih data, Anda dapat melakukan hal berikut:
Membantu mencegah kebocoran data sensitif. Saat pelanggan ruang bersih data menjalankan kueri di ruang bersih, fleksibilitas yang lebih besar untuk menjelajahi data dapat meningkatkan risiko pemaparan informasi sensitif secara tidak sengaja atau disengaja bagi pemilik data.
Menyederhanakan orientasi dan penggunaan bagi pengguna yang kurang paham teknologi. Banyak penyedia data mengharapkan pelanggan ruang bersih data memiliki kemahiran teknis yang lebih rendah, terutama dalam menulis kueri SQL yang berfokus pada privasi dan mengalokasikan anggaran privasi.
Menjamin hasil analisis yang konsisten bagi pelanggan ruang bersih data. Tanpa mengontrol kueri yang dijalankan di ruang bersih data, akan lebih sulit untuk menerapkan aturan analisis data tertentu dan memverifikasi kepatuhan terhadap peraturan privasi.
Dengan template kueri, pemilik dan kontributor data dapat membuat kueri yang telah ditentukan dan disetujui yang disesuaikan dengan kasus penggunaan ruang bersih data. Mereka juga dapat memublikasikan kueri ini agar dapat digunakan oleh pelanggan. Kueri yang telah ditentukan menggunakan fungsi bernilai tabel (TVF) di BigQuery untuk meneruskan seluruh tabel atau kolom tertentu sebagai parameter input dan menampilkan tabel sebagai output.
Batasan
- Template kueri hanya mendukung maksimal dua referensi data—yaitu, data yang digunakan untuk menentukan kueri TVF dan input parameter data yang diterima TVF.
- Beberapa tabel atau tampilan dapat dirujuk dalam definisi kueri TVF, tetapi semuanya harus dimiliki oleh pemilik atau pihak data yang sama.
- TVF template kueri hanya mendukung jenis tetap
TABLEdanVIEW. - Definisi template kueri tunduk pada batasan yang sama seperti TVF.
Sebelum memulai
Aktifkan Analytics Hub API untuk project Google Cloud Anda dengan mengikuti langkah-langkah berikut:
Konsol
Buka halaman Analytics Hub API.
Di toolbar konsol Google Cloud , pilih project Anda.
Jika API ini belum diaktifkan, klik Aktifkan.
bq
Jalankan
perintah gcloud services enable:
gcloud services enable analyticshub.googleapis.com
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk melakukan tugas dalam dokumen ini, minta administrator Anda untuk memberikan peran IAM berikut:
-
Membuat atau menghapus TVF di ruang bersih data:
- Publisher Analytics Hub (
roles/analyticshub.publisher) di project - Pelanggan Analytics Hub (
roles/analyticshub.subscriber) di project
- Publisher Analytics Hub (
-
Memberi otorisasi TVF:
BigQuery Data Owner (
roles/bigquery.dataOwner) di project -
Menambahkan, memperbarui, atau menghapus listingan TVF di ruang bersih data:
- Publisher Analytics Hub (
roles/analyticshub.publisher) di project - Pelanggan Analytics Hub (
roles/analyticshub.subscriber) di project
- Publisher Analytics Hub (
-
Buat template kueri:
- Publisher Analytics Hub (
roles/analyticshub.publisher) di project - Pelanggan Analytics Hub (
roles/analyticshub.subscriber) di project
- Publisher Analytics Hub (
-
Menyetujui template kueri:
- Publisher Analytics Hub (
roles/analyticshub.publisher) di project - BigQuery Data Owner (
roles/bigquery.dataOwner) di project
- Publisher Analytics Hub (
-
Berlangganan ruang bersih data dengan template kueri:
- Pelanggan Analytics Hub (
roles/analyticshub.subscriber) di project - Pemilik Langganan Analytics Hub (
roles/analyticshub.subscriptionOwner) di project tempat Anda ingin berlangganan ruang bersih data
- Pelanggan Analytics Hub (
-
Jalankan kueri yang ditentukan dalam template kueri:
- BigQuery Data Viewer (
roles/bigquery.dataViewer) di project - Pengguna BigQuery (
roles/bigquery.user) di project
- BigQuery Data Viewer (
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk melakukan tugas dalam dokumen ini. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk melakukan tugas dalam dokumen ini:
-
Membuat atau menghapus TVF di ruang bersih data:
-
bigquery.routines.createdalam project -
bigquery.routines.updatedalam project -
bigquery.routines.deletedalam project
-
-
Memberi otorisasi TVF:
bigquery.datasets.updatepada set data yang diakses oleh rutinitas -
Buat template kueri:
-
analyticshub.listings.subscribedalam project -
analyticshub.queryTemplates.createdalam project
-
-
Menyetujui template kueri:
-
bigquery.routines.createdalam project -
bigquery.datasets.updatepada set data yang diakses oleh rutinitas -
analyticshub.listings.createdalam project -
analyticshub.queryTemplates.approvedalam project
-
-
Perbarui template kueri yang ada:
analyticshub.queryTemplates.updatepada template kueri -
Mengambil detail template kueri:
analyticshub.queryTemplates.getpada template kueri -
Mencantumkan semua template kueri dalam pertukaran data:
analyticshub.queryTemplates.listdi pertukaran data -
Menghapus template kueri:
analyticshub.queryTemplates.deletepada template kueri
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Menambahkan TVF yang ada ke ruang bersih data
Anda dapat menambahkan TVF yang ada ke ruang bersih data menggunakan Analytics Hub API.
Gunakan
metode projects.locations.dataExchanges.listings.create.
Contoh berikut menunjukkan cara memanggil metode
projects.locations.dataExchanges.listings.create menggunakan perintah curl:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/listings?listingId=LISTING_ID -d '{"bigqueryDataset":{"dataset":"projects/PROJECT_ID/datasets/DATASET_ID","selectedResources":[{"routine":"projects/PROJECT_ID/datasets/DATASET_ID/tables/ROUTINE_ID"}],},"displayName":LISTING_NAME"}'
Ganti kode berikut:
DCR_PROJECT_ID: project ID project tempat ruang bersih data dibuat.PROJECT_ID: project ID project tempat set data sumber berada.DATASET_ID: ID set data sumber.LOCATION: lokasi ruang bersih data.CLEAN_ROOM_ID: ID ruang bersih data.LISTING_ID: ID listingan.LISTING_NAME: nama listingan.ROUTINE_ID: ID rutinitas.
Peran template kueri
Ada tiga peran utama untuk menggunakan template kueri ruang bersih data. Setiap peran memiliki alur kerja tertentu, yang dijelaskan di bagian selanjutnya dalam dokumen ini.
Pembuat template: pengguna yang menentukan kueri yang akan dijalankan dalam ruang bersih. Peran ini setara dengan salah satu peran IAM berikut: Admin Analytics Hub, Penayang Analytics Hub, atau Admin Listingan Analytics Hub. Untuk mengetahui informasi selengkapnya, lihat Alur kerja pembuat template.
Penyetuju template: pemilik data yang harus menyetujui referensi template kueri sebelum template tersedia untuk digunakan. Peran ini setara dengan salah satu peran IAM berikut: Admin Analytics Hub, Penayang Analytics Hub, atau Admin Listingan Analytics Hub. Untuk mengetahui informasi selengkapnya, lihat Alur kerja pemberi persetujuan template.
Pelanggan template: pengguna yang berlangganan ruang bersih dan hanya dapat menjalankan kueri yang disetujui dalam template. Peran ini setara dengan peran IAM Pelanggan Analytics Hub. Untuk mengetahui informasi selengkapnya, lihat Alur kerja pelanggan template.
Alur kerja pembuat template
Sebagai pembuat template kueri, Anda dapat melakukan hal berikut:
- Buat template kueri.
- Perbarui template kueri.
- Kirimkan template kueri untuk ditinjau.
- Hapus template kueri.
Menambahkan listingan ke ruang bersih data
Sebelum membuat template kueri, Anda harus menambahkan data ke ruang bersih data. Untuk membuat listingan di ruang bersih data, ikuti langkah-langkah berikut:
Buka halaman Berbagi (Analytics Hub).
Klik nama tampilan ruang bersih data tempat Anda ingin membuat template kueri.
Klik Tambahkan data dan ikuti langkah-langkah untuk membuat tampilan dengan aturan analisis yang dikonfigurasi. Untuk mengetahui petunjuk selengkapnya, lihat Membuat listingan (menambahkan data).
- Untuk menambahkan data dari pihak lain, bagikan ruang bersih kepada kontributor tepercaya lain. Kontributor data ini juga harus menambahkan data ke ruang bersih agar memenuhi syarat untuk digunakan dalam template kueri.
Tetapkan kontrol traffic keluar data untuk listingan.
Tetapkan kontrol metadata untuk listingan. Jika Anda hanya ingin membagikan skema dan deskripsi data yang ditambahkan pada langkah sebelumnya (dan bukan data yang dibagikan itu sendiri), pilih Kecualikan akses ke listingan dari set data tertaut.
Tinjau detail listingan.
Klik Tambahkan data. Metadata tampilan yang dibuat untuk data Anda kini ditambahkan ke ruang bersih.
Membuat template kueri
Pilih salah satu opsi berikut:
Konsol
Buka halaman Berbagi (Analytics Hub).
Klik nama tampilan ruang bersih data tempat Anda ingin membuat template kueri.
Di ruang bersih, buka tab Templates.
Klik Create Template.
Masukkan nama dan deskripsi template.
Klik Berikutnya.
Anda dapat melihat skema tampilan yang ditambahkan ke ruang bersih, dan Anda dapat mengajukan definisi kueri.
- Pastikan untuk menentukan kueri menggunakan sintaksis
CREATE TABLE FUNCTIONyang didukung. Teruskan seluruh tabel atau tampilan dengan definisi tetap. Anda harus menentukan referensi jalur tabel lengkap, termasuk project ID dan ID set data, dari data yang ditambahkan ke ruang bersih. Contoh:
query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)Jika Anda menerapkan aturan analisis privasi ke data, pastikan TVF ini menyertakan sintaksis SQL khusus privasi, misalnya,
SELECT WITH AGGREGATION_THRESHOLD.
- Pastikan untuk menentukan kueri menggunakan sintaksis
Tinjau detail template.
Untuk menyimpan template tanpa mengirimkannya untuk ditinjau, klik Simpan. Template kueri kini memiliki status DRAF.
Anda dapat memperbarui template kueri atau mengirimkan template kueri untuk ditinjau.
API
Contoh berikut menunjukkan cara membuat template kueri dengan perintah curl:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID -d 'query_template { display_name: "DISPLAY_NAME", routine { definition_body: "QUERY_TEMPLATE_ID(TVF arguments) AS (TVF_DEFINITION)" } }'
Ganti kode berikut:
DCR_PROJECT_ID: project ID project tempat ruang bersih data dibuat.LOCATION: lokasi ruang bersih data.CLEAN_ROOM_ID: ID ruang bersih data.DISPLAY_NAME: nama tampilan template kueri. Anda tidak dapat mengedit nama tampilan setelah membuat template kueri.QUERY_TEMPLATE_ID: ID template kueri.TVF_DEFINITION: definisi TVF.
Contoh kode berikut menunjukkan contoh definition_body untuk panggilan API.
Anda harus menentukan referensi jalur tabel lengkap, termasuk project ID dan
ID set data, dari data yang ditambahkan ke ruang bersih.
query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)
definition_body analog dengan definisi rutinitas. definition_body sebelumnya diterjemahkan ke rutinitas berikut:
CREATE OR REPLACE TABLE FUNCTION <approvers_dataset>.query_template1(t1 TABLE, y INT64)
AS (SELECT * FROM t1 WHERE year > y)
Anda dapat memperbarui template kueri atau mengirimkan template kueri untuk ditinjau.
Memperbarui template kueri
Anda hanya dapat memperbarui template kueri jika statusnya DRAF. Jika template kueri telah dikirim untuk ditinjau, Anda tidak dapat lagi mengubahnya.
Untuk memperbarui template kueri, pilih salah satu opsi berikut:
Konsol
Buka halaman Berbagi (Analytics Hub).
Klik nama tampilan ruang bersih data yang berisi template kueri.
Di ruang bersih, buka tab Templates.
Di baris untuk template yang ingin Anda perbarui, klik Tindakan > Edit template.
Perbarui deskripsi dan kontak utama sesuai kebutuhan.
- Klik Berikutnya.
- Tinjau template kueri, lalu klik Simpan untuk menyimpan perubahan tanpa mengirimkan template untuk ditinjau.
API
Contoh berikut menunjukkan cara mengupdate template kueri dengan perintah curl: