Ringkasan PGAdapter

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.

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