Ringkasan PGAdapter

PGAdapter menerjemahkan protokol wire PostgreSQL ke dalam protokol gRPC Spanner. Dengan begitu, Anda dapat menghubungkan aplikasi dan driver PostgreSQL ke antarmuka PostgreSQL Spanner untuk database Spanner dengan overhead latensi minimal.

Untuk mempelajari cara memulai PGAdapter, lihat Mulai PGAdapter.

Anda dapat menjalankan PGAdapter sebagai proxy sidecar bersama aplikasi utama atau, untuk aplikasi Java, secara langsung dalam proses di dalam JVM aplikasi. Dengan mengekspos endpoint di localhost yang mendukung protokol wire PostgreSQL, PGAdapter memungkinkan alat seperti psql untuk terhubung ke Spanner.

PGAdapter menambahkan overhead latensi paling banyak 0,2 md. Antarmuka PostgreSQL mempertahankan tingkat latensi yang sama dengan GoogleSQL.

Diagram berikut menunjukkan cara psql terhubung ke Spanner melalui PGAdapter. psql terhubung ke Spanner melalui PGAdapter.

PGAdapter mendukung mode kueri dasar dan lanjutan, serta semua jenis data yang didukung oleh antarmuka PostgreSQL untuk Spanner.

Driver dan ORM yang didukung

PGAdapter mendukung driver, ORM, dan alat klien PostgreSQL standar, termasuk:

Untuk matriks kompatibilitas lengkap, lihat Driver dan ORM PostgreSQL.

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 adalah 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 Mulai PGAdapter.

Otorisasi dengan PGAdapter

PGAdapter menentukan akun layanan atau akun utama Identity and Access Management (IAM) lainnya untuk koneksi dengan memeriksa kredensial yang Anda tentukan saat memulai proxy. Izin IAM yang diberikan kepada akun utama tersebut menentukan operasi database yang diizinkan.

Saat menggunakan kontrol akses terperinci, tentukan peran database saat memulai PGAdapter. PGAdapter menggunakan kontrol akses terperinci saat mengirim kueri dan pernyataan DML, yang memerlukan izin IAM spanner.databases.useRoleBasedAccess. Untuk peran database selain public, principal juga memerlukan izin spanner.databaseRoles.use. Hak istimewa yang diberikan ke peran database menentukan operasi yang dapat dilakukan oleh aplikasi yang terhubung. Jika Anda tidak menentukan peran database, izin yang diberikan kepada akun utama IAM akan berlaku. Untuk menjalankan pernyataan DDL, principal harus memiliki izin spanner.databases.updateDdl.

Untuk mengetahui informasi selengkapnya, lihat Tentang kontrol akses terperinci dan Kontrol akses dengan IAM.

Langkah berikutnya