简体   繁体   English

GAE DataStore与用于企业管理系统的Google Cloud SQL

[英]GAE DataStore vs Google Cloud SQL for Enterprise Management Systems

I am building an application that is an enterprise management system using gae. 我正在构建一个使用gae的企业管理系统的应用程序。 I have built several applications using gae and the datastore, but never one that will require a high volume of users entering transactions along with the need for administrative and management reporting. 我已经使用gae和数据存储区构建了多个应用程序,但从来没有一个需要大量用户输入事务以及管理和管理报告的需求。 My biggest fear is that when I need to create cross-tab and other detailed reports (or business intelligence reporting and data manipulation) I will be facing a mountain of problems with gae's datastore querying and data pull limits. 我最担心的是,当我需要创建交叉表和其他详细报告(或商业智能报告和数据操作)时,我将面临一系列问题,即gae的数据存储区查询和数据提取限制。 Is it really just architectural preference or are there quantitative concerns here? 它真的只是建筑偏好还是存在定量问题?

In the past I have built systems using C++/c#/Java against an Oracle/MySql/MSSql (with a caching layer sprinkled in for some added performance on complex or frequently accessed db results). 在过去,我使用C ++ / c#/ Java构建了针对Oracle / MySql / MSSql的系统(在复杂或经常访问的数据库结果上添加了缓存层以获得一些额外的性能)。

I keep reading that we are to throw away the old mentality of relational data and move to the new world of the big McHashTable in the sky... but new isnt always better... Any insight or experience on the above would be helpful. 我一直在读,我们要抛弃关系数据的旧思路,转移到天空中大型McHashTable的新世界......但新的并不总是更好......任何关于上述的见解或经验都会有所帮助。

From the Cloud SQL FAQ : 来自Cloud SQL FAQ

Should I use Google Cloud SQL or the App Engine Datastore? 我应该使用Google Cloud SQL还是App Engine数据存储区?

This depends on the requirements of the application. 这取决于应用程序的要求。 Datastore provides NoSQL key-value > storage that is highly scalable, but does not support the complex queries offered by a SQL database. 数据存储提供高度可伸缩的NoSQL键值>存储,但不支持SQL数据库提供的复杂查询。 Cloud SQL supports complex queries and ACID transactions, but this means the database acts as a 'fixed pipe' and performance is less scalable. Cloud SQL支持复杂查询和ACID事务,但这意味着数据库充当“固定管道”,性能可扩展性较差。 Many applications use both types of storage. 许多应用程序使用这两种类型的存储

If you need a lot of writes (~XXX per/s) to db entity w/ distributed keys, that's where the Google App Engine datastore really shine. 如果你需要大量的写入(~XY / / s)到数据库实体w /分布式密钥,这就是Google App Engine数据存储真正发挥作用的地方。

If you need support for complex and random user crafted queries, that's where Google Cloud SQL is more convenient. 如果您需要支持复杂和随机的用户制作查询,那么Google Cloud SQL就更方便了。

What is scare me more in GAE datastore is index number limitation. 在GAE数据存储中更让我害怕的是索引号限制。 For example if you need search by some field or sorting - you need +1 index. 例如,如果您需要按某个字段搜索或排序 - 您需要+1索引。 Totally you can have 200 indexes. 完全可以有200个索引。 If you have entity with 10 searchable fields and you can sort by any field - there will be about 100 combunations. 如果你有10个可搜索字段的实体,你可以按任何字段排序 - 那将有大约100个combunations。 So you need 100 indexes. 所以你需要100个索引。 I have developed few small projects for gae - and this is success stories. 我为gae开发了一些小项目 - 这是成功的故事。 But when big one come - this is not for gae. 但是,当一个大来的时候 - 这不适合gae。

About cache - you can do it with gae, but they distributed cache works very slow. 关于缓存 - 您可以使用gae进行缓存,但它们分布式缓存的工作速度非常慢。 I prefer to create private single instance of permanent backend with RESTfull API that holds cached values in memory. 我更喜欢使用RESTfull API创建永久后端的私有单个实例,该API在内存中保存缓存值。 Frontend instances call this API to get/set values. 前端实例调用此API来获取/设置值。

Maybe it is posible to build complex system with gae, but this will be a set of small applications/services. 也许建立带有gae的复杂系统是可行的,但这将是一组小型应用程序/服务。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM