Veri biliminde NoSQL veritabanının kullanımı


16

Veri analizi için MongoDB gibi NoSQL veritabanları nasıl kullanılabilir? Veri analizini daha hızlı ve güçlü hale getirebilecek özellikler nelerdir?


2
En büyük kullanım, veri depolamak ve veri almaktır. Aslında, bu sadece bir NOSQL veritabanı veya herhangi bir veritabanı için kullanılır. Sorunuzu daha iyi hale getirmek ister misiniz?
Spacedman

Evet, veritabanı çoğunlukla veri depolamak ve almak için kullanılır. Veri analizi için nasıl kullanılabilirler? Veri analizini kolay ve güçlü kılan mongodb gibi NOSQL veritabanlarına yerleştirilmiş araçlar nelerdir?
jithinjustin

1
Yorumunuzu ekleyerek sorunuzu düzenleyerek geliştirin.
Spacedman

Yanıtlar:


23

Dürüst olmak gerekirse, çoğu NoSQL veritabanı büyük verilerdeki uygulamalar için çok uygun değildir. Bütün büyük veri uygulamalarının büyük çoğunluğu için, performansı MongoDB gibi bir ilişkisel veritabanı ile karşılaştırıldığında MySQL olduğu ölçüde tamamen MongoDB gibi bir şey uzak durmak emrine yoksul yeterlidir.

Bununla birlikte, büyük veri kümeleriyle çalışırken kesinlikle sizin lehinize çalışan NoSQL veritabanlarının gerçekten kullanışlı birkaç özelliği var, ancak bu faydaların okuma için SQL'e kıyasla NoSQL'in genel olarak zayıf performansından daha ağır basması yoğun işlemler (tipik olarak büyük veri kullanım örneklerine benzer) düşüktür.

  • Şema Yok - Çok sayıda yapılandırılmamış veri ile çalışıyorsanız, bir şemaya gerçekten karar vermek ve katı bir şekilde uygulamak zor olabilir. NoSQL veritabanları genel olarak bunu destekliyor ve şemasız belgeleri anında eklemenize izin verecek, bu kesinlikle bir SQL veritabanının destekleyeceği bir şey değil.
  • JSON - CSV dosyalarıyerine JSON tarzı belgelerle çalışıyorsanız,veritabanı katmanı için MongoDB gibi bir şey kullanmanın birçok avantajı olduğunu göreceksiniz. Genellikle iş akışı tasarrufları artan sorgu sürelerinden daha ağır basmaz.
  • Kullanım Kolaylığı - SQL veritabanlarının her zaman zor olduğunu veya Cassandra'nın dünyanın en kolay kurulumu olduğunu söylemiyorum ama genel olarak NoSQL veritabanlarının kurulumu ve kullanımı SQL veritabanlarından daha kolaydır. MongoDB, ( SQLite dışında ) en kolay veritabanı katmanlarından biri olarak bilinen bunun özellikle güçlü bir örneğidir . SQL de normalleştirme ile ilgilenir ve genellikle geliştirme sürecini yavaşlatan SQL en iyi uygulamalarının büyük bir mirası vardır.

Şahsen , veri bilimi uygulamalarınız için bir arka uç seçmek istiyorsanız, belirli sorgu türleri için gerçekten iyi performans gösteren Neo4j gibi grafik veritabanlarına da göz atmanızı önerebilirim .


Haklısın. NOSQL veritabanları temel olarak json gibi yapılandırılmamış veya yarı yapılandırılmış verileri depolamak için kullanılır. Onlarla yapabileceğimiz bazı veri analizi türlerini açıklayabilir misiniz? Mongodb içine veri analizi için kullanılabilecek araçlar nelerdir?
jithinjustin

1
@jithinjustin mongo ya da gerçekten herhangi bir veritabanı yerleşik veri analiz araçları yoktur. Ayrıca, jsontamamen yapılandırılmış verilerdir. Teknik olarak herhangi bir veri analizi yapabilirsiniz, bir NOSQL veritabanı kullanarak aslında ilgili değildir. Yine de analytica gibi mongo üzerine inşa edilmiş aletler var .
indico

1
Bunların hepsini bilmiyorum. MongoDB, MySQL'den daha iyi performans gösterebilir. PostgreSQL (bu arada JSON'u kabul edebilir) derseniz daha iyi bir argümanınız olur. Her iki durumda da, NoSQL kullanmamanın bir nedeni olarak bazı keyfi "performans" ı (kullanım durumunun ne olduğunu bilmiyoruz) düşünmezdim. Ayrıca birden fazla veritabanı kullanarak indirim yapmayın. Unutmayın, MongoDB, SQL'in sahip olmadığı inanılmaz toplama özelliklerine sahiptir.
Tom

1
@Tom performans üzerine, mongo'nun aslında mysql'den daha iyi performans gösteren tek görevin , veri analizinin nispeten küçük bir parçası olan ekler ( moredevs.ro/mysql-vs-mongodb-performance-benchmark ) olduğunu göreceksiniz . SQL'in toplama özellikleri Mongo'dan daha olgun. MYSQL ve Postgres'e göre, sayılar çok geçici olarak eğrilmiş ve her ikisi de benzer performans sunma eğilimindedir. MYSQL daha yaygındır, bu yüzden bunun yerine bahsetmiştim, ancak ikisi oldukça benzer.
indico

İşler belleğe sığdığında MongoDB'de her zaman daha iyi performans gördüm. Ben bir miktar kazanım ile ölçütler alıyorum çünkü biraz Google yaparsanız, MongoDB'yi daha hızlı gösteren bir dizi ölçüt bulacaksınız. Gerçekten sizin ihtiyaçlarınıza bağlıdır. Bununla birlikte, orijinal soruyu cevaplamaya yardımcı olmak için - büyük veri bilimi ve analitikte NoSQL için birçok kullanımın olduğunu düşünüyorum.
Tom


4

Birden fazla veritabanı düşünün, deneyin ve hatta kullanın. Burada sadece bir "performans" sorunu değil. Gerçekten gereksinimlerinize inecek. Ne kadar veri hakkında konuşuyorsunuz? ne tür veriler? ne kadar hızlı ihtiyacın var? Daha ağır mı okuyorsunuz yoksa ağır mı yazıyorsunuz?

SQL veritabanında yapamayacağınız bir şey: Duyarlılığı hesaplayın. http://www.slideshare.net/shift8/mongodb-machine-learning

Tabii ki bu durumda hız ihtiyaçlarınız için yeterince hızlı olmayabilir, ancak bu mümkün bir şeydir. Belirli toplam değerlerin bir miktar önbelleğe alınması ile bile oldukça kabul edilebilirdi. Neden bunu yaptın? Kolaylık.

Kolaylık gerçekten sizin ikna edeceğiniz bir şeydir. Tam da bu yüzden (bence) NoSQL veritabanları oluşturuldu. Performans da elbette, ancak karşılaştırmaları karşılaştırmaya ve diğer endişelere daha fazla odaklanmaya çalışıyorum.

MongoDB (ve diğer bazı NoSQL) veritabanları, yerleşik harita / azaltma gibi çok güçlü özelliklere sahiptir. Bu, Hadoop gibi bir şey kullanmanın hem maliyet hem de zamandan tasarruf etmesine neden olabilir. Veya daha büyük bir iş başlatmak için bir prototip veya MVP sağlayabilir.

Grafik veritabanları ne olacak? Onlar da "NoSQL" dir. OrientDB gibi veritabanlarına bakın. Performansı tartışmak istiyorsanız ... Bana orada daha hızlı bir SQL veritabanı göstereceğinizi düşünmüyorum =) ... ve grafik veritabanlarında yapmanız gerekenlere göre gerçekten harika bir uygulama var.

Teknoloji kuralı (ve internet) tek bir şeyle çok rahat olmaz. Sınırlı olacak ve kendinizi başarısızlığa ayarlayacaksınız.


1
Bu bağlantıda veya burada bir SQL veritabanında duygu analizi yapamayacağınızı kanıtlayan hiçbir şey görmüyorum. mongoDB örnekleri, DB'deki Javascript'ten yararlanır, böylece bir SQL veritabanında herhangi bir gömülü dili kullanabilirsiniz. Örneğin Postgres + R.
Spacedman

Nerede kod yürütmek ve bu veritabanlarında harita / azaltmak olabilir görmek isterim. Tüm ciddiyette (özellikle Postgres). ... ve yapabilseniz bile, bu hala yanıtı daha az geçerli kılmaz. Biri sadece NoSQL kullanmak isteyebilir. Çalışıyor.
Tom

1
Postgres + C, Python, Perl, R, Postgres DB'nizi en son makine öğrenme algoritmalarına besleyin. Kolay: postgresql.org/docs/9.0/static/xplang.html
Spacedman

Güzel. Bir ara denemek zorunda kalacağım. MySQL ne durumda?
Tom
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.