繁体   English   中英

要CouchDB还是不要?

[英]To CouchDB or not to?

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

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

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

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

注意:为什么我想到CouchDB?

  1. 我已经读过它能够非常好地水平扩展的能力。 这在我们的案例中非常重要。
  2. 由于它是无模式的,因此我们可以更正确地处理更改,因为我们在不同的表和存储过程中进行了大量更改。

谢谢

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

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

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

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

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

那么,CouchDB在哪里可以让您受益?

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

对于您的项目,这些是CouchDB的关键优势:

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

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

我不同意这个答案..

我认为CouchDB适合特别好的车队跟踪用例,因为它们具有分布式特性。 此外,用于传输位置数据的gprs连接的不可靠性使得couchapp的离线优先模式成为您应用的完美搭档。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM