Jus*_*pez 1 python backup google-app-engine database-backups bulkloader
我目前正在寻找备份Google App Engine的webapp数据存储区的最佳方法.从我一直在做的阅读看来,我可以通过两种不同的方式来做到这一点.我可以通过调用appcfg.py来使用GAE的bulkloader upload_data --application = --kind = --filename =或者我可以进入我的webapp的数据存储管理部分,选择我要备份的实体,然后单击"备份"实体"按钮.除非我弄错了,"备份实体"按钮将在blobstore中创建我的数据存储的备份,而使用appcfg.py的download_data将创建本地备份.备份将每周/每月进行,主要原因是万一webapp的管理员意外删除了重要数据.我并不担心Google会丢失数据,所以在审核我的问题时不应该考虑这一点.
所以我的问题是:这两种方法中哪一种是首选方法?哪个更快,更有效,更便宜等?
在此先感谢您的意见/帮助/解答.
以下是一些需要考虑的因素以及我认为最好的解决方案:
开发时间 - 数据存储管理 - 要利用Bulkloader,您需要编写脚本,维护备份服务器,存储等.
成本 - 数据存储管理 - YMMV,但我们对数千万实体的备份使用了<1%的1bil任务队列配额.数据存储区读取操作和存储的成本将特定于您的应用程序.但是在这两个选项之间,读取操作应该是相同的,并且您正在使用数据存储管理器在Bulkloader for Blobstore存储($ 0.0043/GB)中交换Outgoing Bandwidth($ 0.12/GB).
备份持续时间 - 数据存储管理 - 正如您所料,mapreduce分片将数据写入Google网络中的Blobstore要比一次一个地传输实体数据快得多.使用Datastore Admin对我们的数据进行完整备份需要6个小时.使用Bulkloader需要3天时间.
备份维护 - Bulkloader(现在) - 使用Bulkloader和服务器,您可以创建crons以定期执行备份和备份维护.例如,我们在Rackspace中有一台服务器,每隔3天备份一次我们的数据存储,并保留最后2个备份.使用数据存储管理,您必须手动执行备份和删除过时备份,直到发布自动解决方案(问题7040).即便如此,对于每月一次的备份,使用Datastore Admin手动执行此操作的成本非常低,我建议使用它.
数据灵活性 - Bulkloader - 使用bulkloader,您可以将所有数据导出为人类可读的csv文件,允许您在Excel中进行数据透视,为本地开发环境创建测试数据集,甚至将操作移动到另一个应用程序托管服务(例如: AWS)您是否需要它.
精确还原 - Bulkloader - Bulkloader可以处理还原选择实体(您确切知道删除或覆盖哪些实体)和批量还原.数据存储管理员只能对给定种类的所有实体进行批量恢复.
批量恢复 - 数据存储管理 - 数据存储管理员通过仅更新已更改的实体来最小化非常昂贵的写入.Sharding还使这个过程比简单的Bulkloader上传快得多(尽管您可以自己在许多客户端上分割csv备份数据).
最终,Bulkloader可为您提供更精确的控制,而Datastore Admin可简化并加速批量备份/恢复.即使Datastore Admin是新的并且有一些问题(7076),根据您的情况,我肯定会推荐它.
归档时间: |
|
查看次数: |
1204 次 |
最近记录: |