NoSQL 数据库在数据科学中的应用

数据挖掘 大数据 nosql mongodb
2021-10-08 23:56:14

如何使用MongoDB等NoSQL数据库进行数据分析?它们有哪些特性可以让数据分析更快更强大?

3个回答

老实说,大多数 NoSQL 数据库都不太适合大数据中的应用程序。对于绝大多数大数据应用程序而言,与MySQL等关系数据库相比, MongoDB的性能明显差到足以保证完全远离 MongoDB 之类的东西。

话虽如此,当您处理大型数据集时,NoSQL 数据库有几个非常有用的属性肯定对您有利,尽管这些好处的机会超过了 NoSQL 与读取SQL相比通常较差的性能 -密集型操作(最类似于典型的大数据用例)很低。

  • 无模式- 如果您正在处理大量非结构化数据,则可能很难真正决定并严格应用模式。NoSQL 数据库通常对此非常支持,并且允许您即时插入无模式文档,这肯定不是 SQL 数据库支持的。
  • JSON - 如果您碰巧使用 JSON 样式的文档而不是CSV文件,那么您将看到使用 MongoDB 之类的东西作为数据库层的很多优势。一般来说,工作流节省不会超过增加的查询时间。
  • 易于使用——我并不是说 SQL 数据库总是很难使用,或者说Cassandra是世界上最容易设置的东西,但总的来说,NoSQL 数据库比 SQL 数据库更容易设置和使用。MongoDB 是这方面的一个特别有力的例子,它以最容易使用的数据库层之一而闻名(在SQLite之外)。SQL 还处理大量的规范化,并且有大量的 SQL 最佳实践遗留下来,通常会阻碍开发过程。

如果您正在为您的数据科学应用程序挑选后端,我个人可能会建议您也查看诸如Neo4j之类的图形数据库,它们在某些类型的查询中表现出非常好的性能。

无模式 NoSQL 方法的一个好处是您不会过早提交,并且您可以在查询时使用适当的工具(如Apache Drill )应用正确的模式。有关详细信息,请参阅此演示文稿MySQL 不会是我在大数据环境中的首选。

考虑、尝试,甚至可能使用多个数据库。这不仅仅是一个“性能”问题。这真的会归结为您的要求。你在说多少数据?什么样的数据?你需要多快?你读重还是写重?

这是您在 SQL 数据库中无法做到的一件事:计算情绪。http://www.slideshare.net/shift8/mongodb-machine-learning

当然,这种情况下的速度可能不足以满足您的需求,但这是可能的。通过对特定聚合值的一些缓存,它甚至是完全可以接受的。你为什么要这样做?方便。

方便真的是你会被说服的东西。这正是(在我看来)创建 NoSQL 数据库的原因。当然,性能也是如此,但我试图打折基准并更多地关注其他问题。

MongoDB(和其他一些 NoSQL)数据库有一些非常强大的特性,比如内置的 map/reduce。与使用 Hadoop 之类的东西相比,这可能会节省成本和时间。或者它可以提供原型或 MVP 来开展更大的业务。

图数据库呢?它们也是“NoSQL”。看看像 OrientDB 这样的数据库。如果你想争论性能......我不认为你会向我展示一个更快的 SQL 数据库 =)......并且图形数据库有一些非常棒的应用程序,基于你需要做的事情。

技术规则(和互联网)对一件事不太满意。你会受到限制,为失败做好准备。