Spanner untuk workload non-relasional

Spanner adalah sistem database yang sangat andal dan terkelola sepenuhnya. Meskipun telah berkembang menjadi sistem pengelolaan database relasional, Spanner memiliki root sebagai sistem penyimpanan nilai kunci non-relasional, dan mempertahankan karakteristik dasar dari sistem tersebut. Dengan demikian, Anda dapat menggunakan Spanner sebagai database non-relasional (NoSQL) dan bermigrasi dari database non-relasional ke Spanner. Dokumen ini membantu Anda memahami apakah Spanner cocok untuk beban kerja non-relasional Anda.

Database NoSQL mulai digunakan ketika database relasional tradisional tidak memiliki fitur untuk mendukung aplikasi baru yang memerlukan skalabilitas, ketersediaan, dan elastisitas komputasi yang tinggi. Mereka melakukannya dengan mengorbankan beberapa fitur yang sering kali penting untuk pengelolaan data, seperti transaksi, konsistensi, dan kueri ad-hoc. Spanner dibuat untuk mendukung sifat aplikasi dan fungsi yang sangat tersedia yang disediakan oleh database relasional tradisional, sehingga pelanggan dapat memanfaatkan kedua rangkaian fitur tersebut.

Dengan Spanner, Anda dapat memulai dengan kebutuhan penyimpanan non-relasional yang mudah dan menskalakan aplikasi sesuai kebutuhan.

Cara Spanner memenuhi kriteria database NoSQL

Spanner memenuhi kriteria utama berikut untuk beban kerja NoSQL Anda.

Skala dan performa

Database NoSQL menjadi sangat populer karena kemampuannya untuk menskalakan pembacaan dan penulisan secara horizontal. Dengan Spanner, Anda tidak perlu memperhatikan skala atau performa. Database Spanner dengan gaya nilai kunci dapat diskalakan secara horizontal untuk mendukung ratusan juta permintaan baca atau tulis per detik dan data berukuran petabyte. Kapasitas komputasi Spanner diskalakan dengan workload, yang mempertahankan profil latensi rendah dan konsisten bahkan saat aplikasi Anda melakukan penskalaan berdasarkan beberapa urutan magnitudo.

API NoSQL

Database relasional tradisional biasanya diakses menggunakan SQL, yang memiliki kurva pembelajaran bagi developer yang tidak terbiasa dengan database relasional. Klien untuk database ini biasanya juga mengandalkan koneksi persisten, dan memerlukan infrastruktur penggabungan koneksi untuk di-deploy agar dapat melakukan penskalaan. Sebaliknya, Spanner API di-build di atas model permintaan dan respons gRPC/HTTP2 yang otomatis menangani kegagalan koneksi. Spanner menyediakan API baca-tulis NoSQL yang sederhana, berbasis bahasa, dan efisien yang tidak memerlukan pengetahuan SQL. Selain itu, klien Spanner tidak memerlukan penggabungan koneksi untuk melakukan penskalaan.

Terkelola sepenuhnya

Keuntungan besar dari database NoSQL adalah database tersebut dianggap lebih mudah dikelola. Sebagai layanan yang terkelola sepenuhnya, Spanner tidak menempatkan beban operasional pada pelanggan. Spanner melakukan update software dan hardware tanpa periode nonaktif di belakang layar sambil mempertahankan kompatibilitas mundur. Spanner API dan semantik sama seolah-olah operasi dilakukan pada satu database mesin dan tidak memerlukan pengetahuan tentang arsitektur internal Spanner. Spanner berjalan pada deployment mulai dari 1/10 node hingga puluhan ribu node, yang diskalakan secara otomatis dan responsif dengan Penskalaan otomatis terkelola.

Data semi-terstruktur

Spanner mendukung jenis data fleksibel seperti JSON dan myactivity yang digunakan untuk menyimpan data semi-terstruktur atau tidak terstruktur. Seperti database NoSQL lainnya, Anda dapat menggunakan jenis data ini agar tidak menentukan semua skema penyimpanan di awal.

Kontrol akses

Seperti database NoSQL lainnya, Spanner mendukung kontrol akses berbasis IAM. Administrator dapat mengonfigurasi dan mengelola kebijakan kontrol akses tanpa menyimpan nama pengguna dan sandi dalam database.

Perbedaan Spanner dengan database NoSQL tradisional

Spanner memberikan keunggulan berikut dibandingkan database NoSQL tradisional.

Transaksi

Seiring dengan semakin kompleksnya aplikasi, aplikasi sering kali perlu melakukan operasi transaksional multi-baris dan multi-tabel di database. Dengan Spanner, Anda tidak perlu bermigrasi ke datastore transaksional seiring pertumbuhan database Anda karena Spanner memiliki dukungan penuh untuk transaksi baca-tulis. Sebagai database yang mematuhi ACID, Spanner mempertahankan konsistensi transaksional database Anda setiap saat, terlepas dari skalanya.

Pemodelan data

Desain skema dalam database NoSQL bisa jadi tidak wajar karena harus memasukkan semua data ke dalam satu tabel dan melakukan denormalisasi data secara paksa karena tidak dapat melakukan penggabungan. Dengan Spanner, Anda dapat menentukan skema tanpa melakukan pengurutan ulang ke tabel tunggal atau denormalisasi. Untuk mengoptimalkan pola akses yang menggunakan beberapa tabel, Anda dapat menggunakan interleaving tabel. Anda juga dapat melakukan penggabungan di seluruh tabel.

Kueri ad hoc

Meskipun Anda terutama menggunakan NoSQL API, menjalankan kueri ad hoc untuk tujuan proses debug atau analisis sering kali masih berguna. Spanner mematuhi bahasa kueri standar SQL. Anda dapat menggunakan prioritas permintaan untuk mengisolasi traffic ad hoc prioritas rendah dari traffic online atau menggunakan Data Boost Spanner untuk menjalankan kueri analisis pada resource komputasi yang sepenuhnya terisolasi dari traffic database online.

Indeks sekunder yang sangat konsisten

Aplikasi sering kali memerlukan indeks sekunder untuk mendukung pencarian latensi rendah. Database NoSQL umum menawarkan indeks sekunder yang konsisten pada akhirnya atau menempatkan batasan terkait seberapa besar indeks dapat tumbuh. Hal ini dapat mempersulit logika aplikasi yang perlu mengatasi batasan ini. Spanner menawarkan indeks sekunder yang sangat konsisten dalam skala besar tanpa batasan ukuran apa pun. Hal ini memungkinkan Anda berfokus pada logika aplikasi dan tidak perlu mengkhawatirkan masalah konsistensi.

Apakah Spanner tepat untuk kebutuhan database NoSQL Anda?

Spanner adalah sistem penyimpanan data fleksibel yang mendukung kasus penggunaan SQL dan NoSQL. Meskipun beberapa aplikasi dimulai dengan kebutuhan penyimpanan yang sederhana, seiring bertambahnya kerumitan aplikasi, aplikasi tersebut memerlukan lebih banyak fitur yang biasanya tidak ditawarkan oleh database NoSQL, seperti transaksi, indeks sekunder yang konsisten, dan bahasa kueri yang fleksibel. Dengan Spanner, Anda tidak dibatasi oleh batasan tersebut dan dapat mengembangkan aplikasi sesuai kebutuhan.

Sebagian besar beban kerja non-relasional sangat cocok untuk Spanner. Spanner tidak hanya menawarkan API baca-tulis NoSQL yang sederhana, tetapi juga didukung oleh ketersediaan tinggi, keandalan tinggi, latensi rendah, elastisitas komputasi, dan skalabilitas ekstrem. Spanner memungkinkan Anda menggabungkan beragam workload ke dalam satu platform yang fleksibel.