From MongoDB to Google Cloud Datastore



我正在弄清楚将我已经存在的应用程序迁移到Google云数据存储是否容易。目前它存在于MongoDB中,所以它将从NoSQL到NoSQL,但这似乎并不容易。举个例子。 我的应用程序使用对象的层次结构,这就是为什么我喜欢MongoDB的原因,因为它的优雅:

{
"_id" : "31851460-7052-4c89-ab51-8941eb5bdc7g",
"_status" : "PRIV",
"_active" : true,
"emails" : [
{ "id" : 1, "email" : "anexample@gmail.com", "_hash" : "1514e2c9e71318e5", "_objecttype" : "EmailObj" },
{ "id" : 1, "email" : "asecondexample@gmail.com", "_hash" : "78687668871318e7", "_objecttype" : "EmailObj" }
],
"numbers": [
...
],
"socialnetworks": [
...
],
"settings": [
...
]
}

在转向 Google Cloud 数据存储时,我可以将电子邮件、数字、社交网络、设置等保存为字符串,但这违背了使用 JSON 的整个目的,因为我将失去查询此内容的机会。 我有很多表格有这个问题。

我看到的唯一解决方案是将所有这些移动到不同的实体(表)。但在这种情况下,查询量会增加,因此成本也会增加。 其他解决方案可能是仅保留 id 数组,并在 Google Cloud 数据存储上进行键值级解析,这些解决方案是免费的(流量可能除外)。

这里最好的方法是什么?

从Mongo到Google的Datastore的过渡并非易事。造成这种情况的很大一部分原因是数据存储(尽管技术上仍然是NoSQL)是一个列式数据库,而Mongo是一个传统的NoSQL。正如SQL数据库需要与NoSQL数据库不同的思维方式一样,列式数据库也需要不同的思维方式。

从 NoSQL 过渡到数据存储需要对数据进行全面重组。

您不必将所有内容保存在字符串中。数据存储具有所谓的Embbebed Entity,看起来非常像Mongo。只是一个完整的对象进入另一个对象。

检查一些像Objectify这样的库,这使得与数据存储的交互变得非常容易。

最新更新