這裏有一些因素有,我認爲處理它的最佳解決方案來考慮沿:
開發時間 - 資料儲存庫管理員 - 要利用Bulkloader,你需要編寫腳本,維護備份服務器,存儲等
成本 - 資料儲存庫管理員 - 情況因人而異,但我們的數以千萬計的實體的備份使用的1bil的Ta < 1% sk隊列配額。數據存儲讀取操作和存儲的成本將特定於您的應用程序。但是,在這兩種選擇之間,讀取操作應該是相同的,並且您使用Datastore Admin在Bulkloader for Blobstore存儲($ 0.0043/GB)中交易帶外帶寬($ 0.12/GB)。
備份時間 - 資料儲存庫管理員 - 正如你所期望的那樣,MapReduce的碎片將數據寫入Blob存儲谷歌內部的網絡是不是每次流的實體數據了一個多快得多。使用Datastore Admin完整備份我們的數據需要6小時以上。使用Bulkloader需要3天以上。
備份維護 - Bulkloader(現在) - 隨着Bulkloader和服務器,您可以創建crons定期執行備份和備份維護。例如,我們在Rackspace有一臺服務器,每隔3天備份一次數據存儲,並保留最後2次備份。使用Datastore Admin,您必須手動執行備份並刪除過時的備份,直到發佈自動化解決方案(Issue 7040)。即使是每月備份一次,使用Datastore Admin手動執行備份的成本也非常低,所以我推薦它。
數據靈活性 - Bulkloader - 隨着您可以將所有數據導出到人類可讀的CSV文件,讓你轉動它在Excel中,爲您的本地開發環境創建一個測試數據集,甚至是移動bulkloader您如果您需要,可以使用其他應用程序託管服務(例如:AWS)。
精密還原 - Bulkloader - Bulkloader可以處理恢復選擇實體(在這裏你確切地知道你刪除或改寫哪些實體)和散裝恢復。數據存儲管理員只能對給定種類的所有實體進行批量恢復。
批量恢復 - 資料儲存庫管理員 - 資料儲存庫管理員只更新改變實體非常昂貴寫最小。 Sharding也使得這個過程更爲簡單,比簡單的Bulkloader上傳快得多(儘管您可以自己將csv備份數據分割到多個客戶端上)。
最終Bulkloader爲您提供更精確的控制,同時Datastore Admin簡化並加快批量備份/恢復。即使Datastore Admin是新增功能並且存在一些問題(7076),但鑑於您的情況,我一定會推薦它。
真棒的答案。對不起,在upvote延遲。非常感激! – 2012-03-22 18:43:19
沒有人在這裏提到過,但文檔使它聽起來像bulkloader只適用於現在不贊成的主/從數據存儲? https://developers.google.com/appengine/docs/python/tools/uploadingdata#Downloading_and_Uploading_All_Data ......或者這隻適用於'download_data'命令而不是散裝加載程序? – Anentropic 2012-04-19 11:39:16
appcfg.py的download_data命令肯定適用於高複製數據存儲,而這正是bulkloader用於從數據存儲獲取數據到CSV文件的內容。我沒有看到high_replication_warning,但很有可能你會錯過最近添加的實體,並在你的數據中引用了錯誤。 – 2012-05-09 22:58:49