データサイエンスでのNoSQLデータベースの使用


16

MongoDBのようなNoSQLデータベースをデータ分析に使用するにはどうすればよいですか?データ分析をより高速かつ強力にする機能は何ですか?


2
主な用途は、データの保存とデータの取得です。実際、これはNOSQLデータベースまたは任意のデータベースの唯一の用途です。質問を改善したいですか?
Spacedman 14

はい、データベースは主にデータの保存と取得に使用されます。データ分析にどのように使用できますか?データ分析を簡単かつ強力にするmongodbのようなNOSQLデータベースに組み込まれているツールは何ですか?
jithinjustin

1
コメントに追加するのではなく、編集して質問を改善してください。
Spacedman 14

回答:


23

正直に言うと、ほとんどのNoSQLデータベースはビッグデータのアプリケーションにはあまり適していません。すべてのビッグデータアプリケーションの大半については、のパフォーマンスMongoDBはのようなリレーショナルデータベースに比べて、MySQLがある大幅に完全にMongoDBのようなものから離れて滞在令状に貧しい十分です。

そうは言っても、NoSQLデータベースには、大規模なデータセットで作業しているときに確実に機能するいくつかの非常に便利なプロパティがありますが、読み取りのSQLと比較して、NoSQLの一般的なパフォーマンスがこれらのメリットを上回る可能性があります集中的な操作(一般的なビッグデータの使用例に最も類似)は少ないです。

  • スキーマなし -構造化されていないデータを大量に処理している場合、スキーマを実際に決定して厳密に適用するのは難しいかもしれません。一般に、NoSQLデータベースはこれを非常にサポートしており、スキーマなしのドキュメントをオンザフライで挿入できますが、これは確かにSQLデータベースではサポートされません。
  • JSON - CSVファイルではなくJSONスタイルのドキュメントを使用している場合、MongoDBのようなものをデータベース層に使用することには多くの利点があります。一般に、ワークフローの節約は、クエリ時間の増加を上回っていません。
  • 使いやすさ-SQLデータベースは常に使いにくい、またはCassandraが世界で最も簡単にセットアップできると言っているわけではありませんが、一般的にNoSQLデータベースはSQLデータベースよりもセットアップと使用が簡単です。MongoDBは、この最も強力な例であり、最も使いやすいデータベースレイヤーの1つとして知られています(SQLiteの外部)。SQLは多くの正規化も処理しますが、SQLのベストプラクティスには多くのレガシーがあり、一般に開発プロセスが滞ります。

個人的には、データサイエンスアプリケーションのバックエンドを選択することを検討している場合、特定の種類のクエリに対して非常に優れたパフォーマンスを示すNeo4jなどのグラフデータベースも確認することをお勧めします。


あなたが正しいです。NOSQLデータベースは主に、jsonのような非構造化データまたは半構造化データの保存に使用されます。それらを使用して実行できるデータ分析の種類について説明してください。データ分析に使用できるmongodbに組み込まれているツールは何ですか?
jithinjustin

1
@jithinjustinには、mongoに組み込まれているデータ分析ツールや、実際にはデータベースはありません。また、json完全に構造化されたデータです。技術的にはあらゆる種類のデータ分析を行うことができますが、実際にはNOSQLデータベースは関係ありません。ただし、analyticaなど mongoの上に構築されたツールがあります。
インディコ14

1
私はすべてを知りません。MongoDBは、MySQLよりもパフォーマンスが優れています。PostgreSQL(ちなみにJSONを受け入れることができます)と言った場合は、より適切な引数があります。いずれにせよ、NoSQLを使用しない理由は、arbitrary意的な「パフォーマンス」(ユースケースが何であるかはわかりません)であるとは考えません。また、複数のデータベースを使用して割引しないでください。MongoDBには、SQLにはない素晴らしい集約機能があることを忘れないでください。
トム14

1
パフォーマンスに関する@Tomでは、mongoが実際にmysqlを上回る唯一のタスクは挿入(moredevs.ro/mysql-vs-mongodb-performance-benchmark)であり、これはデータ分析の比較的小さな部分であることがわかります。SQLの集計機能は、Mongoよりもはるかに成熟しています。MYSQLとPostgresに関しては、数値は非常に一時的に偏っており、どちらも同様のパフォーマンスを提供する傾向があります。MYSQLはより一般的であるため、代わりにそのことを述べましたが、この2つは非常によく似ています。
インディコ14

物事がメモリに収まるとき、私は常にMongoDBでより良いパフォーマンスを見てきました。Googleを少し使用すると、MongoDBがより高速であることが示された多数のベンチマークを見つけることができるので、私はベンチマークを採用します。それは本当にあなたのニーズに依存します。そうは言っても、元の質問に答えるのを助けるために-ビッグデータの科学と分析におけるNoSQLの使用法はたくさんあると思います。
トム14

4

スキーマフリーのNoSQLアプローチの利点の1つは、時期尚早にコミットせず、Apache Drillなどの適切なツールを使用してクエリ時に適切なスキーマを適用できることです。詳細については、このプレゼンテーションを参照してください。MySQLは、ビッグデータ設定での最初の選択ではありません。


これは、NoSQL、JSON、およびドリルに関する関連する質問です。datascience.stackexchange.com
9568

4

複数のデータベースを検討し、試してみて、おそらく使用することもできます。ここでは、単に「パフォーマンス」の問題ではありません。それは本当にあなたの要件に来るでしょう。どれくらいのデータについて話しているのですか?どんなデータ?どれくらい早く必要ですか?もっと読むのが重いですか、書くのが重いですか?

SQLデータベースではできないことの1つは、センチメントの計算です。http://www.slideshare.net/shift8/mongodb-machine-learning

もちろん、その場合の速度はあなたのニーズに対して十分に速くないかもしれませんが、それは可能です。特定の集計値をキャッシュすることで、それでもまったく受け入れられました。なぜこれをするのですか?便利。

利便性は本当にあなたが説得しようとしているものです。それがまさに(私の意見では)NoSQLデータベースが作成された理由です。パフォーマンスももちろんですが、ベンチマークを割り引いて、他の懸念にもっと集中しようとしています。

MongoDB(およびその他のNoSQL)データベースには、組み込みのmap / reduceなどの非常に強力な機能がいくつかあります。これにより、Hadoopなどを使用するよりもコストと時間の両方を節約できます。または、より大きなビジネスを立ち上げるためのプロトタイプまたはMVPを提供できます。

グラフデータベースはどうですか?それらも「NoSQL」です。OrientDBのようなデータベースを見てください。パフォーマンスについて議論したい場合は...高速なSQLデータベースを見せてくれるとは思いません=)...そしてグラフデータベースには、あなたがする必要があることに基づいて本当に素晴らしいアプリケーションがあります。

テクノロジーのルール(およびインターネット)は、1つのことにあまり慣れていません。あなたは制限され、失敗に備えます。


1
そのリンクやここには、SQLデータベースではセンチメント分析ができないことを証明するものは何もありません。mongoDBの例はDBのJavascriptの恩恵を受けるため、SQLデータベースで任意の埋め込み言語を使用できます。例のPostgres + Rについて
Spacedman

それらのデータベースのどこでコードを実行してmap / reduceできるかを知りたいと思います。すべての深刻さ(特にPostgres)。...そして、たとえできたとしても、それでも答えはそれほど有効ではありません。単にNoSQLを使用したい場合があります。動作します。
トム

1
Postgres + C、Python、Perl、Rは、Postgres DBを最新の機械学習アルゴリズムにフィードします。簡単:postgresql.org/docs/9.0/static/xplang.html
Spacedman 14

いいね いつか試してみる必要があります。MySQLはどうですか?
トム14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.