Google App Engine Bulkloader appcfg.py download_data против кнопки резервного копирования объектов хранилища - PullRequest
1 голос
/ 08 марта 2012

В настоящее время я ищу лучший способ сделать резервную копию хранилища данных моего веб-приложения Google App Engine. Из прочитанного мною кажется, что есть два разных способа сделать это. Я могу либо использовать загрузчик GAE, вызвав appcfg.py upload_data --application = --kind = --filename = ИЛИ Я могу зайти в раздел администрирования хранилища данных моего веб-приложения, выбрать объекты, которые я хочу сделать резервную копию, и затем нажать «Резервное копирование Сущности "кнопка. Если я не ошибаюсь, кнопка «Резервное копирование сущностей» создаст резервную копию моего хранилища данных в хранилище больших двоичных объектов, в то время как использование download_data из appcfg.py создаст локальную резервную копию. Резервное копирование будет происходить еженедельно / ежемесячно, и основной причиной будет случай, если один из администраторов веб-приложения случайно удалит важные данные. Я не беспокоюсь, что Google потеряет данные, поэтому это не следует принимать во внимание при рассмотрении моего вопроса.

Итак, мой вопрос: какой из этих двух методов является предпочтительным? Какой из них быстрее, эффективнее, дешевле и т. Д.? 1003 *

Заранее спасибо за ваши комментарии / помощь / ответы.

Ответы [ 2 ]

7 голосов
/ 14 марта 2012

Вот некоторые факторы, которые следует учитывать наряду с решением, которое, я думаю, лучше всего с ним справляется:

Время разработки - Администратор хранилища данных - Чтобы использовать Bulkloader, вам нужно написать сценарии, поддерживать серверы резервного копирования, хранилище и т. Д.

Стоимость - Администратор хранилища данных - YMMV, но наша резервная копия десятков миллионов объектов использовала <1% квоты очереди задач 1bil. Стоимость операций чтения и хранения хранилища данных будет зависеть от вашего приложения. Но между этими двумя вариантами операции чтения должны быть одинаковыми, и вы торгуете Исходящей пропускной способностью ($ 0,12 / ГБ) в Bulkloader для хранилища Blobstore ($ 0,0043 / ГБ) с администратором хранилища данных. </p>

Продолжительность резервного копирования - Администратор хранилища данных - Как и следовало ожидать, осколки mapreduce, записывающие данные в Blobstore внутри сети Google, намного быстрее, чем потоковая передача данных сущностей по одному. Полное резервное копирование наших данных с Datastore Admin занимает менее 6 часов. С Bulkloader это занимает более 3 дней.

Резервное копирование обслуживания - Bulkloader (на данный момент) - С помощью Bulkloader и сервера вы можете создавать кроны для регулярного резервного копирования и обслуживания резервных копий. Например, у нас есть сервер в Rackspace, который резервирует наше хранилище данных каждые 3 дня и сохраняет последние 2 резервные копии. С Datastore Admin вы должны вручную выполнять резервное копирование и удалять устаревшие резервные копии, пока не будет опубликовано автоматизированное решение ( Issue 7040 ). Тем не менее, для резервного копирования раз в месяц затраты на ручное выполнение операций с Datastore Admin настолько низки, что я рекомендую это.

Гибкость данных - Bulkloader - С помощью массового загрузчика вы можете экспортировать все свои данные в удобные для восприятия файлы csv, что позволит вам развернуть их в Excel, создать тестовый набор данных для локальной среды разработки или даже перенести свою работу в другую службу размещения приложений (например, AWS), если вам потребуется это.

Точное восстановление - Bulkloader - Bulkloader может обрабатывать восстановление отдельных объектов (где вы точно знаете, какие объекты вы удалили или перезаписали) и массовое восстановление. Администратор хранилища данных может выполнять массовое восстановление только для всех объектов данного вида.

Массовое восстановление - Администратор хранилища данных - Администратор хранилища данных минимизирует очень дорогие записи, только обновляя измененные объекты. Sharding также делает этот процесс намного, намного быстрее, чем простая загрузка Bulkloader (хотя вы можете самостоятельно перерезать данные резервной копии csv для многих клиентов).

В конечном итоге Bulkloader дает вам более точное управление, а Datastore Admin упрощает и ускоряет массовое резервное копирование / восстановление. Несмотря на то, что администратор хранилища данных является новым и имеет несколько проблем ( 7076 ), учитывая вашу ситуацию, я определенно рекомендую его.

4 голосов
/ 09 марта 2012

Это действительно решение между выполнением операции загрузки локально, от объекта к объекту или выполнением экспорта в облаке с помощью Map / Reduce и загрузкой скомпилированного пакета всего.

Вероятно, меньше шансов насбой или повреждение, если вы используете утилиту администратора хранилища данных - лично у меня всегда были проблемы с загрузкой сложных схем с помощью appcfg, и с тех пор я придерживался администратора хранилища данных.

С точки зрения скорости - администратор хранилища данных может определенно превзойти и превзойти ваш локальный компьютер, в зависимости от того, как вы настроили очередь задач, которая выполняет задание администратора хранилища данных ( с помощью управления скоростью очереди задач или отправка задач в выделенныйbackend через target параметр ).

С точки зрения стоимости - Map / Reduce может очень дорого обойтись - в местах, которые вы можете не ожидать.На одной работе, которая требовала удаления 144 000 объектов, в конечном итоге было почти 11,54 миллиона (!!) вызовов записи в хранилище данных.Массовый загрузчик appcfg не затрагивает вашу квоту записи или квоты очереди задач.

С точки зрения эффективности - Вероятно, для экземпляра AppEngine гораздо быстрее загрузить сущность изхранилище данных и поместите его в Blobstore, чем на локальный компьютер, загружая его напрямую.Map / Reduce в целом также очень эффективен, особенно в AppEngine.

Ответ на ваш вопрос зависит от размера вашего набора данных, вашего бюджета и вашего терпения.Map / Reduce (через администратора хранилища данных) будет более согласованным и быстрым, но может стоить намного дороже в зависимости от ваших настроек.

...