怎么能 nosql 数据库 mongodb 用于数据分析?他们中有哪些功能可以使数据分析更快,更强大?

有帮助吗?

解决方案

老实说,大多数NOSQL数据库都不适合大数据中的应用程序。对于绝大多数大数据应用程序, mongodb 与类似的关系数据库相比 mysql显著地 足够贫穷,可以保证完全远离MongoDB。

话虽如此,当您使用大型数据集时,NOSQL数据库的几个非常有用的属性肯定对您有利,尽管这些好处的机会超过了NOSQL的总体表现不佳 SQL 对于阅读密集型操作(最类似于典型的大数据用例)很低。

  • 没有模式 - 如果您正在使用许多非结构化数据,则可能很难实际决定并严格地应用模式。 NOSQL数据库通常非常支持这一点,并且可以允许您即时插入无模式的文档,这肯定不是SQL数据库支持的东西。
  • JSON - 如果您碰巧使用JSON风格的文档而不是使用 CSV 文件,然后您将在将MongoDB之类的数据库用于数据库层时看到很多优势。通常,工作流的节省并不大于增加的查询时间。
  • 使用方便 - 我并不是说SQL数据库总是很难使用,或者 卡桑德拉 是世界上最简单的设置,但是通常NOSQL数据库比SQL数据库更容易设置和使用。 MongoDB是一个特别强大的例子,以最简单的数据库层之一而闻名 sqlite)。 SQL还处理了很多规范化,并且SQL的最佳实践很大程度上通常只是陷入开发过程。

我个人可能建议您还查看 图数据库neo4j 如果您想为数据科学应用程序挑选后端,那么对于某些类型的查询表现出了很好的表现。

其他提示

无模式的NOSQL方法的好处之一是,您不会过早提交,并且可以在查询时间应用正确的模式,例如 Apache Drill. 。看 这个演示文稿 有关详细信息。 MySQL并不是我在大数据设置中的首选。

考虑,尝试,甚至使用多个数据库。这不仅是这里玩的“性能”问题。这确实取决于您的要求。您在谈论多少数据?什么样的数据?您需要多快?您读书更重还是写重?

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

当然,在这种情况下的速度可能不足以满足您的需求,但这是可能的。通过某些特定骨料值的缓存,即使是可以接受的。你为什么要这样做?方便。

便利确实是您要说服的。这就是为什么(我认为)创建NOSQL数据库的原因。当然,性能也是如此,但是我试图打折基准并将更多地关注其他问题。

MongoDB(和其他一些NOSQL)数据库具有一些非常强大的功能,例如内置地图/减少。这可能会节省使用Hadoop之类的成本和时间。或者它可以提供原型或MVP来开展更大的业务。

那图数据库呢?它们也是“ nosql”。查看诸如OrientDB之类的数据库。如果您想争论性能...我认为您不会向我展示一个更快的SQL数据库=)...并且图数据库具有基于您需要做的事情的非常惊人的应用程序。

技术规则(和互联网)对一件事不太满意。您将受到限制,并为失败而准备自己。

许可以下: CC-BY-SA归因
scroll top