Amazon s3 亚马逊SimpleDB

Amazon s3 亚马逊SimpleDB,amazon-s3,amazon-web-services,amazon-simpledb,Amazon S3,Amazon Web Services,Amazon Simpledb,有没有人考虑过使用类似于Amazon SimpleDB数据存储的东西作为后端数据库 SQL Server托管(至少在英国)非常昂贵,因此可以将类似的东西与云文件存储(S3)一起用于构建可以随应用程序增长的应用程序 理论上是伟大的,但有人会考虑使用它吗?事实上,现在有人真的在用它来制作真正的生产软件了吗?我很想看看你的评论。但是你真的需要SQL Server吗?你不能使用PostgreSQL或MySQL吗?事实证明,这两种方法都适用于大多数任务 现在,如果您需要SQL Server功能,那么您就不

有没有人考虑过使用类似于Amazon SimpleDB数据存储的东西作为后端数据库

SQL Server托管(至少在英国)非常昂贵,因此可以将类似的东西与云文件存储(S3)一起用于构建可以随应用程序增长的应用程序


理论上是伟大的,但有人会考虑使用它吗?事实上,现在有人真的在用它来制作真正的生产软件了吗?我很想看看你的评论。

但是你真的需要SQL Server吗?你不能使用PostgreSQL或MySQL吗?事实证明,这两种方法都适用于大多数任务

现在,如果您需要SQL Server功能,那么您就不走运了

另一种选择是租用服务器。贵到什么程度


(我使用AmazonS3为应用程序存储图像,至少在这方面,它还可以正常工作)

我没有使用SimpleDB,但我们的应用程序使用了S3、EC2和MySQL的组合

只要你愿意使用SimuldB,那么你不妨考虑使用MySQL(这是非常可扩展的,而不是很贵)。


在S3和EC2方面,它在实践中也很好。

这是对亚马逊服务的一个很好的分析

S3处理了我通常听到的所谓“blob存储”。典型的Web应用程序通常具有媒体文件和其他资源(图像、CSS样式表、脚本、视频文件等),这些资源仅通过名称/路径访问。然而,这些资源中的很多都有元数据(例如,YouTube上的视频文件有关于其评级、上传者、浏览次数等的元数据),这些元数据也需要存储。这种对可查询、计划化存储的需求是SimpleDB的用武之地。EC2提供了一个虚拟服务器,可用于计算,并带有一个本地文件系统实例,该实例在虚拟服务器因任何原因停机时不会持久。有了SimpleDB和S3,当您加入EC2提供的计算能力时,您就有了构建“Web2.0”风格应用程序的构建块。
但是,S3和SimpleDB都没有为那些只想拥有构建数据库驱动的Web应用程序的典型LAMP或WISC开发人员经验的开发人员提供解决方案,也没有为那些可能具有定制存储需求的应用程序提供解决方案,而这些应用程序无法很好地适应blob存储或计划化存储。由于无法访问持久文件系统,Amazon云计算平台上的开发人员不得不提出复杂的解决方案,包括手动将数据从EC2备份到S3,以获得所需的体验

我刚刚完成了一个库的编写,使在Perl中将应用程序移植到simpledb变得简单,Net::Amazon::simpledb::Simple,因为我发现Amazon客户端库很痛苦。这个库还没有在CPAN上,但它的初衷是使在SimpleDB中输入和输出哈希变得简单

我刚移植了一个应用程序来使用它。总的来说,我对SimpleDB印象深刻。。。即使效率低下的查询也只需2-3秒即可返回。SimpleDB似乎并不关心表的大小,因为它具有Erlang/parallel特性。这很容易

痛苦来自于你无法计数、求和或分组的事实。如果你打算做这些事情。。。那么SimpleDB可能不适合你。目前,就功能而言,它介于memcached和MySQL之间。您可以选择按限额订购,这很好。它也很好,你不必自己缩放它,它也不在乎你在里面放了多少东西。但像分析这样更高级的操作充其量也是痛苦的。您必须在服务器端进行自己的计算。在任何计算机上,我都可以使用simpledb CLI查询数据,这也是一个很大的优点

存在一些令人困惑的“gotchas”。例如,属性可以有多个值,并且在存储项时必须显式设置“replace”。此外,存储undef或null字符串会导致库错误,而不是删除该属性名称/值对或将其设置为null/空字符串

学习以一种基本上不规范的方式思考也有点奇怪,这就是为什么我会支持上面的建议,即它最适合新的应用程序。从SQL应用程序移植到SimpleDB会很痛苦,因为您的应用程序逻辑必须更改。你做事的方式有点不同。亚马逊文档非常善于解释这一点

所有这些都可以在位于SimpleDB之上的库中提取,因此对于SimpleDB的使用,您需要选择一个好的库。。。你可能不想直接处理它。在PHP方面有一些工作可以使事情变得简单,还有我的库。有一个RAILS activesource,但它似乎对您没有多大帮助

总而言之,它还处于早期阶段,但与其他API(我想到了twitter)相比,我不得不说SimpleDB REST API非常简单(特别是考虑到它是XML),并且使用起来很礼貌。我建议。。。取决于应用程序的要求和使用它的经济性。如果您希望快速扩展一个不会给数据库带来巨大负载的服务,并且不想麻烦使用可扩展的MySQL/memcache组合。。。然后SimpleDB可以为您提供一个“简单”的解决方案


我希望它的功能将继续增长,它将是越来越多做更复杂和有趣事情的应用程序的好选择。但现在它针对的是您典型的Web 2.0服务,并且适合您。

我们在新项目中几乎只使用SimpleDB。零维护、高可用性、无需安装的特性太好了。对于您的Ruby开发人员,请查看一个类似ActiveRecord的SimpleDB界面,它使SimpleDB非常易于使用。

SimpleDB适用于许多应用程序。。。。如果您的项目需要大量分析报告,请加入