【问题标题】:To CouchDB or not to?去 CouchDB 还是不去?
【发布时间】:2012-04-15 21:42:22
【问题描述】:

注意:(我研究了CouchDB一段时间,需要一些实际经验)。

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

  1. 100 GB 分贝
  2. 每秒大量插入(我们收到的消息)
  3. 可靠的复制(通过 4 个服务器上的 Oracle 流)
  4. 繁重的复杂查询。

现在的问题是:在这种情况下可以使用 CouchDB 吗?

注意:为什么我想到了 CouchDB?

  1. 我已经了解了它的水平扩展能力非常好。这对我们来说非常重要。
  2. 由于它是无架构的,我们可以更恰当地处理更改,因为我们在不同的表和存储过程中有很多更改。

谢谢

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

【问题讨论】:

  • 您需要交易吗?您需要有保证的同步复制吗?
  • 感谢您的澄清。是的;我需要事务,但我可以容忍复制的一些延迟。
  • 谢谢edze!但这只是回答了一部分!
  • 解释您所说的“繁重的复杂查询”是什么意思。它们的复杂程度是否比关系模型更容易适应 CouchDB 模型?

标签: database oracle nosql couchdb oracle11g


【解决方案1】:

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

  1. 在生产中使用它
  2. 数据自然是相关的(与自身相关)
  3. 巨大的插入率(无 MVCC 问题)
  4. 复杂查询
  5. 交易

这些都是切换到 CouchDB 的原因。

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

那么,CouchDB 能为您带来哪些好处?

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

对于您的项目,这些是 CouchDB 的主要优势:

  1. 它是一个小而简单的工具,您可以轻松地在工作站或服务器上进行设置
  2. 它是一个网络服务器。它将非常与您的基础架构和安全策略很好地集成在一起。
    • 例如,如果您有一个灵活的策略,只需在您的 LAN 上设置它
    • 如果您有严格的网络和防火墙政策,您可以在 VPN 后面或使用您的 SSL 证书进行设置
  3. 完成该步骤后,现在非常可以轻松访问。只需发出 http 或 http 请求。无论您是使用自定义工具从 Oracle 导入数据,还是使用您的网络浏览器,都一样。
  4. 是的! CouchDB 也是一个应用服务器!它有一个内置的管理应用程序,用于探索数据、更改配置等(如内置的 phpmyadmin)。但对您而言,价值在于将管理应用程序和报告构建为简单的传统 HTML/Javascript/CSS 应用程序。您可以随心所欲地变得花哨或简单。
  5. 随着您的项目发展壮大并变得有价值,您可以使用复制来发展壮大
    • 使用更大的 CouchDB 集群扩展核心
    • 或者,将您的数据和应用程序复制到不同的数据中心,或复制到单个工作站或手机等(到时候该策略会更加明显。)

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

【讨论】:

  • 非常感谢!这比我希望的信息量更大、更有价值!
  • 附注:我们仍在寻找用开源技术(可能是 PostgreSQL 或 MySQL(?))取代 Oracle(主要原因是成本高)。
  • 我听说 Jan Lehnardt(Couchbase 联合创始人,原 Apache CouchDB 提交者)称 PostgreSQL 为“其他优秀数据库”:)
  • 同意 -PostgreSQL 被低估了。与其他开源竞争对手相比,它具有更一致的功能集。
【解决方案2】:

我不同意这个答案..

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

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

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

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

【讨论】:

    猜你喜欢
    • 2015-12-07
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2013-04-26
    • 2016-09-10
    相关资源
    最近更新 更多