1.1 Bagaimana pangkalan data NoSQL berfungsi

Pangkalan data NoSQL menggunakan pelbagai model data untuk mengakses dan memanipulasi data. Jenis pangkalan data ini dioptimumkan untuk aplikasi intensif data yang memerlukan kependaman rendah dan model data yang fleksibel. Semua ini dicapai dengan melembutkan keperluan ketekalan data yang ketat yang biasa untuk jenis pangkalan data lain.

Pertimbangkan contoh pemodelan skema untuk pangkalan data ringkas buku.

  • Dalam pangkalan data hubungan, entri buku sering dibahagikan kepada beberapa bahagian (atau "dinormalkan") dan disimpan dalam jadual berasingan yang perhubungannya ditakrifkan oleh kekangan utama dan asing. Dalam contoh ini, jadual Buku mempunyai lajur ISBN , Tajuk Buku dan "ISBN"dan"Pengarang"ISBN Pengarang, danNama PengarangdanID PengaranglajurPengarangjadualEdisiNombor. Model hubungan direka untuk mengekalkan integriti rujukan antara jadual dalam pangkalan data. Data dinormalisasi untuk mengurangkan lebihan dan secara amnya dioptimumkan untuk penyimpanan.

  • Dalam pangkalan data NoSQL, rekod buku biasanya disimpan sebagai dokumen JSON. Untuk setiap buku atau elemen, nilai ISBN , Tajuk Buku , Nombor Edisi , Nama Pengarang dan ID Pengarang disimpan sebagai atribut dalam satu dokumen. Dalam model ini, data dioptimumkan untuk pembangunan intuitif dan kebolehskalaan mendatar.

1.2 Untuk apa pangkalan data NoSQL boleh digunakan?

Pangkalan data NoSQL sangat sesuai untuk banyak aplikasi moden, seperti mudah alih, permainan, aplikasi web, yang memerlukan pangkalan data yang fleksibel dan berskala dengan prestasi tinggi dan fungsi yang kaya yang boleh memberikan kebolehgunaan maksimum.

  • Fleksibiliti . Biasanya, pangkalan data NoSQL menawarkan skema yang fleksibel, membolehkan pembangunan lebih pantas dan membolehkan pelaksanaan tambahan. Disebabkan oleh penggunaan model data yang fleksibel, pangkalan data NoSQL sangat sesuai untuk data separa berstruktur dan tidak berstruktur.

  • Kebolehskalaan . Pangkalan data NoSQL direka bentuk untuk skala menggunakan kluster perkakasan yang diedarkan, bukan dengan menambah pelayan yang mahal dan boleh dipercayai. Sesetengah penyedia perkhidmatan awan menjalankan operasi ini di latar belakang, menyediakan perkhidmatan terurus sepenuhnya.

  • Prestasi tinggi . Pangkalan data NoSQL dioptimumkan untuk model data tertentu dan corak capaian untuk mencapai prestasi yang lebih tinggi daripada pangkalan data hubungan.

  • Fungsi yang luas . Pangkalan data NoSQL menyediakan API yang kaya dan jenis data yang direka khusus untuk model data masing-masing.

1.3 Jenis pangkalan data NoSQL

Pangkalan data NoSQL digunakan di mana ia tidak begitu mudah untuk menyimpan data dalam bentuk jadual. Oleh itu, ia disimpan dalam format yang sangat berbeza. Biasanya, terdapat 6 jenis data utama pangkalan data NoSQL.

DB berdasarkan pasangan nilai kunci

Pangkalan data yang menggunakan pasangan nilai kunci menyokong kebolehpisahan yang tinggi dan menyediakan penskalaan mendatar yang tidak pernah berlaku sebelum ini yang tidak boleh dicapai dengan jenis pangkalan data lain. Kes penggunaan yang baik untuk pangkalan data nilai kunci ialah aplikasi permainan, pengiklanan dan IoT.

Sebagai contoh, Amazon DynamoDB memastikan operasi pangkalan data yang stabil dengan kelewatan tidak lebih daripada beberapa milisaat pada sebarang skala. Prestasi teguh ini merupakan sebab utama untuk memindahkan Cerita Snapchat ke DynamoDB, kerana ciri Snapchat ini dikaitkan dengan beban tulis storan terbesar.

Dokumen

Dalam kod aplikasi, data sering diwakili sebagai objek atau dokumen dalam format seperti JSON kerana ia merupakan model data yang cekap dan intuitif untuk pembangun. Pangkalan data dokumen membenarkan pembangun menyimpan dan menanyakan data dalam pangkalan data menggunakan model dokumen yang sama yang mereka gunakan dalam kod aplikasi mereka. Sifat fleksibel, separa berstruktur, hierarki dokumen dan pangkalan data dokumen membolehkan mereka berkembang mengikut keperluan aplikasi.

Model dokumen berfungsi dengan baik dalam katalog, profil pengguna dan sistem pengurusan kandungan di mana setiap dokumen adalah unik dan berubah dari semasa ke semasa. Amazon DocumentDB (serasi dengan MongoDB) dan MongoDB ialah pangkalan data dokumen biasa yang menyediakan API berfungsi dan intuitif untuk pembangunan tangkas.

Pangkalan data graf

Pangkalan data graf memudahkan untuk membangunkan dan menjalankan aplikasi yang berfungsi dengan set data kompleks. Contoh biasa penggunaan pangkalan data graf ialah rangkaian sosial, perkhidmatan pengesyoran, sistem pengesanan penipuan dan graf pengetahuan. Amazon Neptune ialah perkhidmatan pangkalan data graf terurus sepenuhnya. Neptune menyokong Graf Harta dan Rangka Kerja Penerangan Sumber (RDF), menyediakan dua API graf untuk dipilih: TinkerPop dan RDF/SPARQL. Pangkalan data graf biasa termasuk Neo4j dan Giraph.

DB dalam ingatan

Selalunya aplikasi permainan dan pengiklanan menggunakan papan pendahulu, storan sesi dan analitik masa nyata. Keupayaan sedemikian memerlukan tindak balas dalam beberapa mikrosaat, manakala peningkatan mendadak dalam trafik boleh dilakukan pada bila-bila masa.

Amazon MemoryDB untuk Redis ialah perkhidmatan pangkalan data dalam memori yang serasi dengan Redis dan boleh dipercayai yang mengurangkan kependaman bacaan kepada milisaat dan menyediakan ketahanan merentas berbilang zon ketersediaan. MemoryDB dibina khusus untuk prestasi ultra tinggi dan kebolehpercayaan, jadi ia boleh digunakan sebagai pangkalan data utama untuk aplikasi berasaskan perkhidmatan mikro moden.

Amazon ElastiCache ialah perkhidmatan caching dalam memori yang serasi dengan Redis dan Memcached yang diuruskan sepenuhnya untuk menyediakan kependaman rendah, beban kerja pemprosesan tinggi. Pelanggan seperti Tinder yang memerlukan apl mereka untuk bertindak balas dalam masa nyata menggunakan dalam memori dan bukannya sistem storan cakera. Satu lagi contoh gudang data yang dibina khas ialah Amazon DynamoDB Accelerator (DAX). DAX membenarkan DynamoDB membaca data beberapa kali lebih pantas.

Cari pangkalan data

Banyak aplikasi menjana log untuk memudahkan pembangun menyelesaikan masalah dan menyelesaikan masalah. Amazon OpenSearch ialah perkhidmatan yang dibina khas untuk visualisasi dan analitis hampir masa nyata bagi aliran data yang dijana secara automatik dengan mengindeks, mengagregat dan mencari log dan metrik separa berstruktur.

Selain itu, Amazon OpenSearch ialah perkhidmatan carian teks penuh berprestasi tinggi yang berkuasa. Expedia memanfaatkan lebih 150 domain perkhidmatan Amazon OpenSearch, 30 TB data dan 30 bilion dokumen untuk pelbagai kes penggunaan misi kritikal, daripada pemantauan operasi dan penyelesaian masalah kepada pengesanan tindanan aplikasi yang diedarkan dan pengoptimuman kos.

1.4 Perbandingan pangkalan data SQL (perkaitan) dan NoSQL (bukan perhubungan)

NoSQL mempunyai banyak kelebihan, jadi anda harus sekurang-kurangnya secara teori mengetahui bahawa alat yang anda perlukan sudah wujud sebelum menulisnya sendiri. Di bawah ini saya akan memberikan perbandingan pangkalan data NoSQL dan SQL:

Beban kerja yang sesuai

Pangkalan data perhubungan direka untuk aplikasi pemprosesan transaksi masa nyata (OLTP) transaksi dan sangat konsisten dan sangat sesuai untuk pemprosesan analisis masa nyata (OLAP).

Pangkalan data NoSQL direka untuk berfungsi dengan pelbagai corak capaian data, termasuk aplikasi kependaman rendah. Pangkalan data carian NoSQL direka untuk analisis data separa berstruktur.

Model Data

Model hubungan menormalkan data dan mengubahnya menjadi jadual yang terdiri daripada baris dan lajur. Skema mentakrifkan jadual, baris, lajur, indeks, perhubungan antara jadual dan elemen pangkalan data lain secara tegar. Pangkalan data sedemikian memastikan integriti data rujukan dalam hubungan antara jadual.

Pangkalan data NoSQL menyediakan pelbagai model data seperti pasangan nilai kunci, dokumen dan graf yang dioptimumkan untuk prestasi tinggi dan kebolehskalaan.

Sifat ASID

Pangkalan data perhubungan menyediakan satu set sifat ACID: atomicity, konsistensi, pengasingan, kebolehpercayaan.

  • Atomicity memerlukan urus niaga dilaksanakan secara keseluruhan atau tidak sama sekali.
  • Ketekalan bermaksud bahawa sebaik sahaja transaksi selesai, data mesti mematuhi skema pangkalan data.
  • Pengasingan memerlukan transaksi selari berjalan secara berasingan antara satu sama lain.
  • Kebolehpercayaan merujuk kepada keupayaan untuk pulih ke keadaan terakhir disimpan selepas kegagalan sistem yang tidak dijangka atau gangguan bekalan elektrik.

Pangkalan data NoSQL selalunya menawarkan kompromi, melonggarkan keperluan tegar sifat ACID memihak kepada model data yang lebih fleksibel yang membolehkan penskalaan mendatar. Ini menjadikan NoSQL pilihan yang bagus untuk kes penggunaan lebar jalur tinggi, kependaman rendah yang memerlukan penskalaan mendatar melebihi satu contoh.

Prestasi

Prestasi bergantung terutamanya pada subsistem cakera. Pengoptimuman pertanyaan, indeks dan struktur jadual selalunya diperlukan untuk prestasi maksimum.

Prestasi biasanya bergantung pada saiz kluster perkakasan asas, kependaman rangkaian dan aplikasi panggilan.

Penskalaan

Pangkalan data perhubungan biasanya berskala dengan meningkatkan kuasa pengkomputeran perkakasan atau dengan menambah salinan berasingan untuk beban kerja yang dibaca.

Pangkalan data NoSQL biasanya menyokong kebolehpisahan yang tinggi melalui corak capaian berskala berdasarkan seni bina yang diedarkan. Ini meningkatkan daya pengeluaran dan memberikan prestasi yang konsisten pada skala yang hampir tidak terhad.

API

Permintaan untuk menulis dan mendapatkan semula data ditulis dalam SQL. Pertanyaan ini dihuraikan dan dilaksanakan oleh pangkalan data hubungan.

API berorientasikan objek membolehkan pembangun aplikasi menulis dan mendapatkan semula struktur data dengan mudah. Menggunakan kekunci partition, aplikasi boleh mencari pasangan nilai kunci, set lajur atau dokumen separa berstruktur yang mengandungi objek bersiri dan atribut aplikasi.