Antarmuka PostgreSQL

Antarmuka PostgreSQL untuk Spanner memungkinkan Anda memanfaatkan infrastruktur Spanner yang terkelola sepenuhnya, skalabel, dan sangat tersedia menggunakan alat dan sintaksis PostgreSQL yang familier. Halaman ini membantu Anda memahami kemampuan dan batasan antarmuka PostgreSQL.

Manfaat antarmuka PostgreSQL

  • Portabilitas: antarmuka PostgreSQL menyediakan akses ke berbagai fitur Spanner, menggunakan skema, kueri, dan klien yang kompatibel dengan PostgreSQL open source. Hal ini menyederhanakan pemindahan aplikasi yang dibangun di Spanner ke lingkungan PostgreSQL lain. Portabilitas ini memberikan fleksibilitas deployment dan mendukung skenario pemulihan dari bencana, seperti keluar dari kondisi tertekan.
  • Familiaritas: jika Anda sudah menggunakan PostgreSQL, Anda dapat mulai menggunakan Spanner dengan cepat menggunakan banyak pernyataan dan alat PostgreSQL yang sama. Menggunakan PostgreSQL di seluruh portofolio database Anda berarti lebih sedikit variasi antara produk tertentu dan serangkaian praktik terbaik yang umum.
  • Spanner tanpa kompromi: karena dibangun di atas fondasi Spanner yang sudah ada, antarmuka PostgreSQL memberikan semua manfaat ketersediaan, konsistensi, dan rasio harga-performa Spanner yang sudah ada tanpa harus mengorbankan salah satu kemampuan yang tersedia di ekosistem GoogleSQL pelengkap.

Fitur PostgreSQL yang tidak didukung di Spanner

Penting untuk dipahami bahwa antarmuka PostgreSQL menyediakan kemampuan Spanner melalui skema, jenis, kueri, dan klien yang kompatibel dengan PostgreSQL. Fitur ini tidak mendukung semua fitur PostgreSQL. Memigrasikan aplikasi PostgreSQL yang ada ke Spanner, bahkan menggunakan antarmuka PostgreSQL untuk Spanner, kemungkinan memerlukan beberapa pengerjaan ulang untuk mengakomodasi kemampuan PostgreSQL yang tidak didukung atau perbedaan perilaku, seperti pengoptimalan kueri atau desain kunci utama. Namun, setelah dimigrasikan, workload Anda dapat memanfaatkan keandalan Spanner dan kemampuan multi-model yang unik.

Daftar berikut memberikan informasi selengkapnya tentang fitur PostgreSQL yang didukung dan tidak didukung:

  • Fungsi PostgreSQL yang didukung: antarmuka PostgreSQL mendukung banyak fitur PostgreSQL yang paling umum digunakan. Hal ini mencakup bagian inti dari skema dan sistem jenis, banyak bentuk kueri umum, berbagai fungsi dan operator, serta aspek utama katalog sistem PostgreSQL. Aplikasi dapat menggunakan banyak klien PostgreSQL dengan terhubung melalui penerapan protokol wire PostgreSQL Spanner.
  • Beberapa fitur bahasa PostgreSQL tidak didukung: ekstensi, jenis data yang ditentukan pengguna, prosedur tersimpan yang ditentukan pengguna, dan fitur lainnya tidak didukung. Untuk daftar lengkapnya, lihat Bahasa PostgreSQL di Spanner. Ada juga beberapa fitur di PostgreSQL yang berperilaku berbeda dari PostgreSQL open source. Untuk mengetahui informasi selengkapnya, lihat Masalah umum di antarmuka PostgreSQL untuk Spanner.
  • Bidang kontrol Spanner: database dengan antarmuka PostgreSQL menggunakan Spanner dan Google Cloud alat untuk menyediakan, mengamankan, memantau, dan mengoptimalkan instance. Spanner tidak mendukung alat, seperti pgAdmin untuk aktivitas administratif.
  • Dukungan protokol kabel dan klien: Spanner mendukung kemampuan kueri inti protokol kabel PostgreSQL menggunakan PGAdapter, proxy ringan yang berjalan bersama aplikasi Anda. Dengan demikian, banyak klien Spanner dapat berfungsi sebagaimana adanya dengan database antarmuka Spanner PostgreSQL, sekaligus memanfaatkan pengelolaan koneksi dan endpoint global serta autentikasi IAM Spanner. Tolok ukur internal Google menunjukkan bahwa PGAdapter tidak menambahkan latensi tambahan yang signifikan dibandingkan dengan koneksi langsung ke endpoint bawaan Spanner.

Administrasi dan Pengelolaan

Antarmuka PostgreSQL mendukung administrasi dan pengelolaan database Spanner Anda dengan fitur berikut:

  • Pengalaman terpadu: sediakan, kelola, dan pantau database yang kompatibel dengan antarmuka PostgreSQL menggunakan konsol, API, dan alat Spanner yang ada seperti Google Cloud CLI.
  • Konfigurasi fleksibel: mengonfigurasi antarmuka PostgreSQL per database pada waktu pembuatan. Satu instance Spanner dapat mengakomodasi database antarmuka GoogleSQL dan PostgreSQL.
  • Manfaat bersama: kedua dialek database menggunakan mesin database terdistribusi yang sama, sehingga memastikan skalabilitas, konsistensi, performa, dan keamanan yang konsisten.

Fitur

Antarmuka PostgreSQL Spanner menawarkan dua fitur utama yang memungkinkan integrasi dengan ekosistem PostgreSQL:

  • Dukungan dialek PostgreSQL

    Spanner menyediakan subset dialek SQL PostgreSQL, termasuk Bahasa Kueri Data (DQL), Bahasa Pengolahan Data (DML), dan Bahasa Definisi Data (DDL). Selain itu, library ini mencakup ekstensi untuk mendukung fitur khusus Spanner seperti tabel berselang-seling, time to live (TTL), dan petunjuk kueri.

    Untuk mengetahui informasi mendetail tentang elemen bahasa PostgreSQL yang didukung, lihat Bahasa PostgreSQL di Spanner. Untuk memahami cara menggunakan fitur Spanner dengan dialek PostgreSQL, lihat dokumentasi untuk fitur tertentu.

  • Dukungan klien PostgreSQL

    Spanner memungkinkan Anda terhubung ke database dari berbagai klien:

    • Alat ekosistem PostgreSQL: Anda dapat menggunakan alat yang sudah dikenal seperti driver JDBC PostgreSQL dan driver pgx PostgreSQL untuk menghubungkan aplikasi Anda ke database antarmuka PostgreSQL. Untuk daftar driver, ORM, dan alat yang didukung, lihat Driver dan ORM PostgreSQL.

    • Alat command line psql: lingkungan interaktif psql yang populer didukung, sehingga Anda dapat menjalankan kueri, menjelajahi metadata, dan memuat data langsung dari terminal.

    • PGAdapter: proxy ringan ini menyederhanakan pengelolaan koneksi dan autentikasi. Untuk mengetahui detail selengkapnya, lihat ringkasan PGAdapter.

    • Klien Spanner: Spanner menyediakan klien Spanner open source untuk berbagai bahasa pemrograman (Java, Go, Python, Node.js, Ruby, PHP, C#, C++), beserta driver JDBC Spanner dan driver untuk paket SQL Go. Klien Spanner terhubung langsung ke endpoint global Spanner tanpa proxy. Namun, klien Spanner tidak menawarkan kompatibilitas dengan klien, ORM, atau alat PostgreSQL yang ada.

Praktik terbaik untuk menggunakan antarmuka PostgreSQL

Gunakan praktik terbaik berikut saat menggunakan antarmuka PostgreSQL:

  1. Hubungkan aplikasi Anda: gunakan kumpulan alat PostgreSQL yang didukung untuk konektivitas yang efisien.
  2. Berinteraksi dengan database Anda: untuk pekerjaan interaktif, pilih salah satu opsi berikut:

Langkah berikutnya