Antarmuka yang tersedia
Anda dapat menggunakan salah satu dari beberapa antarmuka terprogram saat berinteraksi dengan Spanner. Berikut ini antarmuka yang tersedia, sesuai urutan kami merekomendasikan untuk menggunakannya:
- Library klien: Library klien Spanner tersedia dalam beberapa bahasa dan di-build di gRPC. Library klien ini menyediakan lapisan abstraksi di atas gRPC dan menangani detail pengelolaan sesi, eksekusi transaksi, percobaan ulang, dan lainnya.
- Driver ORM dan framework: Google mendukung driver Spanner open source untuk beberapa library pemetaan relasional objek (ORM) dan framework, seperti JDBC. Driver ini memungkinkan penggunaan database Spanner melalui API yang ditentukan oleh framework tersebut.
- RPC API: Jika library klien atau driver ORM tidak tersedia untuk bahasa pemrograman pilihan Anda, gunakan RPC API yang dibangun berdasarkan gRPC. gRPC menawarkan sejumlah manfaat performa dibandingkan dengan menggunakan REST API, termasuk mewakili objek dalam format buffering protokol (yang lebih cepat diproduksi dan digunakan dibandingkan dengan JSON) dan koneksi persisten (yang menghasilkan lebih sedikit overhead per permintaan). Baca selengkapnya tentang manfaat ini dan manfaat lainnya di Konsep gRPC.
- REST API: Jika Anda tidak dapat menggunakan library klien Spanner atau RPC API, gunakan REST API. Perlu diperhatikan bahwa beberapa fitur yang tersedia di RPC API tidak didukung di REST API, seperti yang didokumentasikan di bawah ini.
RPC versus REST API
Tabel ini membandingkan fitur Spanner yang tersedia melalui antarmuka RPC dan REST API-nya.
Fitur | Didukung di RPC API? | Didukung di REST API? |
---|---|---|
Membatalkan permintaan | Ya | Tidak |
Menetapkan batas waktu atau waktu tunggu pada permintaan | Ya | Tidak |
Mengirim permintaan streaming | Ya. lihat ExecuteStreamingSQL dan StreamingRead . |
Sebagian. Streaming HTTP didukung, tetapi kontrol alur tingkat aplikasi tidak didukung. |
Dukungan fitur library klien
Tabel berikut mencantumkan library klien, dengan memperhatikan fitur utama Spanner yang didukung oleh masing-masing library.