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. Jika pelanggan yang menjalankan kueri di ruang bersih diberi fleksibilitas yang lebih besar untuk menjelajahi data, pemilik data merasa ada risiko yang lebih tinggi terkait eksposur informasi sensitif yang tidak disengaja atau disengaja.
Menyederhanakan orientasi dan penggunaan bagi pengguna yang kurang paham teknologi. Banyak penyedia data mengharapkan pelanggan ruang bersih kurang mahir secara teknis, terutama dalam menulis kueri SQL yang berfokus pada privasi dan memahami cara mengalokasikan anggaran privasi dengan tepat.
Menjamin hasil analisis yang konsisten untuk pelanggan data. Akan menjadi lebih sulit untuk menerapkan aturan analisis data tertentu dan memverifikasi kepatuhan terhadap peraturan privasi jika tidak ada cara untuk mengontrol kueri yang dijalankan di ruang bersih data.
Dengan template kueri, pemilik dan kontributor data dapat membuat kueri yang telah ditentukan sebelumnya dan disetujui yang secara khusus disesuaikan dengan kasus penggunaan ruang bersih data, dan memublikasikan kueri ini untuk digunakan oleh pelanggan. Kueri yang telah ditentukan sebelumnya menggunakan fungsi bernilai tabel (TVF) di BigQuery untuk memungkinkan seluruh tabel atau kolom tertentu diteruskan sebagai parameter input dan menampilkan tabel sebagai output.
Batasan
- Template kueri hanya mendukung maksimum dua referensi data—yaitu, data yang digunakan untuk menentukan kueri TVF dan input parameter data yang diterima oleh
TVF.
- Beberapa tabel atau tampilan dapat dirujuk dalam definisi kueri TVF, tetapi semuanya harus dimiliki oleh pemilik data atau pihak yang sama.
- TVF template kueri hanya mendukung jenis tetap
TABLE
danVIEW
. - 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:
-
Analytics Hub Publisher (
roles/analyticshub.publisher
) di project -
Pelanggan Analytics Hub (
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 -
Pelanggan Analytics Hub (
roles/analyticshub.subscriber
) di project
-
Analytics Hub Publisher (
-
Buat template kueri:
-
Analytics Hub Publisher (
roles/analyticshub.publisher
) di project -
Pelanggan Analytics Hub (
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 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 cara memberikan 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, luaskan 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.create
dalam project -
bigquery.routines.update
dalam project -
bigquery.routines.delete
dalam project
-
-
Memberi otorisasi TVF:
bigquery.datasets.update
pada set data yang diakses oleh rutinitas -
Buat template kueri:
-
analyticshub.listings.subscribe
dalam project -
analyticshub.queryTemplates.create
dalam project
-
-
Menyetujui template kueri:
-
bigquery.routines.create
dalam project -
bigquery.datasets.update
pada set data yang diakses oleh rutinitas -
analyticshub.listings.create
dalam project -
analyticshub.queryTemplates.approve
dalam project
-
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 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 dapat digunakan. Peran ini setara dengan salah satu peran 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 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 Template.
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 FUNCTION
yang 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 { name: "query_template1", display_name: "query_template1", 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.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 Template.
Di baris untuk template yang ingin Anda perbarui, klik Tindakan > Edit template.
Perbarui detail template dan definisi kueri 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
:
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=display_name -d 'query_template { display_name: "query_template1" }'
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.QUERY_TEMPLATE_ID
: ID template kueri.
Mengirim template kueri untuk ditinjau
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 Template.
Di baris untuk template yang ingin Anda kirim untuk ditinjau, klik Tindakan > Kirim untuk ditinjau. Templat kini memiliki status Perlu ditinjau.
API
Contoh berikut menunjukkan cara mengirimkan template kueri untuk ditinjau 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/QUERY_TEMPLATE_ID:submit
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.QUERY_TEMPLATE_ID
: ID template kueri.
Menghapus template kueri
Anda hanya dapat menghapus template kueri jika statusnya DRAF. Jika template kueri telah dikirim untuk ditinjau, Anda tidak dapat lagi menghapusnya.
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 Template.
Di baris untuk template yang ingin Anda hapus, klik Tindakan > Hapus template.
API
Contoh berikut menunjukkan cara menghapus 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 DELETE https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID
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.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), template kueri hanya dapat disetujui oleh pemilik data tersebut. Jika Anda membuat TVF yang hanya mereferensikan data Anda (untuk berbagi dalam satu arah), Anda dapat menyetujui sendiri template kueri.
Menyetujui 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 Template.
Di baris untuk template yang memerlukan peninjauan Anda, klik Status Persetujuan > Perlu peninjauan.
Klik Approve.
Pilih lokasi template. Lokasi ini adalah tempat TVF dibuat untuk dibagikan.
Tinjau template kueri yang diusulkan.
Klik Setujui jika template kueri disetujui untuk digunakan dalam ruang bersih.
API
Buat rutinitas dari template kueri menggunakan panggilan
jobserver.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 project tempat rutin dibuat.ROUTINE_CREATION_QUERY
: kueri untuk membuat rutin.
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/tables/ROUTINE_ID"}],},"displayName":"LISTING_NAME"}'
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.LISTING_ID
: ID listingan.PROJECT_ID
: project ID project tempat set data sumber berada.DATASET_ID
: ID set data sumber.ROUTINE_ID
: ID rutinitas.LISTING_NAME
: nama listingan.
Perbarui status template kueri menjadi
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 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 cara berikut:
- Jangan menyetujui ulasan template kueri yang dikirimkan.
- Hapus template kueri untuk menghapusnya dari ruang bersih.
Alur kerja pelanggan template
Pelanggan template kueri dapat melihat dan berlangganan ruang bersih data. Jika hanya template kueri yang ditambahkan ke ruang bersih, berlangganan ruang bersih hanya memberikan akses ke TVF yang sesuai, bukan ke data bersama yang mendasarinya.
Berlangganan template kueri
Pilih salah satu opsi berikut:
Konsol
Anda berlangganan template kueri dengan berlangganan ruang bersih data. Akses diberikan ke semua listingan yang menonaktifkan setelan Kecualikan akses ke listingan dari set data tertaut.
Untuk berlangganan template kueri, ikuti langkah-langkah berikut:
Buka halaman BigQuery.
Buka set data tertaut yang Anda buat saat berlangganan ruang bersih.
Buka rutin atau TVF yang dibagikan di 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 mengkueri TVF secara langsung di set data tertaut:
SELECT * FROM `myproject.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 project tempat ruang bersih data dibuat.LOCATION
: lokasi ruang bersih data.CLEAN_ROOM_ID
: ID ruang bersih data.SUBSCRIBER_PROJECT_ID
: project ID project pelanggan.SUBSCRIPTION
: nama langganan Anda.
Setelah berlangganan template kueri, Anda dapat membuat kueri TVF langsung di set data yang ditautkan:
SELECT * FROM `myproject.dcr_linked_dataset.mytvf`(TABLE myTable);
Contoh skenario
Template kueri dapat digunakan untuk memfasilitasi berbagai bentuk kolaborasi data dalam ruang bersih data. Bagian berikut menjelaskan contoh skenario.
Skenario berbagi satu arah
Penerbit data membuat template kueri untuk memverifikasi bahwa partner yang berlangganan hanya dapat menjalankan kueri yang ditentukan oleh penerbit. Pada akhirnya, pembuat template kueri menyetujui sendiri template kueri, karena tidak ada kontributor lain yang ditambahkan ke clean room.
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 untuk memverifikasi bahwa hanya skema metadata yang terlihat dan pelanggan tidak dapat mengakses data sumber. Pengguna A kemudian membuat template kueri
dengan menentukan fungsi bernilai tabel dari tabel campaigns
, membatasi semua
pelanggan set data tertaut agar hanya menjalankan TVF.
Berikut adalah sintaksis TVF:
campaigns_template(t1 TABLE campaign_ID <STRING> ) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, sum(impressions) FROM myproject.my_campaign.campaigns
group by company_id, company
);
Karena pengguna A memiliki izin yang sesuai untuk tabel kampanye dengan peran BigQuery Data Owner, pengguna A dapat langsung menyetujui sendiri template kueri setelah mengirimkannya untuk ditinjau.
Berbagi kolaborasi banyak pihak
Pemilik ruang bersih mengundang kontributor tepercaya untuk mengajukan kueri yang akan dijalankan terhadap data masing-masing. Kedua pihak dapat mengajukan kueri dengan aman dengan melihat skema metadata saja, tanpa mengakses data bersama yang mendasarinya. Jika definisi kueri mereferensikan data yang bukan milik pengusul template, template hanya dapat disetujui oleh pemilik data tersebut.
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 dan tidak memiliki tabel campaigns
, setelah template kueri dikirimkan untuk disetujui, hanya pengguna A yang dapat menyetujui. Untuk menggunakan template kueri, pengguna B harus berlangganan ruang bersih dan memanggil TVF. Pengguna B
meneruskan tabelnya sendiri dengan kolom bernama campaign_ID
sebagai parameter tabel,
dan dia dapat menjalankan SQL pribadi yang ditentukan dalam template kueri. Perlu
dicatat di sini bahwa 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 untuk memverifikasi bahwa hanya skema metadata yang terlihat dan pelanggan tidak dapat mengakses data sumber.
Pengguna A kini dapat menyarankan berbagai template kueri untuk menggabungkan datanya sendiri ke tabel transaksi 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 myproject.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 dan tidak memiliki tabel transactions
dan products
, setelah template kueri dikirimkan untuk disetujui, hanya pengguna B yang dapat menyetujui. Untuk menggunakan template kueri, pengguna A harus berlangganan clean room dan memanggil TVF. Pengguna A meneruskan tabelnya sendiri dengan kolom bernama user_ID
sebagai parameter tabel, dan dia dapat menjalankan SQL privasi yang ditentukan dalam
template kueri. Perlu dicatat di sini bahwa pengguna A tidak perlu menambahkan
datanya ke ruang bersih.
Harga
Kontributor data yang menggunakan template kueri hanya dikenai biaya untuk penyimpanan data.
Pelanggan yang menggunakan template kueri hanya dikenai biaya untuk komputasi (analisis) saat menjalankan kueri.
Langkah berikutnya
- Untuk mempelajari ruang bersih data lebih lanjut, lihat Membagikan data sensitif dengan ruang bersih data.
- Untuk mempelajari langganan lebih lanjut, lihat Berlangganan ruang bersih data.
- Untuk mempelajari TVF lebih lanjut, lihat Fungsi tabel.
- Untuk mempelajari lebih lanjut traffic keluar data, lihat Opsi traffic keluar data (khusus set data bersama BigQuery).