Menggunakan template kueri
Template kueri ruang bersih data BigQuery memungkinkan pemilik dan kontributor data memublikasikan kueri yang disetujui untuk pelanggan. Menentukan kueri ini sebelumnya akan meminimalkan risiko pemindahan data yang tidak sah, memastikan hasil analisis yang konsisten, dan menyederhanakan orientasi bagi analis yang tidak terbiasa dengan SQL yang berfokus pada privasi.
Template kueri menggunakan fungsi bernilai tabel (TVF) untuk menerima tabel atau kolom tertentu sebagai parameter dan menampilkan hasil tanpa mengekspos data mentah.
Batasan
Template kueri memiliki batasan berikut:
- Template kueri mendukung maksimum dua referensi data—yaitu, data yang digunakan untuk menentukan kueri TVF dan input parameter data yang diterima TVF. Anda dapat mereferensikan beberapa tabel atau tampilan 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 dengan TVF.
Peran
Ada tiga peran utama untuk menggunakan template kueri ruang bersih data. Setiap peran memiliki alur kerja tertentu, yang dijelaskan dalam dokumen ini:
Pembuat template: pengguna yang menentukan kueri yang akan dijalankan dalam ruang bersih. Peran ini setara dengan salah satu peran Identity and Access Management (IAM) berikut: Admin Analytics Hub, Penayang Analytics Hub, atau Admin Listingan Analytics Hub. Untuk mengetahui informasi selengkapnya, lihat Alur kerja pembuat template.
Template approver: pemilik data yang harus menyetujui referensi template kueri sebelum template tersedia untuk digunakan. Peran ini mirip 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 ke ruang bersih dan hanya dapat menjalankan kueri yang disetujui dalam template. Peran ini mirip dengan peran IAM Pelanggan Analytics Hub. Untuk mengetahui informasi selengkapnya, lihat Alur kerja pelanggan template.
Sebelum memulai
Untuk mengaktifkan Analytics Hub API untuk project Google Cloud Anda, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Analytics Hub API.
Di toolbar konsol Google Cloud , pilih project Anda.
Jika API belum diaktifkan, klik Enable.
gcloud
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:
- Analytics Hub Publisher (
roles/analyticshub.publisher) di project - Analytics Hub Subscriber (
roles/analyticshub.subscriber) di project
- Analytics Hub Publisher (
-
Memberi otorisasi TVF:
BigQuery Data Owner (
roles/bigquery.dataOwner) di project -
Menambahkan, memperbarui, atau menghapus listingan TVF di ruang bersih data:
- Analytics Hub Publisher (
roles/analyticshub.publisher) di project - Analytics Hub Subscriber (
roles/analyticshub.subscriber) di project
- Analytics Hub Publisher (
-
Buat template kueri:
- Analytics Hub Publisher (
roles/analyticshub.publisher) di project - Analytics Hub Subscriber (
roles/analyticshub.subscriber) di project
- Analytics Hub Publisher (
-
Menyetujui template kueri:
- Analytics Hub Publisher (
roles/analyticshub.publisher) di project - BigQuery Data Owner (
roles/bigquery.dataOwner) di project
- Analytics Hub Publisher (
-
Berlangganan ke ruang bersih data dengan template kueri:
- Analytics Hub Subscriber (
roles/analyticshub.subscriber) di project - Pemilik Langganan Analytics Hub (
roles/analyticshub.subscriptionOwner) di project tempat Anda ingin berlangganan ke ruang bersih data
- Analytics Hub Subscriber (
-
Jalankan kueri yang ditentukan dalam template kueri:
- BigQuery Data Viewer (
roles/bigquery.dataViewer) di project - BigQuery User (
roles/bigquery.user) di project
- BigQuery Data Viewer (
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran yang telah ditetapkan 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
-
-
Memberikan otorisasi TVF:
bigquery.datasets.updatepada set data yang diakses 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 rutinitas -
analyticshub.listings.createdalam project -
analyticshub.queryTemplates.approvedalam project
-
-
Memperbarui 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.listpada pertukaran data -
Menghapus template kueri:
analyticshub.queryTemplates.deletepada template kueri
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Alur kerja pembuat template
Sebagai pembuat template kueri, Anda dapat melakukan hal berikut:
- Menambahkan listingan ke ruang bersih data.
- Menambahkan TVF yang ada ke ruang bersih data.
- Buat template kueri.
- Memperbarui template kueri.
- Kirim template kueri untuk ditinjau.
- Menghapus 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:
Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).
Klik nama tampilan ruang bersih data tempat Anda ingin membuat template kueri.
Klik Add 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 egress 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 Exclude access to listing from linked dataset.
Tinjau detail listingan.
Klik Tambahkan data. Ruang bersih kini menyertakan metadata tampilan yang Anda buat untuk data Anda.
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/routines/ROUTINE_ID"}]},"displayName":"LISTING_NAME"}'
Ganti kode berikut:
DCR_PROJECT_ID: project ID dari project tempat ruang bersih data dibuat.LOCATION: lokasi ruang bersih data.CLEAN_ROOM_ID: ID ruang bersih data.LISTING_ID: ID listingan.PROJECT_ID: project ID dari project yang berisi set data sumber.DATASET_ID: ID set data sumber.ROUTINE_ID: ID rutinitas.LISTING_NAME: nama tampilan listingan.
Membuat template kueri
Untuk membuat template kueri, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).
Klik nama tampilan ruang bersih data tempat Anda ingin membuat template kueri.
Di ruang bersih, buka tab Template.
Klik Create Template.
Masukkan nama tampilan dan deskripsi template.
Klik Berikutnya.
Ajukan definisi kueri menggunakan skema tabel virtual yang ditambahkan ke ruang bersih:
- Tentukan kueri menggunakan sintaksis
CREATE TABLE FUNCTIONyang didukung. Teruskan seluruh tabel atau tampilan Anda 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, seperti
SELECT WITH AGGREGATION_THRESHOLD.
- Tentukan kueri menggunakan sintaksis
Tinjau detail template.
Untuk menyimpan template tanpa mengirimkannya untuk ditinjau, klik Simpan. Template kueri kini memiliki status DRAFT.
Anda dapat memperbarui template kueri atau mengirimkan template kueri untuk ditinjau.
API
Contoh berikut menunjukkan cara membuat template kueri 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/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID -d \ '{ "displayName": "DISPLAY_NAME", "routine": { "routineType": "TABLE_VALUED_FUNCTION", "definitionBody": "QUERY_TEMPLATE_ID(TVF arguments) AS (TVF_DEFINITION)" } }'
Ganti kode berikut:
DCR_PROJECT_ID: project ID dari project tempat ruang bersih data dibuat.LOCATION: lokasi ruang bersih data.CLEAN_ROOM_ID: ID ruang bersih data.QUERY_TEMPLATE_ID: ID template kueri.DISPLAY_NAME: nama tampilan template kueri. Anda tidak dapat memperbarui nama tampilan template kueri setelah membuat 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 dalam rutinitas berikut:
CREATE OR REPLACE TABLE FUNCTION APPROVERS_DATASET.query_template1(t1 TABLE, y INT64)
AS (SELECT * FROM t1 WHERE year > y)
Ganti APPROVERS_DATASET dengan ID set data tempat pemberi persetujuan template membuat rutinitas.
Anda dapat memperbarui template kueri atau mengirimkan template kueri untuk ditinjau.
Memperbarui template kueri
Anda hanya dapat memperbarui template kueri jika template tersebut dalam status DRAFT. Setelah mengirimkan template kueri untuk ditinjau, Anda tidak dapat lagi mengubahnya.
Untuk memperbarui template kueri, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).
Klik nama tampilan ruang bersih data yang berisi template kueri.
Di ruang bersih, buka tab Template.
Di baris template yang ingin Anda perbarui, klik Actions > Edit template.
Perbarui deskripsi dan kontak utama sesuai kebutuhan.
Klik Berikutnya.
Tinjau detail template.
Untuk menyimpan template tanpa mengirimkannya untuk ditinjau, klik Simpan.
API
Contoh berikut menunjukkan cara memperbarui template kueri 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 PATCH "https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID?updateMask=description" \ -d '{ "description": "New query template" }'
Ganti kode berikut:
DCR_PROJECT_ID: project ID dari project tempat ruang bersih data dibuat.LOCATION: lokasi ruang bersih data.CLEAN_ROOM_ID: ID ruang bersih data.QUERY_TEMPLATE_ID: ID template kueri.
Mengirimkan template kueri untuk ditinjau
Untuk mengirimkan template kueri untuk ditinjau, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).
Klik nama tampilan ruang bersih data yang berisi template kueri.
Di ruang bersih, buka tab Template.
Di baris template yang ingin Anda kirim untuk ditinjau, klik Tindakan > Kirim untuk ditinjau. Template kini memiliki status Requires review.
API
Contoh berikut menunjukkan cara mengirimkan template kueri untuk ditinjau 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/queryTemplates/QUERY_TEMPLATE_ID:submit
Ganti kode berikut:
DCR_PROJECT_ID: project ID dari project tempat ruang bersih data dibuat.LOCATION: lokasi ruang bersih data.CLEAN_ROOM_ID: ID ruang bersih data.QUERY_TEMPLATE_ID: ID template kueri.
Menghapus template kueri
Anda hanya dapat menghapus template kueri jika template tersebut dalam status DRAFT. Setelah mengirimkan template kueri untuk ditinjau, Anda tidak dapat lagi menghapusnya.
Untuk menghapus template kueri, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).
Klik nama tampilan ruang bersih data yang berisi template kueri.
Di ruang bersih, buka tab Template.
Di baris template yang ingin Anda hapus, klik Tindakan > Hapus template.
API
Contoh berikut menunjukkan cara menghapus template kueri 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 DELETE https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID
Ganti kode berikut:
DCR_PROJECT_ID: project ID dari project tempat ruang bersih data dibuat.LOCATION: lokasi ruang bersih data.CLEAN_ROOM_ID: ID ruang bersih data.QUERY_TEMPLATE_ID: ID template kueri.
Alur kerja pemberi persetujuan template
Sebagai pemberi persetujuan template kueri, Anda dapat menyetujui template kueri.
Jika TVF mereferensikan data yang bukan milik Anda—misalnya, data kontributor lain—hanya pemilik data tersebut yang dapat menyetujui template kueri. Jika Anda membuat TVF yang hanya mereferensikan data Anda untuk dibagikan dalam satu arah, Anda dapat menyetujui template kueri sendiri.
Menyetujui template kueri
Untuk menyetujui template kueri, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).
Klik nama tampilan ruang bersih data yang berisi template kueri.
Di ruang bersih, buka tab Template.
Di baris untuk template yang memerlukan peninjauan Anda, klik Status Persetujuan > Memerlukan peninjauan.
Klik Approve.
Pilih lokasi template. Lokasi ini adalah tempat TVF dibuat untuk dibagikan.
Tinjau template kueri yang diusulkan.
Untuk menyetujui template kueri agar dapat digunakan di ruang bersih data, klik Approve.
API
Buat rutinitas dari template kueri dengan memanggil metode
jobs.query:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://bigquery.googleapis.com/bigquery/v2/projects/ROUTINE_PROJECT_ID/queries --data '{"query":"ROUTINE_CREATION_QUERY","useLegacySql":false}'
Ganti kode berikut:
ROUTINE_PROJECT_ID: project ID dari project tempat rutinitas dibuat.ROUTINE_CREATION_QUERY: kueri untuk membuat rutinitas.
Tambahkan rutinitas yang Anda buat ke ruang bersih data:
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/routines/ROUTINE_ID"}]},"displayName":"LISTING_NAME"}'
Ganti kode berikut:
DCR_PROJECT_ID: project ID dari project tempat ruang bersih data dibuat.LOCATION: lokasi ruang bersih data.CLEAN_ROOM_ID: ID ruang bersih data.LISTING_ID: ID listingan.PROJECT_ID: project ID dari project yang berisi set data sumber.DATASET_ID: ID set data sumber.ROUTINE_ID: ID rutinitas.LISTING_NAME: nama tampilan listingan.
Perbarui status template kueri ke
APPROVED:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID:approve --data '{}'
Ganti kode berikut:
DCR_PROJECT_ID: project ID dari project tempat ruang bersih data dibuat.LOCATION: lokasi ruang bersih data.CLEAN_ROOM_ID: ID ruang bersih data.QUERY_TEMPLATE_ID: ID template kueri.
Menolak template kueri
Di konsol Google Cloud , Anda dapat menolak template kueri dengan tidak menyetujui template kueri yang dikirimkan yang sedang ditinjau.
Alur kerja pelanggan template
Pelanggan template kueri dapat melihat dan berlangganan ruang bersih data. Jika hanya template kueri yang ditambahkan ke ruang bersih, berlangganan ke ruang bersih hanya akan memberikan akses ke TVF yang sesuai, bukan ke data yang dibagikan yang mendasarinya.
Berlangganan ke template kueri
Untuk berlangganan template kueri, pilih salah satu opsi berikut:
Konsol
Anda berlangganan template kueri dengan berlangganan ruang bersih data. Berlangganan akan memberikan akses ke semua listingan yang setelan Exclude access to listing from linked dataset dinonaktifkan.
Setelah berlangganan ruang bersih data, ikuti langkah-langkah berikut untuk menjalankan template kueri:
Di konsol Google Cloud , buka halaman BigQuery.
Di panel Explorer, buka set data tertaut yang Anda buat saat berlangganan ruang bersih.
Buka rutinitas atau TVF yang dibagikan dalam set data tertaut.
Klik Invoke table function.
Ganti parameter dengan input yang diterima, yaitu nama tabel atau kolom.
Klik Run.
Jika Anda tidak dapat melihat TVF yang bertingkat sebagai elemen turunan dari set data tertaut di panel Explorer, Anda dapat membuat kueri TVF langsung pada set data tertaut:
SELECT * FROM `my_project.dcr_linked_dataset.mytvf`(TABLE myTable);
API
Gunakan
metode projects.locations.dataExchanges.subscribe.
Contoh berikut menunjukkan cara memanggil metode projects.locations.dataExchanges.subscribe menggunakan perintah curl:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID:subscribe --data '{"destination":"projects/SUBSCRIBER_PROJECT_ID/locations/LOCATION","subscription":"SUBSCRIPTION"}'
Ganti kode berikut:
DCR_PROJECT_ID: project ID dari project tempat ruang bersih data dibuat.LOCATION: lokasi ruang bersih data.CLEAN_ROOM_ID: ID ruang bersih data.SUBSCRIBER_PROJECT_ID: project ID dari project pelanggan template.SUBSCRIPTION: nama langganan Anda.
Setelah berlangganan template kueri, Anda dapat membuat kueri TVF langsung di set data tertaut:
SELECT * FROM `my_project.dcr_linked_dataset.mytvf`(TABLE myTable);
Contoh skenario
Anda dapat menggunakan template kueri untuk memfasilitasi berbagai bentuk kolaborasi data dalam ruang bersih data. Bagian berikut menjelaskan contoh skenario.
Skenario berbagi satu arah
Penayang data membuat template kueri sehingga partner yang berlangganan hanya dapat menjalankan kueri yang ditentukan oleh penayang. Pembuat template kueri menyetujui sendiri template kueri karena tidak ada kontributor lain yang ditambahkan ke ruang bersih.
Dalam skenario ini, pengguna A adalah pemilik ruang bersih data yang membuat ruang bersih
data bernama campaign_analysis dan menambahkan set data bernama my_campaign dengan
tabel campaigns. Pengguna A mengonfigurasi kebijakan nilai minimum agregasi dan
kontrol metadata sehingga hanya skema metadata yang terlihat dan pelanggan
template tidak dapat mengakses data sumber. Pengguna A kemudian membuat template kueri dengan menentukan TVF dari tabel campaigns, sehingga pelanggan set data tertaut hanya dapat menjalankan TVF.
Berikut adalah sintaksis TVF:
campaigns_template(t1 TABLE<campaign_ID STRING>) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, sum(impressions) FROM my_project.my_campaign.campaigns
group by company_id, company
);
Karena pengguna A memiliki izin yang sesuai untuk tabel campaigns dengan peran BigQuery Data Owner, pengguna A dapat langsung menyetujui sendiri template kueri setelah mengirimkannya untuk ditinjau.
Berbagi kolaborasi dengan beberapa pihak
Pemilik ruang bersih mengundang kontributor tepercaya untuk mengusulkan kueri yang akan dijalankan terhadap data satu sama lain. Kedua pihak dapat mengusulkan kueri dengan aman hanya dengan melihat skema metadata, tanpa mengakses data yang dibagikan yang mendasarinya. Jika definisi kueri mereferensikan data yang bukan milik pengusul template, hanya pemilik data tersebut yang dapat menyetujui template kueri.
Dalam skenario ini, pengguna A mengundang pengguna B, yang merupakan kontributor ruang bersih data,
ke ruang bersih campaign_analysis. Pengguna B ingin mengusulkan template kueri
untuk menggabungkan datanya sendiri ke tabel campaigns dengan melihat skema metadata
tabel.
Berikut adalah sintaksis TVF:
campaigns_template(t1 TABLE<campaign_ID STRING>) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, sum(impressions) FROM my_project.my_campaign.campaigns
group by company_id, company
);
Karena pengguna B tidak menambahkan atau tidak memiliki tabel campaigns, hanya pengguna A yang dapat
menyetujui template kueri setelah dikirim untuk ditinjau. Untuk menggunakan template kueri, pengguna B harus berlangganan ke ruang bersih dan memanggil TVF. Pengguna B
meneruskan tabelnya sendiri dengan kolom bernama campaign_ID sebagai parameter tabel,
dan mereka dapat menjalankan SQL yang berfokus pada privasi yang ditentukan dalam template kueri. Pengguna B tidak perlu menambahkan datanya ke ruang bersih.
Pengguna B juga menambahkan set data bernama my_transactions ke ruang bersih yang memiliki
tabel transactions dan tabel products. Pengguna B mengonfigurasi kebijakan nilai minimum agregasi dan kontrol metadata sehingga hanya skema metadata yang terlihat dan pelanggan template tidak dapat mengakses data sumber.
Pengguna A kini dapat mengusulkan berbagai template kueri untuk menggabungkan datanya sendiri ke tabel transactions dengan melihat skema metadata tabel. Berikut adalah
contoh sintaksis TVF:
transactions_template(t1 TABLE<user_ID STRING>) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, campaign_id, sku, category, date, sum(amount) FROM my_project.my_transactions.transactions
group by company_id, company, campaign_id, sku, category, date
);
transactions_template_with_join(t1 TABLE<user_ID STRING>) AS (
SELECT WITH AGGREGATION_THRESHOLD t.company_id, t.company, t.campaign_id, t.sku, t.date, p.product_name, p.product_category, sum(t.amount) FROM my_project.my_transactions.transactions t
left join my_project.my_transactions.products p
on t.product_id = p.product_id
group by t.company_id, t.company, t.campaign_id, t.sku, t.date, p.product_name, p.product_category
);
Karena pengguna A tidak menambahkan atau tidak memiliki tabel transactions dan products, hanya pengguna B yang dapat menyetujui template kueri setelah dikirimkan untuk ditinjau. Untuk menggunakan template kueri, pengguna A harus berlangganan ke ruang bersih
dan memanggil TVF. Pengguna A meneruskan tabelnya sendiri dengan kolom bernama user_ID
sebagai parameter tabel, dan mereka dapat menjalankan SQL yang berfokus pada privasi yang ditentukan dalam
template kueri. Pengguna A tidak perlu menambahkan datanya ke ruang bersih.
Harga
Tabel berikut merangkum harga untuk template kueri ruang bersih data BigQuery:
| Peran | Detail harga |
|---|---|
| Kontributor data | Hanya dikenai biaya untuk penyimpanan data. |
| Pelanggan template | Hanya dikenai biaya untuk komputasi (analisis) saat menjalankan kueri. |
Langkah berikutnya
- Untuk mempelajari lebih lanjut ruang pembersihan data, lihat Membagikan data sensitif dengan ruang pembersihan data.
- Untuk mempelajari langganan lebih lanjut, lihat Berlangganan ke ruang bersih data.
- Untuk mempelajari TVF lebih lanjut, lihat Fungsi tabel.
- Untuk mempelajari lebih lanjut traffic keluar data untuk set data bersama BigQuery, lihat Opsi traffic keluar data.