Menghubungkan ke AlloyDB untuk PostgreSQL
Sebagai administrator BigQuery, Anda dapat membuat koneksi untuk mengakses data AlloyDB. Koneksi ini memungkinkan analis data membuat kueri data di AlloyDB.
Untuk terhubung ke AlloyDB, Anda harus melakukan langkah-langkah berikut:
Sebelum memulai
- Mengaktifkan BigQuery Connection API.
-
Untuk mendapatkan izin yang diperlukan untuk membuat koneksi AlloyDB, minta administrator untuk memberi Anda peran IAM BigQuery Connection Admin (
roles/bigquery.connectionAdmin
) pada project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat koneksi AlloyDB
Sebagai praktik terbaik, gunakan koneksi untuk menangani kredensial database saat Anda terhubung ke AlloyDB. Koneksi dienkripsi dan disimpan dengan aman di layanan koneksi BigQuery. Jika kredensial pengguna valid untuk data lain di sumber, Anda dapat menggunakan kembali koneksi. Misalnya, Anda dapat menggunakan satu koneksi untuk membuat kueri database yang sama di instance AlloyDB beberapa kali.
Pilih salah satu opsi berikut untuk membuat koneksi AlloyDB:
Konsol
Buka halaman BigQuery.
Di panel Penjelajah, klik
Tambahkan.Pada dialog Tambahkan, klik Koneksi ke sumber data eksternal:
Di dialog Sumber data eksternal, masukkan informasi berikut:
- Untuk Connection type, pilih AlloyDB.
- Untuk Connection ID, masukkan ID untuk resource koneksi. Huruf, angka, dan garis bawah diperbolehkan. Contoh,
bq_alloydb_connection
. - Untuk Lokasi data, pilih lokasi (atau region) BigQuery yang kompatibel dengan region sumber data eksternal Anda.
- Opsional: Untuk Nama yang cocok, masukkan nama yang mudah digunakan untuk
koneksi, seperti
My connection resource
. Nama yang cocok dapat berupa nilai apa pun yang membantu Anda mengidentifikasi resource koneksi jika perlu mengubahnya nanti. - Opsional: Untuk Description, masukkan deskripsi untuk resource koneksi ini.
- Opsional: Enkripsi Jika Anda ingin menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk mengenkripsi kredensial, pilih Kunci enkripsi yang dikelola pelanggan (CMEK), lalu pilih kunci yang dikelola pelanggan. Jika tidak, kredensial Anda akan dilindungi oleh kunci default milik Google dan dikelola Google.
- Untuk Nama database, masukkan nama database.
- Untuk Nama pengguna database, masukkan nama pengguna untuk database.
- Untuk Sandi database, masukkan sandi untuk database.
- Opsional: Untuk melihat sandi, klik Tampilkan sandi.
Untuk Instance AlloyDB, masukkan URI koneksi instance utama atau baca AlloyDB dengan awalan //alloydb.googleapis.com.
- Contoh URI:
//alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
- Contoh URI:
Klik Buat koneksi.
Klik Go to connection.
Di panel Connection Info, salin ID akun layanan untuk digunakan di langkah berikutnya guna memberikan izin IAM yang benar.
bq
Masukkan perintah bq mk
dengan flag berikut:
bq mk \
--connection \
--location=LOCATION \
--project_id=PROJECT_ID \
--connector_configuration '{
"connector_id": "google-alloydb",
"asset": {
"database": "DATABASE",
"google_cloud_resource": "RESOURCE_PATH"
},
"authentication": {
"username_password": {
"username": "USERNAME",
"password": {
"plaintext": "PASSWORD"
}
}
}
}' \
CONNECTION_ID
Ganti kode berikut:
LOCATION
: Tentukan region set data BigQuery yang akan digabungkan dengan data dari AlloyDB. Kueri yang menggunakan koneksi ini harus dijalankan dari region ini.PROJECT_ID
: Masukkan project ID Google Cloud Anda.DATABASE
: Masukkan nama database.RESOURCE_PATH
: Masukkan URI koneksi instance utama atau baca AlloyDB dengan awalan //alloydb.googleapis.com.- Contoh URI:
//alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
- Contoh URI:
USERNAME
: Masukkan nama pengguna database.PASSWORD
: Masukkan sandi pengguna database.CONNECTION_ID
: Masukkan ID koneksi untuk mengidentifikasi koneksi ini.
API
Dalam BigQuery Connection API, Anda dapat memanggil CreateConnection
dalam ConnectionService
untuk membuat instance koneksi. Lihat halaman library klien untuk detail selengkapnya.
Memberikan akses ke akun layanan
Akun layanan akan otomatis dibuat saat Anda membuat koneksi pertama dalam project. Nama akun layanan adalah BigQuery Connection Service Agent. ID akun layanan memiliki format berikut:
service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.
.
Untuk terhubung ke AlloyDB, Anda harus memberikan akses koneksi baru ke AlloyDB sehingga BigQuery dapat mengakses data atas nama pengguna. Akun layanan harus memiliki izin berikut:
alloydb.instances.connect
Anda dapat memberikan peran IAM Klien AlloyDB ke akun layanan yang terkait dengan koneksi, yang telah menetapkan izin ini. Anda dapat menghilangkan langkah ini jika akun layanan sudah memiliki izin yang diperlukan.
Konsol
Buka halaman IAM & Admin.
Klik
Berikan Akses.Dialog Tambahkan akun utama akan terbuka.
Di kolom Tambahkan akun utama, masukkan nama akun layanan Agen Layanan Koneksi BigQuery atau ID akun layanan yang diambil dari informasi koneksi.
Di kolom Select a role, pilih AlloyDB, lalu pilih AlloyDB Client.
Klik Simpan.
gcloud
Gunakan perintah gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/alloydb.client
Berikan nilai berikut:
PROJECT_ID
: ID project Google Cloud Anda.SERVICE_ACCOUNT_ID
: Ganti nomor project diservice-PROJECT_NUMBER@gcp-sa-bigqueryconnection.
dan gunakan.
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 Simpan.
bq
Gunakan perintah set-iam-policy
berikut:
bq set-iam-policy RESOURCE FILE_NAME
Ganti kode berikut:
RESOURCE
: Masukkan nama resource dalam formatproject_id.region.connection_id
atauregion.connection_id
.FILE_NAME
: Masukkan nama file yang berisi kebijakan IAM dalam format JSON.
Untuk informasi selengkapnya tentang perintah set-iam-policy, lihat Mengontrol akses ke resource dengan IAM.
API
Gunakan
metode projects.locations.connections.setIAM
di bagian referensi REST API Koneksi BigQuery dan
berikan instance resource policy
.
Langkah selanjutnya
- Pelajari berbagai jenis koneksi.
- Pelajari cara mengelola koneksi.
- Pelajari kueri gabungan.
- Pelajari cara membuat kueri data AlloyDB.