Membuat dan menyiapkan koneksi resource Cloud
Sebagai administrator BigQuery, Anda dapat membuat koneksi resource Cloud yang memungkinkan analis data melakukan tugas-tugas berikut:
- Membuat kueri data Cloud Storage terstruktur menggunakan tabel BigLake. Tabel BigLake memungkinkan Anda membuat kueri data eksternal dengan delegasi akses.
- Membuat kueri data tidak terstruktur di Cloud Storage menggunakan tabel objek.
- Menerapkan fungsi jarak jauh dengan semua bahasa yang didukung di Cloud Functions atau Cloud Run.
Untuk informasi selengkapnya tentang koneksi, lihat Pengantar koneksi.
Sebelum memulai
Mengaktifkan BigQuery Connection API.
-
Untuk mendapatkan izin yang Anda perlukan guna membuat koneksi Resource Cloud, minta administrator Anda untuk memberi Anda peran IAM berikut:
-
BigQuery Connection Admin (
roles/bigquery.connectionAdmin
) di project -
Storage Viewer (
roles/storage.viewer
) di bucket
Untuk informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Jika Anda ingin membuat kueri data terstruktur menggunakan tabel BigLake berdasarkan Cloud Storage atau data tidak terstruktur menggunakan tabel objek, akun layanan yang terkait dengan koneksi juga harus memiliki peran Storage Viewer (roles/storage.viewer
) di bucket yang berisi data eksternal.
-
BigQuery Connection Admin (
- Pastikan versi Google Cloud SDK Anda adalah 366.0.0 atau yang lebih baru:
gcloud version
Jika perlu, update Google Cloud SDK.
- Opsional: Untuk Terraform, gunakan Terraform GCP versi 4.25.0 atau yang lebih baru. Anda dapat mendownload versi terbaru dari download HashiCorp Terraform.
Pertimbangan lokasi
Saat Anda menggunakan Cloud Storage untuk menyimpan file data, sebaiknya gunakan bucket single-region atau dual-region Cloud Storage untuk performa yang optimal, bukan bucket multi-region.
Membuat koneksi resource Cloud
BigLake menggunakan koneksi untuk mengakses Cloud Storage. Anda dapat menggunakan koneksi ini dengan satu tabel atau sekelompok tabel.
Pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Untuk membuat koneksi, klik
Add, lalu klik Connections to external data sources.Dalam daftar Connection type, pilih Vertex AI remote models, remote functions and BigLake (Cloud Resource).
Di kolom Connection ID, masukkan nama untuk koneksi Anda.
Klik Create connection.
Klik Go to connection.
Di panel Connection info, salin ID akun layanan untuk digunakan di langkah berikutnya.
bq
Di lingkungan command line, buat koneksi:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
Parameter
--project_id
akan mengganti project default.Ganti kode berikut:
REGION
: region koneksi AndaPROJECT_ID
: project ID Google Cloud AndaCONNECTION_ID
: ID untuk koneksi Anda
Saat Anda membuat resource koneksi, BigQuery akan membuat akun layanan sistem unik dan mengaitkannya dengan koneksi.
Pemecahan masalah: Jika Anda mendapatkan error koneksi berikut, update Google Cloud SDK:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Ambil dan salin ID akun layanan untuk digunakan di langkah berikutnya:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
Outputnya mirip dengan hal berikut ini:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
Tambahkan bagian berikut ke dalam file main.tf
Anda.
## This creates a cloud resource connection. ## Note: The cloud resource nested object has only one output only field - serviceAccountId. resource "google_bigquery_connection" "connection" { connection_id = "CONNECTION_ID" project = "PROJECT_ID" location = "REGION" cloud_resource {} }Ganti kode berikut:
CONNECTION_ID
: ID untuk koneksi AndaPROJECT_ID
: project ID Google Cloud AndaREGION
: region koneksi Anda
Memberikan akses ke akun layanan
Jika ingin membuat fungsi jarak jauh, Anda harus memberikan peran yang diperlukan ke Cloud Functions atau Cloud Run.
Jika ingin terhubung ke Cloud Storage, Anda harus memberikan akses hanya baca ke Cloud Storage kepada koneksi baru tersebut, sehingga BigQuery dapat mengakses file atas nama pengguna.
Pilih salah satu opsi berikut:
Konsol
Sebaiknya Anda memberikan peran IAM Storage Object Viewer
(roles/storage.objectViewer
) ke akun layanan resource koneksi, yang memungkinkan akun layanan mengakses
bucket Cloud Storage.
Buka halaman IAM & Admin.
Klik
Add.Dialog Add principals akan terbuka.
Di kolom New principals, masukkan ID akun layanan yang Anda salin sebelumnya.
Di kolom Select a role, pilih Cloud Storage, lalu pilih Storage Object Viewer.
Klik Save.
gsutil
Gunakan perintah gsutil iam ch
:
gsutil iam ch serviceAccount:MEMBER:objectViewer gs://example-bucket
Ganti MEMBER
dengan ID akun layanan yang Anda
salin sebelumnya.
Untuk informasi selengkapnya, lihat Menambahkan akun utama ke kebijakan tingkat bucket.
Terraform
Tambahkan bagian berikut ke file main.tf
Anda.
## This grants permissions to the service account of the connection created in the last step. resource "google_project_iam_member" "connectionPermissionGrant" { project = "PROJECT_ID" role = "roles/storage.objectViewer" member = format("serviceAccount:%s", google_bigquery_connection.connection.cloud_resource[0].service_account_id) }
Berbagi koneksi dengan pengguna
Anda dapat memberikan peran berikut untuk mengizinkan pengguna membuat kueri data dan mengelola koneksi:
roles/bigquery.connectionUser
: memungkinkan pengguna menggunakan koneksi untuk terhubung dengan sumber data eksternal dan menjalankan kueri pada sumber data tersebut.roles/bigquery.connectionAdmin
: memungkinkan pengguna mengelola koneksi.
Untuk informasi selengkapnya tentang peran dan izin IAM di BigQuery, baca Peran dan izin bawaan.
Pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Koneksi dicantumkan dalam project Anda, dalam grup yang disebut Koneksi eksternal.
Di panel Penjelajah, klik nama project Anda > Koneksi eksternal > koneksi.
Di panel Detail, klik Bagikan untuk membagikan koneksi. Kemudian, lakukan hal berikut:
Dalam dialog Izin koneksi, bagikan koneksi dengan akun utama lain dengan menambahkan atau mengedit akun utama.
Klik Save.
bq
Anda tidak dapat berbagi koneksi dengan alat command line bq. Untuk berbagi koneksi, gunakan konsol Google Cloud atau metode BigQuery Connections API untuk melakukannya.
API
Gunakan
metode projects.locations.connections.setIAM
di bagian referensi REST API Koneksi BigQuery, dan
berikan instance resource policy
.
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.
Langkah selanjutnya
- Pelajari berbagai jenis koneksi.
- Pelajari cara mengelola koneksi.
- Pelajari tabel BigLake.
- Pelajari cara membuat tabel BigLake.
- Pelajari cara mengupgrade tabel eksternal ke tabel BigLake.
- Pelajari tabel objek dan cara membuatnya.
- Pelajari cara menerapkan fungsi jarak jauh.