GAE DataStore vs Google Cloud SQL for Enterprise Management



我正在构建一个应用程序,该应用程序是使用 gae 的企业管理系统。我已经使用 gae 和数据存储构建了几个应用程序,但从来没有一个需要大量用户输入事务以及需要管理和管理报告的应用程序。我最担心的是,当我需要创建交叉表和其他详细报告(或商业智能报告和数据操作)时,我将面临gae的数据存储查询和数据拉取限制的大量问题。这真的只是架构偏好还是这里有数量问题?

过去,我曾使用C++/c#/Java针对Oracle/MySql/MSSql构建系统(在复杂或频繁访问的数据库结果上添加缓存层以增加性能)。

我一直在读到,我们要抛弃关系数据的旧心态,搬到天空中的大麦哈斯表的新世界......但新的并不总是更好的...对上述内容的任何见解或经验都会有所帮助。

来自云 SQL 常见问题解答:

我应该使用 Google Cloud SQL 还是 App Engine Datastore?

这取决于应用程序的要求。数据存储提供高度可扩展的 NoSQL 键值>存储,但不支持 SQL 数据库提供的复杂查询。Cloud SQL 支持复杂的查询和 ACID 事务,但这意味着数据库充当"固定管道",性能可扩展性较差。许多应用程序同时使用这两种类型的存储。

如果您需要对带有分布式密钥的数据库实体进行大量写入(~XXX per/s),那么这就是Google App Engine数据存储真正闪耀的地方。

如果您需要支持复杂和随机的用户构建查询,那么Google Cloud SQL更方便。

GAE 数据存储中更让我害怕的是索引号限制。例如,如果您需要按某个字段搜索或排序 - 则需要 +1 索引。总共可以有 200 个索引。如果您有具有 10 个可搜索字段的实体,并且您可以按任何字段进行排序 - 将有大约 100 个组合。所以你需要 100 个索引。我为gae开发了几个小项目 - 这是成功的故事。但是当大人物来临时 - 这不是为了同性恋。

关于缓存 - 你可以用gae来做,但他们分布式缓存工作得很慢。我更喜欢使用 RESTfull API 创建永久后端的私有单个实例,该 API 将缓存值保存在内存中。前端实例调用此 API 来获取/设置值。

也许使用 gae 构建复杂的系统是可能的,但这将是一组小型应用程序/服务。

最新更新