MongoDB, Cassandra, dan HBase - tiga pangkalan data NoSQL untuk ditonton

Hadoop mendapat banyak kredit data besar, tetapi kenyataannya adalah bahawa pangkalan data NoSQL lebih banyak digunakan - dan dikembangkan lebih luas. Sebenarnya, ketika membeli vendor Hadoop agak mudah, memilih pangkalan data NoSQL adalah apa-apa. Bagaimanapun, terdapat lebih dari 100 pangkalan data NoSQL, seperti yang ditunjukkan oleh peringkat populariti pangkalan data DB-Engines.

Mana yang harus anda pilih?

Manja untuk pilihan

Kerana memilih anda mesti. Sebaik mungkin hidup dalam utopia bahagia yang disebut kegigihan poliglot, "di mana mana-mana syarikat bersaiz layak akan mempunyai pelbagai teknologi penyimpanan data yang berbeza untuk berbagai jenis data," seperti yang dikatakan oleh Martin Fowler, kenyataannya adalah anda tidak mampu melabur dalam belajar lebih daripada beberapa.

Nasib baik, pilihannya menjadi lebih mudah kerana pasaran bergabung di sekitar tiga pangkalan data NoSQL yang dominan: MongoDB (disokong oleh bekas majikan saya), Cassandra (terutama dikembangkan oleh DataStax, walaupun ditetas di Facebook), dan HBase (berkait rapat dengan Hadoop dan dikembangkan oleh komuniti yang sama).

Perhatikan bahawa saya dengan sengaja mengecualikan Redis dari senarai ini. Walaupun menyimpan data yang hebat, ia digunakan terutamanya untuk menyimpan data dan tidak sesuai untuk pelbagai jenis beban kerja.

Data LinkedIn dari 451 Penyelidikan menunjukkan bagaimana pasaran menarik kepada MongoDB, Cassandra, dan HBase:

Itu data profil LinkedIn. Pandangan yang lebih lengkap adalah DB-Engines ', yang menggabungkan pekerjaan, carian, dan data lain untuk memahami populariti pangkalan data. Sementara Oracle, SQL Server, dan MySQL berkuasa, MongoDB (no. 5), Cassandra (no. 9), dan HBase (no. 15) memberikan mereka wang.

Walaupun terlalu awal untuk memanggil setiap pangkalan data NoSQL yang lain sebagai kesalahan pembulatan, kami dengan cepat mencapai titik itu, persis seperti yang berlaku di pasaran pangkalan data hubungan.

Untuk lebih memahami mengapa ketiga-tiga pangkalan data ini bersinar, saya meminta wakil dari masing-masing untuk mengenal pasti atribut utama kejayaan mereka: Kelly Stirman, pengarah produk di MongoDB; Patrick McFadin, ketua penginjil Cassandra di DataStax; dan Justin Kestelyn, pengarah kanan hubungan pemaju di Cloudera.

Tetapi pertama, kita perlu memahami mengapa NoSQL penting.

Dunia yang dibina dengan data tidak berstruktur

Kami semakin hidup di dunia di mana data tidak sesuai dengan baris dan lajur RDBMS yang rapi. Pengkomputeran mudah alih, sosial, dan awan telah menghasilkan sejumlah besar data. Menurut berbagai perkiraan, 90 persen data dunia dibuat dalam dua tahun terakhir, dengan Gartner memasangkan 80 persen dari semua data perusahaan sebagai tidak terstruktur. Lebih-lebih lagi, data tidak berstruktur berkembang pada kadar dua kali ganda daripada data berstruktur.

Ketika dunia berubah, keperluan pengurusan data melangkaui ruang lingkup berkesan pangkalan data hubungan tradisional. Organisasi pertama yang melihat perlunya penyelesaian alternatif adalah pelopor Web, agensi kerajaan, dan syarikat yang mengkhususkan diri dalam perkhidmatan maklumat.

Kini semakin banyak, syarikat dari semua jalur ingin memanfaatkan kelebihan alternatif seperti NoSQL dan Hadoop: NoSQL untuk membina aplikasi operasi yang mendorong perniagaan mereka melalui sistem penglibatan, dan Hadoop untuk membina aplikasi yang menganalisis data mereka secara retrospektif dan membantu menyampaikan pandangan yang kuat .

MongoDB: Dari pemaju, untuk pemaju

Di antara pilihan NoSQL, Stirman MongoDB menunjukkan, MongoDB bertujuan untuk pendekatan seimbang yang sesuai dengan pelbagai aplikasi. Walaupun fungsinya hampir dengan pangkalan data hubungan tradisional, MongoDB membolehkan pengguna memanfaatkan faedah infrastruktur awan dengan skalabilitas mendatarnya dan dapat bekerja dengan mudah dengan pelbagai kumpulan data yang digunakan hari ini berkat model data yang fleksibel.

MongoDB selalunya merupakan pembangun pangkalan data NoSQL pertama yang akan dicuba kerana sangat mudah dipelajari. Will Shulman, Ketua Pegawai Eksekutif MongoLab (penyedia perkhidmatan sebagai MongoDB), mengatakannya dengan cara ini:

Kejayaan MongoDB yang tidak seimbang sebahagian besarnya didasarkan pada inovasi sebagai penyimpanan struktur data yang membolehkan kita dengan lebih mudah dan ekspresi memodelkan "perkara" di tengah-tengah aplikasi kita….

Memiliki model data asas yang sama dalam kod dan pangkalan data kami adalah kaedah yang unggul untuk kebanyakan kes penggunaan, kerana secara dramatis mempermudah tugas pengembangan aplikasi, dan menghilangkan lapisan kod pemetaan kompleks yang diperlukan.

Terutama, MongoDB, seperti pangkalan data lain dalam senarai ini, bukan kuda pusing satu helah. Perusahaan yang mempelajari MongoDB "dapat melunaskan pelaburan mereka di MongoDB di banyak, banyak projek, menjadikannya salah satu senarai pendek standard yang mereka andalkan untuk semua pengurusan data," seperti yang diberitahu oleh Stirman kepada saya.

Sudah tentu, seperti teknologi apa pun MongoDB mempunyai kelebihan dan kekurangannya. MongoDB direka untuk beban kerja OLTP. Ia boleh membuat pertanyaan yang rumit, tetapi tidak semestinya sesuai untuk beban kerja gaya pelaporan. Atau jika anda memerlukan transaksi yang rumit, itu bukan pilihan yang baik. Walau bagaimanapun, kesederhanaan MongoDB menjadikannya tempat yang bagus untuk memulakan.

Cassandra: Dijalankan dengan selamat mengikut skala

Terdapat sekurang-kurangnya dua jenis kesederhanaan pangkalan data: kesederhanaan pembangunan dan kesederhanaan operasi. Walaupun MongoDB mendapat kredit untuk pengalaman di luar kotak yang mudah, Cassandra memperoleh markah penuh kerana mudah dikendalikan secara kecil-kecilan.

Seperti yang diberitahu oleh McFadin dari DataStax, pengguna cenderung menarik perhatian ke Cassandra semakin mereka menolak untuk membuat kesukaran membuat pangkalan data hubungan lebih cepat dan lebih dipercayai, terutama pada skala. Mantan Oracle DBA, McFadin gembira untuk mengetahui bahawa "penskalaan replikasi dan linear adalah primitif" dengan Cassandra, dan ciri-ciri itu adalah "tujuan reka bentuk utama dari awal."

Di dunia RDBMS, ciri pangkalan data seperti penskalaan dan replikasi adalah bahagian sulit yang ditinggalkan pengguna. Ini berfungsi dengan baik dalam perusahaan semalam ketika skala bukan masalah besar. Hari ini ia cepat menjadi yang dikeluarkan.

Seperti yang saya dengar dari McFadin dan yang lain, Cassandra sangat bersinar dalam penyebaran skala. Cassandra dilengkapi dengan sokongan terpadu untuk pelbagai pusat data. Mengenai menambah kapasiti ke kluster, "Anda hanya butuh mesin baru dan beritahu Cassandra di mana node lain berada," kata McFadin, "dan itu mengurus yang lain."

Kemudahan penskalaan ini, ditambah dengan kinerja penulisan yang luar biasa ("Semua yang anda lakukan adalah melampirkan pada akhir fail log") dan prestasi pertanyaan yang dapat diramalkan, menambah tenaga kerja berprestasi tinggi di Cassandra.

Satu artikel kepercayaan NoSQL yang telah lama saya katakan adalah bahawa Cassandra mungkin hebat dalam skala besar, tetapi memerlukan gelar doktor untuk memulakan. Tidak begitu, McFadin menegaskan:

Jalan replikasi dan membaca dan menulis sengaja mudah. Anda boleh mempelajari inti dalaman Cassandra dalam beberapa jam. Itu boleh memberikan banyak keyakinan ketika anda menggunakan teknologi baru kerana terdapat sedikit butiran "kotak hitam" yang memperkenalkan mod kegagalan yang kompleks.

Ini bermaksud bahawa harga untuk masuk ke pengembangan Cassandra yang berkesan adalah dalam memahami model data dan bagaimana ia akan berfungsi dengan aplikasi anda. Memandangkan keakraban bahasa pertanyaan CQL Cassandra (dimaksudkan untuk menjadi "persis seperti SQL kecuali ketika tidak"), kata McFadin, ini bukan kurva pembelajaran yang curam.

Lebih penting lagi, dia mengatakan kepada saya, "Cassandra memberi ganjaran kepada anda dengan satu perkara yang anda mahukan dari pangkalan data: tanpa drama. Inilah sebabnya mengapa pengguna suka menggunakan Cassandra. "

HBase: Kawan Bosom dengan Hadoop

HBase, seperti Cassandra sebuah kedai nilai kunci yang berorientasikan lajur, banyak digunakan kerana silsilah biasa dengan Hadoop. Memang, seperti yang dikatakan oleh Kestelyn dari Cloudera, "HBase menyediakan lapisan penyimpanan berdasarkan rekod yang memungkinkan pembacaan dan penulisan data secara pantas, rawak, melengkapi Hadoop dengan menekankan throughput yang tinggi dengan mengorbankan I / O latensi rendah."

Kestelyn meneruskan:

Perubahan dikatalogkan dalam memori dengan cekap untuk mencapai akses maksimum semasa data diteruskan ke HDFS. Reka bentuk ini membolehkan EDH [hub data perusahaan] berasaskan Hadoop untuk melayani pembacaan dan penulisan secara rawak kepada pengguna dan aplikasi dalam masa nyata, namun masih menikmati toleransi kesalahan dan ketahanan HDFS.

Pertalian dengan Hadoop bukan satu-satunya sebab HBase terus meningkat di peringkat populariti pangkalan data, walaupun itu mungkin sudah cukup. Mirip dengan Cassandra, akar HBase sebagai pelaksanaan sumber terbuka Bigtable Google diterjemahkan ke dalam pangkalan data yang sangat sesuai dengan reka bentuk.

Kerana dapat memanfaatkan penyimpanan, memori, dan sumber daya CPU dari sejumlah pelayan, serta memiliki fitur skala-out seperti sharding automatik, HBase dapat skala tanpa batas ketika tuntutan beban dan kinerja meningkat hanya dengan menambahkan node pelayan. HBase dirancang dari bawah ke atas untuk memberikan prestasi yang optimum ketika konsistensi sangat penting.

Tetapi skala bukan hanya utiliti. Seperti yang dicatat oleh Kestelyn, "Berkat integrasi yang ketat dengan ekosistem Hadoop yang lain, data tersedia untuk pengguna dan aplikasi melalui pertanyaan SQL (menggunakan Cloudera Impala, Apache Phoenix, atau Apache Hive) atau bahkan pencarian teks bebas (menggunakan Pencarian Cloudera). " Oleh itu, HBase memberi cara kepada pemaju untuk memanfaatkan kepakaran yang ada dengan SQL sambil membina pangkalan data yang lebih moden dan diedarkan.

Setiap pangkalan data dilengkapi dengan kelebihan dan kekurangannya sendiri, tetapi masing-masing dari tiga profil di sini telah memenuhi lubang besar dalam lanskap data besar. Walaupun ada kemungkinan bahawa pangkalan data baru akan muncul untuk mendapatkan tempat di tiga teratas NoSQL (DynamoDB?), Kenyataannya adalah bahawa pemaju dan perusahaan yang mereka layani sudah menyeragamkan beberapa pilihan kuat: MongoDB, Cassandra, dan HBase.

Kini sebagai VP mudah alih di Adobe, Matt Asay sebelumnya adalah naib presiden komuniti di MongoDB, Inc. masalah pelesenan harta intelek, dan tuannya dari University of Kent di Canterbury dan sarjana dari Universiti Brigham Young. Asay adalah salah seorang blogger pertama.

Forum Teknologi Baru menyediakan tempat untuk meneroka dan membincangkan teknologi perusahaan yang baru muncul dalam kedalaman dan luas yang belum pernah terjadi sebelumnya. Pemilihannya bersifat subjektif, berdasarkan pilihan teknologi yang kami percayai penting dan menarik minat pembaca. tidak menerima jaminan pemasaran untuk penerbitan dan berhak untuk mengedit semua kandungan yang disumbangkan. Hantarkan semua pertanyaan ke [email protected]