Antarmuka yang tersedia
Anda dapat menggunakan salah satu dari beberapa antarmuka terprogram saat berinteraksi dengan Spanner. Berikut adalah antarmuka yang tersedia, dalam urutan yang kami rekomendasikan untuk menggunakannya:
- Library klien: Library klien Spanner tersedia dalam beberapa bahasa dan dibuat 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 populer, 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 dibuat di gRPC. gRPC menawarkan sejumlah manfaat performa dibandingkan dengan menggunakan REST API, termasuk merepresentasikan objek dalam format buffering protokol (yang lebih cepat untuk dihasilkan 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. Perhatikan bahwa beberapa fitur yang tersedia di RPC API tidak didukung di REST API, seperti yang didokumentasikan di bawah.
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, yang mencantumkan fitur Spanner utama yang didukung oleh setiap library.