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

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

理论上很好,但有人会考虑使用它。事实上,现在有人真正将它用于真正的生产软件,因为我很想阅读您的评论。

有帮助吗?

解决方案

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

S3 处理的是我通常听到的“blob 存储”。典型的 Web 应用程序通常具有可通过名称/路径简单访问的媒体文件和其他资源(图像、CSS 样式表、脚本、视频文件等)。然而,许多这些资源也有元数据(例如YouTube 上的视频文件包含有关其评级、上传者、观看次数等的元数据,这些元数据也需要存储。对于可查询、模式化存储的需求正是 SimpleDB 的用武之地。EC2 提供了一个可用于计算的虚拟服务器,并配有本地文件系统实例,如果虚拟服务器因任何原因发生故障,该实例将不会持久存在。借助 SimpleDB 和 S3,当您加入 EC2 提供的计算功能时,您就拥有了构建一大类“Web 2.0”样式应用程序的构建块。然而,S3 和 SimpleDB 都无法为那些只想获得构建数据库驱动的 Web 应用程序的典型 LAMP 或 WISC 开发人员体验的开发人员提供解决方案,或者为可能具有不完全适合 Blob 存储桶的自定义存储需求的应用程序提供解决方案。系统化存储。由于无法访问持久文件系统,Amazon 云计算平台上的开发人员必须提出复杂的解决方案,包括将数据从 EC2 手动备份到 S3,以获得所需的体验。

其他提示

我刚刚写完一个库,可以轻松地将应用程序移植到 Perl 中的 simpledb,Net::Amazon::SimpleDB::Simple,因为我发现 Amazon 客户端库很痛苦。该图书馆尚未加入 CPAN,但已在 http://rjurneyopen.s3.amazonaws.com/SimpleDB/Simple.pm 这个想法是让将哈希值填充到 SimpleDB 和从 SimpleDB 中填充出来变得简单。

我刚刚移植了一个应用程序来使用它。总的来说,SimpleDB 给我留下了深刻的印象......即使效率低下的查询也只需 2-3 秒即可返回。由于其 Erlang/并行特性,SimpleDB 似乎并不关心表的大小。表扫描对它来说很容易。

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

有一些令人困惑的“陷阱”。例如,属性可以具有多个值,并且在存储项目时必须明确设置“替换”。此外,存储 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 接口,这使得它非常易于使用。

但您真的需要 SQL Server 吗?您不能接受 PostgreSQL 或 MySQL 吗?事实证明,两者都可以胜任大多数任务。

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

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

(我使用 Amazon S3 来存储应用程序的图像,它没问题并且工作正常,至少在这一点上)

我没有使用过 SimpleDB,但一直在我们的应用程序中结合使用 S3、EC2 和 MySQL。

只要你愿意使用SimpleDB,那么你不妨考虑使用MySQL(它的可扩展性很强,而且价格也不贵)。

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

SimpleDB 适用于许多应用程序......如果您的项目需要大量分析报告、连接等,您可以考虑 MySQL 或混合模型。

如果您选择 SimpleDB,我们已经开发了 Radquery.com 供内部使用并向公众开放。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top