Penggunaan basis data NoSQL dalam ilmu data

16

Bagaimana database NoSQL seperti MongoDB dapat digunakan untuk analisis data? Apa sajakah fitur di dalamnya yang dapat membuat analisis data lebih cepat dan kuat?

jithinjustin
sumber
2
Penggunaan utama adalah menyimpan data dan mengambil data. Bahkan, itu tentang satu-satunya penggunaan untuk database NOSQL, atau basis data apa pun. Ingin membuat pertanyaan Anda lebih baik?
Spacedman
Ya, basis data terutama digunakan untuk menyimpan dan mengambil data. Bagaimana mereka dapat digunakan untuk analisis data? Apa alat yang dibangun ke dalam basis data NOSQL seperti mongodb yang membuat analisis data mudah dan kuat?
jithinjustin
1
Tingkatkan pertanyaan Anda dengan mengeditnya, bukan menambahkan komentar.
Spacedman

Jawaban:

23

Sejujurnya, kebanyakan database NoSQL tidak terlalu cocok untuk aplikasi dalam data besar. Untuk sebagian besar dari semua aplikasi data besar, kinerja MongoDB dibandingkan dengan database relasional seperti MySQL secara signifikan cukup buruk untuk menjamin tinggal jauh dari sesuatu seperti MongoDB sepenuhnya.

Dengan itu, ada beberapa properti yang sangat berguna dari database NoSQL yang tentu saja menguntungkan Anda ketika Anda bekerja dengan set data yang besar, meskipun kemungkinan manfaat itu lebih besar daripada kinerja NoSQL yang umumnya buruk dibandingkan dengan SQL untuk dibaca. operasi intensif (paling mirip dengan kasus penggunaan data besar khas) rendah.

  • Tanpa Skema - Jika Anda bekerja dengan banyak data yang tidak terstruktur, mungkin sulit untuk benar-benar memutuskan dan menerapkan skema secara kaku. Database NoSQL pada umumnya sangat mendukung hal ini, dan akan memungkinkan Anda untuk memasukkan dokumen tanpa skema dengan cepat, yang tentunya bukan sesuatu yang didukung oleh database SQL.
  • JSON - Jika Anda kebetulan menggunakan dokumen gaya JSON alih-alih denganfile CSV , maka Anda akan melihat banyak keuntungan dalam menggunakan sesuatu seperti MongoDB untuk lapisan basis data. Meskipun demikian, secara umum penghematan alur kerja tidak lebih penting daripada peningkatan kueri-kali.
  • Kemudahan Penggunaan - Saya tidak mengatakan bahwa basis data SQL selalu sulit untuk digunakan, atau bahwa Cassandra adalah hal termudah di dunia untuk diatur, tetapi secara umum basis data NoSQL lebih mudah diatur dan digunakan daripada basis data SQL. MongoDB adalah contoh yang sangat kuat untuk hal ini, dikenal sebagai salah satu lapisan basis data yang paling mudah digunakan (di luar SQLite ). SQL juga berurusan dengan banyak normalisasi dan ada warisan besar praktik terbaik SQL yang umumnya menghambat proses pengembangan.

Secara pribadi saya mungkin menyarankan Anda juga memeriksa basis data grafik seperti Neo4j yang menunjukkan kinerja yang sangat baik untuk jenis pertanyaan tertentu jika Anda ingin memilih backend untuk aplikasi ilmu data Anda.

indico
sumber
Kamu benar. Database NOSQL terutama digunakan untuk menyimpan data tidak terstruktur atau semi-terstruktur seperti json. Bisakah Anda menjelaskan beberapa jenis analisis data yang dapat kita lakukan dengannya. Apa alat yang dibangun ke dalam mongodb yang dapat digunakan untuk analisis data?
jithinjustin
1
@ jithinjustin tidak ada alat analisis data yang dibangun ke dalam mongo, atau benar-benar database apa pun. Juga, jsonadalah data yang benar-benar terstruktur. Anda secara teknis dapat melakukan segala jenis analisis data di atasnya, menggunakan database NOSQL sebenarnya tidak terkait. Ada alat yang dibangun di atas mongo, seperti analytica.
indico
1
Saya tidak tahu tentang semua itu. MongoDB dapat berkinerja lebih baik dari MySQL. Anda akan memiliki argumen yang lebih baik jika Anda mengatakan PostgreSQL (yang, omong-omong dapat menerima JSON). Either way, saya tidak akan mempertimbangkan beberapa "kinerja" sewenang-wenang (kita tidak tahu apa kasus penggunaannya) menjadi alasan untuk tidak menggunakan NoSQL. Juga jangan diskon menggunakan banyak basis data. Ingat, MongoDB memiliki fitur agregasi luar biasa yang tidak dimiliki SQL.
Tom
1
@ Tom pada kinerja, Anda akan menemukan bahwa satu-satunya tugas yang mongo benar-benar mengungguli mysql adalah sisipan ( moredevs.ro/mysql-vs-mongodb-performance-benchmark ), yang merupakan bagian kecil dari analisis data. Fitur agregasi SQL jauh lebih matang daripada Mongo. Sejauh MYSQL versus Postgres, angkanya sangat miring sementara dan keduanya cenderung menawarkan kinerja yang sama. MYSQL lebih umum, itu sebabnya saya sebutkan itu, tetapi keduanya sangat mirip.
indico
Saya selalu melihat kinerja yang lebih baik pada MongoDB ketika semuanya masuk ke dalam memori. Saya mengambil benchmark dengan penambahan garam karena jika Anda Google sedikit, Anda akan menemukan banyak benchmark yang menunjukkan MongoDB lebih cepat. Itu benar-benar tergantung pada kebutuhan Anda. Yang mengatakan, untuk membantu menjawab pertanyaan awal - saya pikir ada banyak kegunaan untuk NoSQL dalam ilmu data besar dan analitik.
Tom
4

Salah satu manfaat dari pendekatan NoSQL bebas skema adalah Anda tidak melakukan secara prematur dan Anda dapat menerapkan skema yang tepat pada waktu kueri menggunakan alat yang sesuai seperti Apache Drill . Lihat presentasi ini untuk detailnya. MySQL tidak akan menjadi pilihan pertama saya dalam pengaturan data besar.

Emre
sumber
Berikut adalah pertanyaan terkait mengenai NoSQL, JSON, dan Bor: datacience.stackexchange.com/questions/9568/…
sheldonkreger
4

Pertimbangkan, coba, dan mungkin bahkan gunakan banyak basis data. Ini bukan hanya masalah "kinerja" yang dimainkan di sini. Ini benar-benar akan sesuai dengan kebutuhan Anda. Berapa banyak data yang Anda bicarakan? data apa? seberapa cepat Anda membutuhkannya? Apakah Anda lebih banyak membaca berat atau menulis berat?

Inilah satu hal yang tidak dapat Anda lakukan dalam database SQL: Hitung sentimen. http://www.slideshare.net/shift8/mongodb-machine-learning

Tentu saja kecepatan dalam hal itu mungkin tidak cukup cepat untuk kebutuhan Anda, tetapi itu adalah sesuatu yang mungkin. Dengan beberapa caching nilai agregat tertentu, itu bahkan cukup dapat diterima. Mengapa kamu melakukan ini? Kenyamanan

Kenyamanan benar-benar adalah sesuatu yang Anda akan diyakinkan. Itulah sebabnya (menurut saya) database NoSQL dibuat. Performa juga tentu saja, tapi saya mencoba untuk mendiskon benchmark dan lebih fokus pada masalah lain.

Database MongoDB (dan beberapa NoSQL lainnya) memiliki beberapa fitur yang sangat kuat seperti peta bawaan / pengurangan. Ini bisa menghasilkan penghematan baik dalam biaya maupun waktu untuk menggunakan sesuatu seperti Hadoop. Atau bisa menyediakan prototipe atau MVP untuk meluncurkan bisnis yang lebih besar.

Bagaimana dengan basis data grafik? Mereka "NoSQL" juga. Lihatlah basis data seperti OrientDB. Jika Anda ingin berdebat kinerja ... Saya tidak berpikir Anda akan menunjukkan kepada saya database SQL yang lebih cepat di sana =) ... dan basis data grafik memiliki beberapa aplikasi yang sangat luar biasa berdasarkan pada apa yang perlu Anda lakukan.

Aturan teknologi (dan internet) jangan terlalu nyaman dengan satu hal. Anda akan dibatasi dan mengatur diri sendiri untuk gagal.

Tom
sumber
1
Saya tidak melihat apa pun di tautan itu atau di sini yang membuktikan Anda tidak dapat melakukan analisis sentimen dalam database SQL. contoh mongoDB mendapat manfaat dari Javascript di DB, jadi Anda bisa menggunakan bahasa apa pun yang disematkan dalam database SQL. Misalnya Postgres + R.
Spacedman
Senang melihat di mana Anda bisa mengeksekusi kode dan memetakan / mengurangi dalam database tersebut. Dalam semua keseriusan (terutama Postgres). ... dan bahkan jika Anda bisa, itu masih tidak membuat jawaban kurang valid. Satu hanya mungkin ingin menggunakan NoSQL. Itu berhasil.
Tom
1
Postgres + C, Python, Perl, R, beri Postgres DB Anda ke dalam algoritma pembelajaran mesin terbaru. Mudah: postgresql.org/docs/9.0/static/xplang.html
Spacedman
Bagus. Saya harus mencobanya kapan-kapan. Bagaimana dengan MySQL?
Tom