Video: How to Choose the Right Database? - MongoDB, Cassandra, MySQL, HBase - Frank Kane 2024
Data store noSQL awalnya mengacu pada gagasan "Katakan saja TIDAK pada SQL" (untuk parafrase dari sebuah kampanye iklan anti-narkoba di tahun 1980an), dan ini merupakan reaksi terhadap keterbatasan database relasional (berbasis SQL). Bukan berarti orang-orang ini membenci SQL, tapi mereka bosan memaksa pasak persegi ke dalam lubang bundar dengan memecahkan masalah yang tidak dimiliki database relasional.
Database relasional adalah alat yang hebat, namun untuk beberapa jenis data (seperti pasangan nilai kunci, atau grafik) dan beberapa pola penggunaan (seperti penyimpanan skala sangat besar) database relasional hanya isn ' t praktis Dan ketika sampai pada penyimpanan bervolume tinggi, database relasional bisa mahal, baik dari segi biaya lisensi database dan biaya perangkat keras. (Database relasional dirancang untuk bekerja dengan perangkat keras kelas enterprise.)
Jadi, dengan gerakan NoSQL, pemrogram kreatif mengembangkan lusinan solusi untuk berbagai jenis penyimpanan data dan masalah pemrosesan yang berduri. Database NoSQL ini biasanya menyediakan skalabilitas masif dengan cara pengelompokan, dan seringkali dirancang untuk memungkinkan throughput yang tinggi dan latency rendah.
Nama NoSQL agak menyesatkan karena banyak database yang sesuai dengan kategori do memiliki dukungan SQL (bukan "NoSQL" support). Pikirkan namanya sebagai "Bukan Saja SQL. "
Penawaran NoSQL yang tersedia saat ini dapat dibagi menjadi empat kategori yang berbeda, berdasarkan desain dan tujuannya:
-
Toko dengan nilai kunci: Penawaran ini menyediakan cara untuk menyimpan barang apapun data tanpa harus menggunakan skema. Ini berbeda dengan database relasional, di mana Anda perlu mendefinisikan skema (struktur tabel) sebelum data dimasukkan. Karena toko bernilai penting tidak memerlukan skema, Anda memiliki fleksibilitas untuk menyimpan data dalam banyak format.
Di toko dengan nilai kunci, baris hanya terdiri dari sebuah kunci (sebuah identifier) dan sebuah nilai, yang dapat berupa sesuatu dari nilai integer ke string data biner yang besar. Banyak implementasi dari toko-toko bernilai penting didasarkan pada kertas Dynamo Amazon.
-
Kolom keluarga toko: Di sini Anda memiliki database di mana kolom dikelompokkan ke dalam keluarga kolom dan disimpan bersama di disk.
Sebenarnya, banyak dari basis data ini tidak berorientasi pada kolom, karena didasarkan pada kertas Google BigTable, yang menyimpan data sebagai peta terperinci multidimensional.
-
Toko dokumen: Penawaran ini bergantung pada koleksi dokumen yang dikodekan dan diformat dengan sama untuk meningkatkan efisiensi.Toko dokumen memungkinkan setiap dokumen dalam kumpulan hanya menyertakan subkumpulan bidang, sehingga hanya data yang diperlukan yang disimpan. Untuk kumpulan data yang jarang, di mana banyak bidang seringkali tidak dihuni, ini bisa diterjemahkan ke dalam penghematan ruang yang signifikan.
Sebaliknya, kolom kosong dalam tabel database relasional memang memakan ruang. Toko dokumen juga memungkinkan fleksibilitas skema, karena hanya bidang yang dibutuhkan yang tersimpan, dan bidang baru dapat ditambahkan. Sekali lagi, berbeda dengan database relasional, struktur tabel didefinisikan di depan sebelum data disimpan, dan kolom berubah adalah tugas yang membosankan yang mempengaruhi keseluruhan kumpulan data.
-
Grafik database: Di sini Anda memiliki database yang menyimpan struktur grafik - representasi yang menunjukkan koleksi entitas (simpul atau simpul) dan hubungan mereka (tepinya) satu sama lain. Struktur ini memungkinkan database grafik sangat sesuai untuk menyimpan struktur kompleks, seperti hubungan yang menghubungkan antara semua halaman web yang diketahui. (Misalnya, halaman web individual adalah node, dan ujung-ujungnya menghubungkan keduanya adalah tautan dari satu halaman ke halaman lainnya.)
Google, tentu saja, ada di seluruh teknologi grafik, dan menemukan mesin pemrosesan grafik yang disebut Pregel untuk memberi kekuatan pada PageRank-nya. algoritma. (Dan ya, ada kertas putih di Pregel.) Di komunitas Hadoop, ada proyek Apache yang disebut Giraph (berdasarkan kertas Pregel), yang merupakan mesin pengolah grafik yang dirancang untuk memproses grafik yang tersimpan dalam HDFS.
Penyimpanan data dan pilihan pemrosesan yang tersedia di Hadoop dalam banyak kasus merupakan implementasi dari kategori NoSQL yang tercantum di sini. Ini akan membantu Anda mengevaluasi solusi yang tersedia untuk Anda dengan lebih baik dan melihat bagaimana Hadoop dapat melengkapi gudang data tradisional.