【问题标题】:why everyone wants NOSQL other than large-scale Oracle Clusters?为什么每个人都想要 NOSQL 而不是大型 Oracle 集群?
【发布时间】:2010-08-23 02:30:50
【问题描述】:

oracle 在处理大型应用程序方面享有盛誉,并且还可以灵活地扩展到集群环境。为什么每个人都想要 NOSQL?

因为nosql db 便宜很多? 为什么不切换面向对象的数据库?

【问题讨论】:

  • 我上次检查时,Oracle 的定价每个核心 - 不便宜。
  • 面向对象的数据库、NoSQL 和 Oracle 都专注于不同的用例。
  • Oracle 标准版是每个插槽,企业版(和选项)是每个内核。
  • OODB 不是 NoSQL 的实例吗?

标签: database oracle nosql oodb


【解决方案1】:

首先,并不是每个人都想要 NoSQL。打包软件(例如 ERP)几乎都是主流 RDBMS 的东西。不要将开发工作量与使用量混淆。

现在发生的情况是,NoSQL 开辟了一系列根本不适合关系技术的应用程序,因此可以开发的应用程序激增。大多数可以在 RDBMS 平台上开发的东西已经并且正处于维护/升级阶段。由于整个全球金融环境,升级可能比平时少。

因此,在 10 年/15 年内,随着那些 NoSQL 应用程序进入同样成熟的水平,狂热将会平息,兴奋感也会降低。

【讨论】:

  • “不要将开发工作量与使用量混淆。”或者炒作的数量、新闻报道、博客文章......
【解决方案2】:

【讨论】:

    【解决方案3】:

    无论规模如何,SQL 解决方案都不一定是您想要的。 在某些情况下,您无法轻松预测模型的模式,或者最糟糕的是,您的数据仍然是无模式的。在这些情况下,您需要一个不会限制您的数据模型,而是允许您在发展数据的同时仍保持快速索引等核心能力所需的灵活性。

    另一个原因是 SQL 并不代表您想要查看数据的自然方式,主要是 Neo4J 或 GraphDB 等图形数据库允许开发人员或用户以更直观的方式处理链接的图形模型。

    当然,有一种方法可以在 Oracle RDBMS 中解决所有这些问题,但感觉更像是破解数据库以满足您的需求,而不是使用适合您的数据库。这听起来像是一项福利,但实际上它对简化应用程序的开发和分析大有帮助。

    现在,如果我们谈论的是规模,Oracle 可能会击败基于列的数据库,例如 HBase 或 Hypertable,但重要的是要注意,Oracle RDBMS 不仅更贵,而且更贵。在当今世界,即使是小型初创公司也拥有每天需要分析的 TB 级数据。即使是小公司也可以在云中使用由 100 台机器组成的集群来存储他们的数据,在这样的公司中,甲骨文并不是一个可行的选择,每年的许可成本和 DBA 的聘用都会阻止初创公司使用它。

    最后,您开始使用 NoSQL 的最后一个原因是速度,启动 MongoDB 并开始开发可以在 5 分钟内完成,有时您想在问题出现时处理并避免过早优化

    【讨论】:

    • OODB 怎么样~我认为 nosql db 不会持续很长时间,因为它们并没有真正减少数据库和 oop 之间的阻力。如果我们最终需要一个纯 oodb,使用 nosql 作为扩展 db 的解决方案似乎不明智?
    • 你可能是对的,也许 OODB 是未来,但对于许多现实世界的场景,NoSQL 是现在。我很确定 10 年后编程语言看起来会完全不同,但是,在我用 Go(谷歌编程语言)构建它之前,我仍然会用 Java 构建一个项目
    【解决方案4】:

    如果您愿意放弃一致性,那么您可以在多大程度上横向扩展一些 NoSQL 解决方案没有理论上的限制。

    一些 RDBMS 可以扩展很多,Oracle 是其中最好的,但是没有 RDBMS 可以让你降低一致性,因此即使是最好的也有一个非常明确的理论限制它可以扩展多少,更不用说现实世界的限制。

    网络上的一些大牌不能再仅仅依赖 RDBMS,还有很多其他的只是为了跟大牌一样。最后,一些解决方案确实最适合无scheam 结构,但我猜这些解决方案并不占NoSQL 用户的大部分。重点是扩展web 2.0。

    【讨论】:

      【解决方案5】:

      这是您要问的一个非常笼统的问题。您是在比较关系数据库和 NOSQL 数据库,还是比较商业或开源数据库?我们需要弄清楚,我们似乎是在将苹果与橙子进行比较,而您不会得到直接的答案。

      这是我的观点。

      DB 类型:如果你比较的是关系型数据库和 NOSQL 数据库,你应该参考这个link 而是。

      成本:如果您从成本角度进行比较,则每个都有自己的成本。 Oracle 将收取许可费用,而 NOSQL db(以 MongoDB 为例)是开源的,您无需支付许可费用。但是你需要一个对 NOSQL 有很好理解的人来管理和维护这个站点,这很难找到。

      应用程序:您正在编写什么样的应用程序?您需要了解应用程序的数据库要求。如果需要将大量非结构化数据存储为键值条目,则最好使用 NOSQL。另一方面,如果您要连接大量表并执行复杂的 SQL,您会更喜欢 SQL db。

      您提到了面向对象的数据库,这是 NoSQL 或关系数据库的另一种类型的数据库。最后,这取决于您的需求。为了扩大视野的选择,有些人可能听说过分层数据库,它主要存在于大型机环境中。 :-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-19
        • 2011-06-16
        相关资源
        最近更新 更多