1

我正在寻找实施一种方法来在Google应用引擎中以编程方式将数据从一个应用转移到另一个应用。 我知道有一种方法可以通过database_admin控制台实现此目的,但该过程非常耗时。从谷歌应用引擎备份和恢复实体

我目前正在使用Google Cloud Storage(GCS)来执行此操作,但涉及查询数据,将其保存到GCS,然后从不同应用程序中读取GCS并进行恢复。 请让我知道是否有人知道在两个应用程序之间以编程方式传输数据的简单方法。

谢谢!

回答

-1

我不知道这是否适合您的具体情况,但Google Cloud Endpoints绝对是通过Google App Engine以编程方式传输数据的简单方法。

这是REST Web服务的Google实现,它允许您使用URL共享资源。这仍然是一项实验性技术,但只要我与他们合作过,他们就能完美地工作。此外,它们与GAE和Google Plugin for Eclipse很好地结合在一起。

你可以从一个JDO持久类自动生成一个端点,我想你也可以自动生成客户端库(尽管我没有尝试过)。

+0

作为@earthtrip说,我不明白为什么我的答案已经downvoted,因为我觉得这是完全考虑到缺少问题的详细信息... – MikO 2013-03-14 14:57:44

0

您是否试图在两个App Engine应用程序之间移动数据或尝试从App Engine导出所有数据,以便移动到不同的托管系统?你的问题没有足够的信息来了解你正在尝试做什么。基于模糊的需求,我会说这通常会通过一个Web服务来处理,您可以在一个应用程序中编写Web服务,该应用程序公开数据和其他应用程序调用服务以使用数据。我不确定为什么云端点投票被拒绝,因为这提供了一种很好的方式,将您的数据作为基于JSON的Web服务公开,并且以最少的代码大惊小怪。

我建议在你的问题中加入一些更多的细节,比如你想要完成什么,也许是一个模拟数据样本。

+0

这两个应用程序都部署在App Engine上(使用Java版本)。我的确在使用WebServices方法,其中一个应用程序将写入GCS,而其他应用程序将从中读取,但在这种情况下,对于大型数据集来说性能不够好。 – user2167372 2013-03-14 16:00:48

1

自己没有尝试过这个,但它听起来应该起作用:使用data_store admin将对象从一个应用程序备份到GCS,然后使用其他应用程序从GCS恢复该文件。如果您只需要一次同步,这应该是一个好方法。

如果你需要不断地从一个应用程序复制到另一个数据,在一个引入REST端点或两侧可以帮助:

https://code.google.com/p/appengine-rest-server/(这是Python的,我知道,但只是定义一个应用程式版本对于REST端点)

您只需确保您的模型定义在两侧都匹配(几乎用相同的部署代码更新两侧的应用程序),并且只有需要同步数据跟踪时间的一侧上次同步并使用REST端点来提取新数据。克龙乔布斯可以做到这一点。

或者,在所有模型上创建一个PostPut回调函数,以便在每次向您的数据存储区写入模型到另一个应用程序的正确REST端点时进行POST调用。

您可以使用一种方法进行批量更新,或者使用另一种方法保持不断更新的版本(以更多的调用为代价)。