要CouchDB还是不要?

Kav*_*ian 6 database oracle couchdb oracle11g nosql

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

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

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

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

注意:为什么我想到CouchDB?

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

谢谢

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

Jas*_*ith 23

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

  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似乎是扩展核心应用程序而不是替换它的理想选择.

  • 非常感谢!这比我希望的更有信息和价值! (2认同)
  • 我听过Jan Lehnardt(Couchbase联合创始人,原来的Apache CouchDB提交者)调用PostgreSQL,"*其他*好的数据库":) (2认同)