Amazon Simple DB 与 Apache CouchDB 有什么不同?

发布于 2024-08-02 09:15:57 字数 135 浏览 7 评论 0原文

除了货币方面之外,Amazon 的 SimpleDB 与 Apache 的 CouchDB 在以下方面有何不同

  1. 与 Java、C++ 等编程语言的接口
  2. 性能和可扩展性
  3. 安装和维护

Other than the monetary aspects, how different is Amazon's SimpleDB from Apache's CouchDB in the following terms

  1. Interfacing with programming languages like Java, C++ etc
  2. Performance and Scalability
  3. Installation and maintenance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

新雨望断虹 2024-08-09 09:15:57

我是一个相当重的 SimpleDB 用户(我是 http://www.backupsdb.com/)但目前正在将一些项目从 SimpleDB 迁移到 Couch,所以我想我现在可以从双方看到这一点。

1.与 Java、C++ 等编程语言交互

使用 Couch 更容易,因为您可以使用 JSON 轻松地与它对话。 SimpleDB 需要做更多的工作,主要是由于签署每个安全请求的复杂性以及您获得的较低级别的访问权限,这要求您在繁忙信号等情况下实现指数退避。您可以为 SimpleDB 获得良好的库,尽管在现在有很多语言,这在很多方面消除了痛苦。

2.性能和可扩展性

我没有任何基准测试,但就我自己的用例而言,CouchDB 优于 SimpleDB。不过扩展起来比较困难——SimpleDB 很擅长这一点,你投入更多精力,它就会在你周围自动扩展。

不过,SimpleDB 中有很多偶尔令人恼火的限制,例如属性数量、属性大小、域数量等的限制。许多应用程序的主要烦恼是属性大小限制,这意味着您无法存储大型论坛帖子。解决方法是将它们卸载到其他东西(例如 S3)中,但这有时有点烦人。显然,CouchDB 不存在这个问题,事实上,您可以将大文件附加到文档中这一事实是特别吸引我的一件事。

在扩展方面,您还应该考虑 bigcouch 它为您提供了一个分布式集群并且更接近与您通过 SDB 获得的东西一样。

3.安装和维护

我实际上发现使用 CouchDB 更容易。我怀疑这取决于您需要为 SimpleDB 使用哪个库,但是当我开始使用它时,亚马逊提供的库还不是很成熟,并且开源社区的库存在各种问题,这意味着启动并运行并做一些严肃的事情它花费的时间比我希望的要多。我怀疑现在情况好多了。

CouchDB 的安装非常简单,而且我喜欢它的 Web 界面。事实上,这将是我对 SimpleDB 的主要批评 - 尽管亚马逊几乎为所有其他服务提供了 Web 控制台,但仍然没有任何形式的 Web 控制台。这就是为什么我们编写了非常基本的 BackupSDB,以便我们可以提取 XML 中的数据并从 Web 浏览器运行查询,我希望看到 Amazon 现在做了类似的事情(但更强大、更好),并且对此感到非常惊讶他们没有。虽然有很多第三方 Firefox 插件和一些应用程序,但我的印象是 SimpleDB 并没有被广泛使用 - 这实际上只是一种预感。

4.其他观察

我认为最大的问题是,使用 SimpleDB,您将所有数据委托给第三方,而没有简单的方法将其取出(您需要编写一些东西来做到这一点),而且您的成本仍然很高轻轻地升起。当您的成本与功能强大的专用数据库服务器相当时,您会觉得这样会获得更好的价值,但此时迁移的麻烦并不是小事,因为您将承担很大的责任云。

我一开始是一名亚马逊的大力传播者,在大多数事情上我现在仍然是,但当谈到 SDB 时,我觉得这对亚马逊来说有点像一个业余爱好项目,就像苹果电视对史蒂夫·乔布斯来说一样。

I'm a fairly heavy SimpleDB user (I'm the developer of http://www.backupsdb.com/) but am currently migrating some projects off SimpleDB and into Couch, so I guess I can see this from both sides now.

1. Interfacing with programming languages like Java, C++ etc

Easier with Couch as you can talk to it very easily using JSON. SimpleDB is a bit more work, largely due to the complexities of signing each request for security and the lower level access you get which requires you to implement exponential back off in the case of busy signals etc. You can get good libraries for SimpleDB though in many languages now and this takes the pain away in many respects.

2. Performance and Scalability

I don't have any benchmarks, but for my own use case, CouchDB outperforms SimpleDB. It's harder to scale though - SimpleDB is great at that, you chuck more at it and it autoscales around you.

There are lots of occasionally irritating limits in SimpleDB though, limits on the number of attributes, size of attributes, number of domains etc. The main annoyance for many applications is the attribute size limit which means you can't store large forum posts for example. The workaround is to offload those into something else such as S3, but it's a bit annoying at times. Obviously CouchDB doesn't have that issue and indeed the fact that you can attach large files to documents is one thing that particularly attracts me to it.

Scaling wise, you should also possibly be looking at bigcouch which gives you a distributed cluster and is closer to what you get with SDB.

3. Installation and Maintenance

I actually found it much easier with CouchDB. I suspect it depends on which library you need to use for SimpleDB, but when I was starting with it, the Amazon supplied libraries weren't very mature and the open source community ones had various issues that meant getting up and running and doing something serious with it took more time than I would have liked. I suspect this is much better now.

CouchDB was surprisingly easy to install and I love the web interface to it. Indeed that would be my major criticism of SimpleDB - Amazon still don't have any form of web console for it despite having web consoles for almost every other service. That's why we wrote the very basic BackupSDB just so we could extract data in XML and run queries from a web browser, I'd like to have seen Amazon do something similar (but more powerful and better) by now and have been very surprised that they haven't. There are lots of third party firefox plugins and some applications for it though but I have the impression that SimpleDB isn't that widely used - this is only a hunch really.

4. Other Observations

The biggest issue I think is that with SimpleDB you are entrusting all your data to a third party with no easy way of getting it out (you'll need to write something to do that), plus your costs keep gently rising. When you get to the point that the cost is comparable to a powerful dedicated database server, you kind of feel you'd get better value that way, but the migration headache is non trivial by this point as you'll have a large commitment to the cloud.

I started off as a huge Amazon evangelist, and for most things I still am, but when it comes to SDB, I feel it's a bit of a hobby project for Amazon the way the Apple TV was for Steve jobs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文