Halaman ini memberikan ringkasan PGAdapter. Untuk mempelajari cara memulai PGAdapter, lihat Memulai PGAdapter.
PGAdapter adalah proxy sidecar yang merupakan aplikasi kecil yang berjalan
bersama aplikasi utama Anda untuk mendukung komunikasi antara
antarmuka PostgreSQL untuk Spanner dan Spanner.
Untuk aplikasi Java, Anda bahkan dapat menautkan PGAdapter ke aplikasi
secara langsung tanpa harus menjalankannya dalam proses terpisah. PGAdapter
dirancang untuk berjalan di mesin yang sama dengan aplikasi dan mengekspos
endpoint di localhost yang mendukung protokol wire PostgreSQL. Fungsi ini
menerjemahkan protokol wire PostgreSQL ke dalam protokol wire
Spanner, gRPC. Dengan proxy ini berjalan secara lokal, klien PostgreSQL
seperti psql
dapat terhubung ke database Spanner
dialek PostgreSQL.
PGAdapter menambahkan, paling banyak, overhead latensi 0,2 md. Antarmuka PostgreSQL memiliki tingkat latensi yang sama dengan GoogleSQL.
Diagram berikut menunjukkan cara psql
terhubung ke Spanner melalui
PGAdapter.
PGAdapter mendukung mode kueri dasar dan yang diperluas, serta mendukung jenis data apa pun yang didukung antarmuka PostgreSQL untuk Spanner.
Lingkungan eksekusi PGAdapter
Anda dapat menjalankan PGAdapter menggunakan salah satu metode berikut:
- Mandiri: PGAdapter disediakan sebagai file JAR dan berjalan secara mandiri di JVM.
- Docker. PGAdapter juga dikemas sebagai image Docker.
- Cloud Run: PGAdapter dapat di-deploy sebagai proxy sidecar di Cloud Run.
- Proxy sidecar: penggunaan umum sebagai proxy sidecar berada di cluster Kubernetes.
- Dalam proses: kode aplikasi Java Anda dapat menggunakan file JAR yang disediakan untuk membuat dan memulai instance PGAdapter.
Untuk mengetahui detail tentang metode ini, lihat Memulai PGAdapter.
Otorisasi dengan PGAdapter
PGAdapter menentukan akun layanan atau akun utama Identity and Access Management (IAM) lainnya yang akan digunakan untuk koneksi dengan memeriksa kredensial yang Anda tentukan saat memulainya. Izin IAM yang diberikan kepada akun utama tersebut menentukan izin yang dimiliki aplikasi penghubung pada database.
Saat kontrol akses terperinci digunakan, Anda dapat menentukan
peran database secara opsional saat memulai PGAdapter. Jika Anda menentukan peran database,
PGAdapter akan menggunakan kontrol akses terperinci saat mengirim permintaan untuk kueri
dan pernyataan DML. Tindakan ini memerlukan izin IAM
spanner.databases.useRoleBasedAccess
dan, untuk peran database selain
public
, izin spanner.databaseRoles.use
. Hak istimewa yang diberikan ke
peran database menentukan operasi yang dapat dilakukan aplikasi yang menghubungkan. Jika Anda tidak menentukan peran database, izin level database yang diberikan ke akun utama IAM akan digunakan. Untuk menjalankan pernyataan DDL, akun utama harus memiliki
izin spanner.databases.updateDdl
.
Untuk mengetahui informasi selengkapnya, lihat Tentang kontrol akses terperinci dan Kontrol akses dengan IAM.
Langkah selanjutnya
- Memulai PGAdapter
- Pelajari repositori GitHub PGAdapter lebih lanjut.
- Pelajari lebih lanjut driver dan ORM PostgreSQL untuk tabel driver dan ORM PostgreSQL yang didukung PGAdapter.