Parse platform Parse.com的真实数据备份方法

Parse platform Parse.com的真实数据备份方法,parse-platform,backup,datastore,Parse Platform,Backup,Datastore,我们正在使用Parse.com构建一个iOS应用程序,但仍然无法找到有效备份数据的正确方法 作为前提,我们已经并将拥有大量的数据存储行。 假设我们有一个有一百万行的类,假设我们对它进行了备份,然后在出现危险情况(如生产中的数据丢失)后,希望将它恢复到解析状态 我们考虑的几个解决方案如下: 1) 使用外部服务器进行备份 备份: -使用RESTAPI不断地将数据备份到远程MySQL服务器(我们选择MySQL是为了进行定制分析,因为使用MySQL处理数据对我们来说更快更容易) 导入备份: a) -从M

我们正在使用Parse.com构建一个iOS应用程序,但仍然无法找到有效备份数据的正确方法

作为前提,我们已经并将拥有大量的数据存储行。 假设我们有一个有一百万行的类,假设我们对它进行了备份,然后在出现危险情况(如生产中的数据丢失)后,希望将它恢复到解析状态

我们考虑的几个解决方案如下:

1) 使用外部服务器进行备份

备份: -使用RESTAPI不断地将数据备份到远程MySQL服务器(我们选择MySQL是为了进行定制分析,因为使用MySQL处理数据对我们来说更快更容易)

导入备份: a) -从MySQL备份中重新创建JSON对象,并使用REST API发送回解析。 假设我们使用批处理操作,它允许通过一个查询同时创建50个对象,并且假设每个查询需要1秒,一百万个数据集需要5.5小时才能传输到解析

b) -从MySQL备份中重新创建一个JSON文件,并使用仪表板手动导入数据。 我们刚刚用这种方法尝试了700000条记录文件:加载指示器停止并在左窗格中显示行数大约需要2个小时,但现在它从未在右窗格中打开(它表示“操作超时”),而且从上载开始到现在已经超过6个小时了

因此,我们不能依赖1.b,而1.a似乎需要很长时间才能从灾难中恢复(如果我们有1000万条记录,则需要55小时=2.2天)

现在我们考虑的是:

2) 不断地将数据复制到另一个应用程序

在Parse中创建以下内容: -制作应用程序:A -复制应用程序:B 因此,当A在生产中时,每个查询都将复制到B(经常使用后台作业)。 当然,它的缺点是,它会耗尽A的突发限制,因为它只会将查询量增加一倍。因此,扩大规模的想法并不理想

我们想要的是类似AWS RDS的东西,它提供了一个每天自动备份的选项。 我想知道这对解析来说有多困难,因为它是基于AWS infra的

请让我知道,如果你对此有任何想法,将很高兴分享知道如何

附言:

我们注意到上述想法中的一个重要缺陷

如果我们使用RESTAPI进行复制,所有类的所有ObjectID都将更改,因此每个1到1或1域的关系都将被打破

因此,我们考虑为每个对象类放置一个uuid

这种方法有什么问题吗? 我们想要实现的一件事是 query.include(“ObjectName”) (或在Obj-C“includeKey”中), 但我认为如果我们不将应用程序逻辑建立在objectId上,这是不可能的

寻找解决此问题的方法;
但基于uuid的管理在Parse的数据存储逻辑下是否可以正常工作?

Parse从未丢失生产数据。虽然我们目前不提供自动备份,但您可以随时请求,我们正在努力使所有这些都变得更好。此外,在大多数情况下,通过数据浏览器导入JSON导出文件比使用REST批处理更容易。

我今天可以确认,Parse确实丢失了我的数据。或者至少看起来是这样

在多个应用程序上检测到多个错误(由Parse Status twitter帐户同意)后,我们无法检索应用程序的数据,没有任何错误

这是因为我们的一个类(类型指针)的一整列都消失了,数据不再出现在仪表板中

我们使用这个指针列来过滤/检索数据,因此返回的查询和集合是空的

因此,我们决定手动重新创建列。碰巧,用相同的名称和类型重新创建列解决了问题,数据仍然存在。。。我无法解释,但我真的在想,应用程序的反应好像数据丢失了


因此,自动备份和恢复选项是必需的,而不是一个选项。

对于意外删除,编写一个云函数“beforedelete”将当前行备份到另一个类将起作用

对于定期备份,手动导出更改的记录(使用筛选器)将非常有用。对于恢复,这要求您在数据浏览器中编写脚本/使用导入选项(不太确定)。您还可以编写一个云函数,在备份服务器上复制数据(还没有尝试过)

然而,云代码在冒险之前应该考虑到一些限制:

parse.com于2015年12月发布了一款新的仪表板,具有改进的导出功能。 只需选择你的应用程序,点击“应用程序设置”->“常规”->“导出应用程序数据”。Parse为应用程序中的每个类生成一个json文件,并在导出过程完成后向您发送电子邮件


更新:


遗憾的是,parse.com正在逐渐减少:

我也遇到了备份parse服务器数据的问题。由于解析服务器使用mongodb,所以备份数据不是问题,我只做了一件简单的事情。从服务器下载了mongodb备份。然后使用

mongorestore/mongodump的路径
(提取的文件)


由于解析已转向开源。因此,我们可以采用这种技术。

您从未丢失过数据并不意味着您永远不会丢失数据。您好,Fosco,感谢您的跟进。请澄清以下内容:如果我们丢失了Parse data Store上的数据(由于人为错误或黑客攻击或任何其他原因),我们是否可以(例如)给您发电子邮件/打电话,要求立即从您的备份中恢复?您多长时间备份一次数据存储(恢复的数据集有多旧?)。如果我们不知道这些,我认为这不是开发人员可以依赖的,所以请更清楚地了解细节。谢谢Fosco。我感谢你花时间回答这个问题。如果你能成为mo,我会更加感激