1

Я ищу способ передачи данных из одного приложения в другое программно в приложении Google. Я знаю, что есть способ достичь этого с помощью консоли database_admin, но этот процесс очень неэффективен.Резервное копирование и восстановление объектов из Google App engine

В настоящее время я реализую это с использованием облачного хранилища Google (GCS), но это включает в себя запрос данных, сохранение его в GCS, а затем чтение из GCS из другого приложения и его восстановление. Пожалуйста, дайте мне знать, если кто-нибудь знает более простой способ передачи данных между двумя приложениями программным путем.

Спасибо!

ответ

-1

Я не знаю, может ли это быть подходящим для вашего конкретного сценария, но Google Cloud Endpoints - это, безусловно, простой способ передачи данных программным путем из Google App Engine.

Это своего рода реализация веб-служб REST в Google, поэтому они позволяют вам обмениваться ресурсами с помощью URL-адресов. Это все еще экспериментальная технология, но пока я работал с ними, они отлично работают. Кроме того, они очень хорошо интегрированы с GAE и Google Plugin for Eclipse.

Вы можете автоматически генерировать конечную точку из постоянного класса JDO, и я думаю, что вы также можете автоматически создавать клиентские библиотеки (хотя я этого не делал).

+0

Как @earthtrip сказал, я не понимаю, почему мой ответ был downvoted, потому что я думаю, что это прекрасно действительный с учетом отсутствия деталей вопроса ... – MikO

0

Вы пытаетесь переместить данные между двумя приложениями App Engine или пытаетесь экспортировать все свои данные из App Engine, чтобы вы могли перейти на другую систему хостинга? У вашего вопроса недостаточно информации, чтобы понять, что вы пытаетесь сделать. Исходя из неопределенных требований, я бы сказал, что обычно это обрабатывается веб-службой, которую вы пишете в одном приложении, которое предоставляет данные, а другое приложение вызывает эту службу для использования данных. Я не уверен, почему Cloud Endpoints был проголосован, потому что это дает хороший способ разоблачить ваши данные как веб-службу на основе JSON с минимальным количеством ошибок в кодировании.

Я бы порекомендовал добавить некоторые дополнительные детали в ваш вопрос, как именно то, что вы пытаетесь выполнить, а может быть, образец выборки.

+0

Оба приложения развертываются в App Engine (с версией Java). Я действительно использую подход WebServices, где одно приложение будет писать в GCS, а другое приложение будет читать, но в этом случае производительность недостаточно хороша для больших наборов данных. – user2167372

1

Не пробовал это сам, но похоже, что он должен работать: используйте admin_store для резервного копирования ваших объектов в GCS из одного приложения, а затем используйте другое приложение для восстановления этого файла из GCS. Это должен быть хороший метод, если требуется только однократная синхронизация.

Если вам необходимо постоянно копировать данные из одного приложения к другому, представляя REST конечных точек на одну или обе стороны могли бы помочь:

https://code.google.com/p/appengine-rest-server/ (это в Python, я знаю, но просто определить версию приложения для конечной точки REST) ​​

Вам просто нужно убедиться, что ваши определения моделей совпадают с обеих сторон (в значительной степени обновляйте приложение с обеих сторон с помощью одного и того же кода развертывания), и у вас есть только сторона, которая должна синхронизировать время отслеживания данных последняя синхронизация и использование конечных точек REST для ввода новых данных. Cron Jobs может это сделать.

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

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

0

Вы можете создать резервную копию своих данных, используя bulkloader, а затем восстановить его в другом приложении.

Подробности здесь: https://developers.google.com/appengine/docs/python/tools/uploadingdata?csw=1#Python_Downloading_and_uploading_all_data

Обратитесь к этому сообщению, если вы используете Java: Downloading Google App Engine Database

Смежные вопросы