[英]To CouchDB or not to?
Note: (I have investigated CouchDB for sometime and need some actual experiences). 注意:(我已经调查了CouchDB一段时间并需要一些实际经验)。
I have an Oracle database for a fleet tracking service and some status here are: 我有一个用于车队跟踪服务的Oracle数据库,这里的一些状态是:
Now the question: Can CouchDB be used in this case? 现在的问题是:在这种情况下可以使用CouchDB吗?
Note: Why I thought of CouchDB? 注意:为什么我想到CouchDB?
Thanks 谢谢
Edit I: I need transactions too. 编辑I:我也需要交易。 But I can tolerate other solutions too. 但我也可以容忍其他解决方案。 And If there is a little delay in replication, that would be no problem IF it is guaranteed. 如果复制有一点延迟,那么如果有保证就没问题。
You are enjoying the following features with your database: 您正在享受数据库的以下功能:
These are all reasons not to switch to CouchDB. 这些都是不切换到CouchDB的原因。
Of course, the story is not so simple. 当然,故事并非如此简单。 I think you have discovered what many people never learn: complex problems require complex solutions. 我想你已经发现了许多人从未学过的东西:复杂的问题需要复杂的解决方案。 We cannot simply replace our database and take the rest of the month off. 我们不能简单地更换我们的数据库,并在休息一个月。 Sure, CouchDB (and BigCouch) supports excellent horizontal scaling (and cross-datacenter replication too!) but the cost will be rewriting a production application. 当然,CouchDB(和BigCouch)支持出色的水平扩展(以及跨数据中心复制!),但成本将重写生产应用程序。 That is not right. 那是不对的。
So, where can CouchDB benefit you? 那么,CouchDB在哪里可以让您受益?
I suggest that you begin augmenting your application with CouchDB applications. 我建议您开始使用CouchDB应用程序扩充您的应用程序。 Deploy CouchDB, import your data into it, and build non mission-critical applications. 部署CouchDB,将数据导入其中,并构建非任务关键型应用程序。 See where it fits best. 看看它最适合的地方。
For your project, these are the key CouchDB strengths: 对于您的项目,这些是CouchDB的关键优势:
CouchDB gives you a simple web server and web site. CouchDB为您提供了一个简单的 Web服务器和网站。 It gives you a built-in web services API to your data. 它为您的数据提供了内置的 Web服务API。 It makes it easy to build web apps. 它使构建Web应用程序变得容易。 Therefore, CouchDB seems ideal for extending your core application, not replacing it. 因此,CouchDB似乎是扩展核心应用程序而不是替换它的理想选择。
I don't agree with this answer.. 我不同意这个答案..
I think CouchDB suits especially well fleet tracking use case, due to their distributed nature. 我认为CouchDB适合特别好的车队跟踪用例,因为它们具有分布式特性。 Moreover, the unreliable nature of gprs connections used for transmitting position data, makes the offline-first paradygm of couchapps the perfect partner for your application. 此外,用于传输位置数据的gprs连接的不可靠性使得couchapp的离线优先模式成为您应用的完美搭档。
For uploading data from truck, Insertion-rate can take a huge advantage from couchdb replication and bulk inserts, especially if performed on ssd-based couchdb hosting . 对于从卡车上传数据,插入速率可以从couchdb复制和批量插入中获得巨大优势,尤其是在基于ssd的couchdb托管上执行时 。
For downloading data to truck, couchdb provides filtered replication, allowing each truck to download only the data it really needs, instead of the whole database. 为了将数据下载到卡车,couchdb提供过滤复制,允许每辆卡车只下载它真正需要的数据,而不是整个数据库。
Regarding complex queries, NoSQL database are more flexible and can perform much faster than relation databases.. It's only a matter of structuring and querying your data reasonably. 关于复杂查询,NoSQL数据库更灵活,并且执行速度比关系数据库快得多。这只是合理构建和查询数据的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.