Database 去还是不去?

Database 去还是不去?,database,oracle,nosql,couchdb,oracle11g,Database,Oracle,Nosql,Couchdb,Oracle11g,注:(我已经调查了CouchDB一段时间,需要一些实际经验) 我有一个用于车队跟踪服务的Oracle数据库,以下是一些状态: 100 GB分贝 每秒大量插入(我们收到的消息) 可靠的复制(通过4台服务器上的Oracle streams) 繁重复杂的查询 现在的问题是:在这种情况下可以使用CouchDB吗 注:我为什么想到CouchDB 我读过关于它水平伸缩能力的文章。这对我们来说非常重要 由于它是无模式的,我们可以更恰当地处理更改,因为不同的表和存储过程中有很多更改 谢谢 编辑一: 我也需要交易

注:(我已经调查了CouchDB一段时间,需要一些实际经验)

我有一个用于车队跟踪服务的Oracle数据库,以下是一些状态:

  • 100 GB分贝
  • 每秒大量插入(我们收到的消息)
  • 可靠的复制(通过4台服务器上的Oracle streams)
  • 繁重复杂的查询
  • 现在的问题是:在这种情况下可以使用CouchDB吗

    注:我为什么想到CouchDB

  • 我读过关于它水平伸缩能力的文章。这对我们来说非常重要
  • 由于它是无模式的,我们可以更恰当地处理更改,因为不同的表和存储过程中有很多更改
  • 谢谢

    编辑一:
    我也需要交易。但我也能容忍其他解决方案。如果复制有一点延迟,如果有保证,那就没有问题。

    您正在享受数据库的以下功能:

  • 在生产中使用it
  • 数据自然是相关的(与自身相关)
  • 巨大的插入率(无MVCC问题)
  • 复杂查询
  • 交易
  • 这些都是切换到CouchDB的原因

    当然,故事并不是那么简单。我想你已经发现了很多人从未学过的东西:复杂的问题需要复杂的解决方案。我们不能简单地更换我们的数据库,然后让这个月的剩余时间休息。当然,CouchDB(和BigCoach)支持出色的水平扩展(以及跨数据中心复制!),但成本将是重写生产应用程序。这是不对的

    那么,CouchDB对你有什么好处呢

    我建议您开始使用CouchDB应用程序来扩充您的应用程序。部署CouchDB,将数据导入其中,并构建非关键任务应用程序。看看哪里最合适

    对于您的项目,以下是CouchDB的主要优势:

  • 它是一个小型、简单的工具,您可以轻松地在工作站或服务器上进行设置
  • 它是一个web服务器。它与您的基础架构和安全策略集成得非常好。
    • 例如,如果您有一个灵活的策略,只需在LAN上设置它
    • 如果您有严格的网络和防火墙策略,则可以在VPN后面或使用SSL证书进行设置
  • 完成这一步后,现在很容易访问它。只需发出http或http请求。无论您是使用自定义工具从Oracle导入数据,还是使用web浏览器,都是一样的
  • 对!!CouchDB也是一个应用服务器!它有一个内置的管理应用程序,用于浏览数据、更改配置等(如内置的phpmyadmin)。但对您来说,其价值在于将管理应用程序和报表构建为简单、传统的HTML/Javascript/CSS应用程序。你可以随心所欲,也可以随心所欲
  • 随着您的项目不断增长并变得有价值,您就可以使用复制来实现增长
    • 或者用更大的CouchDB集群扩展核心
    • 或者,将您的数据和应用程序复制到不同的数据中心,或复制到单个工作站或移动电话等(时机成熟时,该策略将更加明显)

  • CouchDB为您提供了一个简单的web服务器和web站点。它为您的数据提供了一个内置的web服务API。它使构建web应用程序变得容易。因此,CouchDB似乎非常适合扩展您的核心应用程序,而不是取代它。

    我不同意这个答案

    我认为CouchDB特别适合车队跟踪用例,因为它们是分布式的。此外,用于传输位置数据的gprs连接不可靠,这使得couchapps的离线first paradygm成为您应用程序的完美合作伙伴

    对于从卡车上载数据,插入速率可以从couchdb复制和大容量插入中获得巨大优势,尤其是在基于ssd的系统上执行时

    为了将数据下载到卡车,couchdb提供了过滤复制,允许每辆卡车只下载它真正需要的数据,而不是整个数据库


    对于复杂的查询,NoSQL数据库更灵活,执行速度比关系数据库快得多。。这只是合理构建和查询数据的问题。

    您需要交易吗?您需要保证同步复制吗?感谢您的澄清。对我需要事务处理,但我可以容忍复制延迟。谢谢edze!但这只回答了一部分!解释你所说的“繁重复杂的查询”是什么意思。它们在某种程度上比关系模型更适合CouchDB模型吗?非常感谢!这比我所希望的更具信息量和价值!旁注:我们仍在寻找用开源技术(PostgreSQL或MySQL(?)取代Oracle(主要原因是成本高)。我听说Jan Lehnardt(Couchbase联合创始人,最初的Apache CouchDB提交人)称PostgreSQL为“另一个好的数据库”:)同意——PostgreSQL被低估了。与其他开源竞争对手相比,它具有更一致的特性集。