2011-10-12 20 views
10

Tôi có một ứng dụng AppEngine hiện có khoảng 15GB dữ liệu và dường như không thực tế khi sử dụng các công cụ tải hàng loạt AppEngine hiện tại để sao lưu các tập dữ liệu có kích thước này . Do đó, tôi bắt đầu điều tra các cách khác để sao lưu và sẽ quan tâm đến việc nghe về các giải pháp thực tế mà mọi người có thể đã sử dụng để sao lưu dữ liệu AppEngine của họ.Sao lưu dữ liệu AppEngine (lưu trữ đám mây của Google?)

Ngoài ra, tôi bắt đầu nghĩ rằng Google Cloud Storage có thể là lựa chọn tốt. Tôi tò mò muốn biết liệu có ai có kinh nghiệm sử dụng Google Cloud Storage làm bản sao lưu cho dữ liệu AppEngine của họ hay không và trải nghiệm của họ là gì và nếu có bất kỳ gợi ý hay điều gì tôi cần biết trước khi đi xuống con đường này.

Không có vấn đề mà giải pháp tôi kết thúc với, tôi muốn một giải pháp sao lưu để đáp ứng các yêu cầu sau:.

1) phải chăng nhanh để sao lưu, và hợp lý nhanh chóng để khôi phục lại (ví dụ: nếu một lỗi nghiêm trọng/dữ liệu xóa/tấn công độc hại truy cập trang web của tôi, tôi không muốn phải gỡ nó xuống trong nhiều ngày trong khi khôi phục cơ sở dữ liệu - nhanh chóng tôi có nghĩa là giờ, thay vì ngày).

2) Vị trí và tài khoản riêng biệt từ dữ liệu AppEngine của tôi - ví dụ: Tôi không muốn ai đó có quyền truy cập quản trị vào dữ liệu AppEngine của mình nhất thiết phải có quyền ghi/xóa vào vị trí dữ liệu sao lưu - ví dụ: nếu tài khoản AppEngine của tôi bị hacker tấn công hoặc nếu một nhân viên bất mãn quyết định xóa tất cả của tôi dữ liệu, tôi muốn có bản sao lưu riêng biệt với tài khoản quản trị viên AppEngine.

Tóm lại, cho rằng việc lấy dữ liệu ra khỏi đám mây có vẻ chậm/đau, điều tôi muốn là giải pháp sao lưu dựa trên đám mây mô phỏng vai trò sao lưu băng sẽ phục vụ trong quá khứ - nếu tôi có một băng sao lưu, không ai khác có thể sửa đổi nội dung của băng đó - nhưng vì tôi không thể có được băng, tôi có thể lưu trữ bản sao dữ liệu an toàn của mình ở đâu đó không, chỉ có tôi mới có quyền truy cập?

Kind Regards Alexander

Trả lời

4

Có một vài tùy chọn ở đây, mặc dù không có (hiện tại) là những gì bạn đang tìm kiếm.

Với bản phát hành mới nhất của phiên bản 1.5.5 của SDK, chúng tôi hiện hỗ trợ giao tiếp trực tiếp với Google Storage - bạn có thể xem cách, here. Với điều này, bạn có thể ghi dữ liệu vào Google Storage, nhưng theo hiểu biết tốt nhất của tôi thì không có cách nào để viết tệp mà ứng dụng sẽ không thể xóa được.

Để thực sự thu thập dữ liệu, bạn có thể sử dụng App Engine mapreduce API. Nó đã được xây dựng để hỗ trợ cho việc viết lên kho ứng dụng App Engine; việc ghi vào Google Storage sẽ yêu cầu bạn phải triển khai nhà văn đầu ra của riêng bạn, hiện tại.

Một tùy chọn khác, như WoLpH đề xuất, là sử dụng công cụ Quản trị Datastore để sao lưu dữ liệu vào một ứng dụng khác. Với một chút nỗ lực thêm, bạn có thể sửa đổi stub remote_api để cấm xóa để các mục tiêu (sao lưu) ứng dụng.

Một điều bạn chắc chắn nên làm bất kể là enable two-factor authentication cho tài khoản Google của mình; điều này khiến mọi người khó kiểm soát tài khoản của bạn hơn, ngay cả khi họ phát hiện ra mật khẩu của bạn.

1

Các bulkloader có lẽ là một trong những cách nhanh nhất để sao lưu/khôi phục dữ liệu của bạn.

Sự cố với AppEngine là bạn phải thực hiện mọi thứ thông qua chế độ xem. Vì vậy, bạn có những hạn chế mà quan điểm có ... kết quả là một sao lưu nhanh/khôi phục vẫn phải sử dụng cùng một API như phần còn lại của ứng dụng của bạn. Vì vậy, bộ tải khối (có thể với một vài sửa đổi) chắc chắn là lựa chọn tốt nhất của bạn ở đây.

Có lẽ mặc dù ... (chưa thử), bạn có thể sử dụng Quản trị Datastore mới để sao chép dữ liệu sang ứng dụng khác. Một trong đó chỉ có bạn kiểm soát. Bằng cách đó bạn có thể sao chép nó trở lại từ các ứng dụng khác khi cần thiết.

+0

Bạn có bất kỳ chỉ số nào về tốc độ của trình tải hàng loạt để sao lưu các tập dữ liệu lớn không? Kinh nghiệm của tôi là phải mất nhiều ngày để sao lưu 15GB dữ liệu. –

+0

@AlexanderMarquardt: theo kinh nghiệm của tôi. Nếu bạn cung cấp cho nó đủ chủ đề hơn bạn có thể tải lên ~ 1GB trong 30 phút, nhưng trình tải hàng loạt có xu hướng sụp đổ với nhiều dữ liệu và chủ đề đó. Vì vậy, tôi không nghĩ rằng có một giải pháp tốt có sẵn ra khỏi hộp. – Wolph