データストア管理タブのこの機能を使用するには、管理コンソールのアプリケーション設定のページであなたのアプリケーションのデータストア管理(Datastore Admin)を有効にする必要があります。 画面左側のナビゲーションメニューにあるデータ(Data)という見出しの配下、データストア管理(Datastore Admin)をクリックし、その後表示されたページのデータストア管理を有効にする(Enable Datastore Admin)をクリックします。
ah-builtin-python-bundle
specified in queue.yaml
.非常に頻繁にバックアップを行うと、費用が高くなります。 あなたがデータストア管理ジョブを実行する時、実際にはその下で動くMapReduce ジョブを実行しています。 MapReduce jobs cause frontend instance hours to increase on top of Storage operations and Storage usage. リソース使用状況を常に把握するには、:
ah-builtin-python-bundle
を選んでください。全てのエンティティ、もしくは指定した種類のテンティティのみをバックアップすることができ、必要な時にその中のどれかを復元することができます。 バックアップと復元の機能は、不慮のデータ削除からの復旧を助けたり、データをエクスポートできるようにするためのものです。
また、Cloud Storageに保存されたバックアップデータを使ってBigQueryのような他のクラウドプラットフォームにデータをエクスポートすることもできます。
縛アップから復元をした時、バックアップ以降に新しく追加されたエンティティはそのまま保持され、バックアップ時に存在してバックアップ後に変更されたエンティティは、バックアップの値で上書きされます。 バックアップから全てでのデータを復元することも、指定した種類のエンティティだけを復元することもできます。 さらに、この機能を使ってあるアプリデータのバックアップを他のアプリ(バックアップにCloud Storageを使用していることが条件)に復元することもできます。
既定では、一日につきバックアップは100GB、復元は100 GBまで制限されます。
To create a back up file for future data restores for exporting:
<App ID>.appspot.com
の形式になっています。
queue.yaml
other than
ah-builtin-python-bundle
.
/my_bucket_name
形式)を求められます。
任意で、bucket 名にディレクトリ構造を付けて設定することができます。(例えば、 /bucket_name/backups/backup1
): これらのフォルダが既に存在しない場合、フォルダの作成が行われます。
注意: 古いバージョンの App Engineでは、ユーザーは /gs/bucket_name
形式を使用する必要があります。頭に /gs/
を付けてもこれまでどおり動作しますが、もうそれは必須ではなくなりました。
バックアップが現在実行中の場合、そのジョブはデータストア管理画面の Pending Backups一覧に表示されます。
一覧からバックアップを選んでAbortをクリックすることで、実行中のバックアップを停止することができます。
バックアップジョブを中止した時、 App Engineはその時点までに保存されたデータを削除しようとします。
しかし、場合によっては中止後にいくつかのファイルが残ることもあります。
バックアップに選んだ場所でそういったファイルを見つけたら、中止が完了した後でそれらを安全に削除できます。
それらのファイルの名前は、次のようなパターンから始まります:datastore_backup__your_backup_name_
。
どういった種類のエンティティが保存されているか、保存場所、開始時間と終了時間といったバックアップについての詳細情報を知りたいことでしょう。 バックアップの情報を表示するには:
App Engine Cron サービスを使って、バックアップを定期的に実行することができます。詳細については定期バックアップを参照してください。
データから復元をするには:
queue.yaml
other than ah-builtin-python-bundle
.
アックアップを作成するのに使用したアプリ以外にも、バックアップを復元することができます。
あるアプリから別のアプリにバックアップデータを復元するには:
/my_bucket_name
の形式で指定します。
その結果、bucket内の全てのバックアップの一覧が表示されます。
または、バックアップを指定するためのファイルハンドル を設定します; このハンドル は、バックアップを選んで Infoをクリックすることで、復元元アプリケーションから取得することができます。; ファイルハンドル はHandleラベルの隣に表示されます。
管理コンソールのデータストア管理タブを使用して、一種類のエンティティ全てや全種類のエンティティ全てを別のアプリケーションにコピーできます。 データストアのコピー機能は、コピー元アプリケーションの管理コンソールのData項目にある Datastore Admin画面を使用します。 あらかじめパフォーマンス設定がされた既定キューが、コピージョブに使用されます。 別のキューパフォーマンス特性が必要な場合は、このキューを異なる設定がされた別のキューに変更してください。
データストア管理画面から、ボタンをクリックしてエンティティの種類を選び、コピーすることができます:
データストアのコピー機能は現在 Pythonアプリケーションのみで使用できます。 あなたの対象アプリがJavaで作られている場合は、アプリ用にデフォルトでないPython ランタイムを作成してそれを対象アプリケーションとして使用する必要があります。 以下の手順では、Datastore_adminと呼ばれるシンプルなアプリケーションを使用して、対象アプリケーション用のnon-default Pythoランタイムを作成する方法を説明します。:
appcfg.py -A <your_app_id> update <directory-of-demo-app>
を実行します。データストアをコピーするには:
コピー元からデータを取得できるようにするため、対象アプリケーションで remote_api
builtinを有効にしてください。
有効にするには、以下を app.yaml
に追加します:
builtins:
- remote_api: on
以下を実施することで、コピー元アプリケーションに対象アプリケーションへ対する書き込み権限を与えます。:
アプリケーションのルートディレクトリにあるappengine_config.py
ファイルに以下を追加します。:
remoteapi_CUSTOM_ENVIRONMENT_AUTHENTICATION = ('HTTP_X_APPENGINE_INBOUND_APPID',['source appid here'])
appengine_config.py
ファイルがない場合は、新しく作成するか以下にあるサンプルをコピーすることができます。 google/appengine/ext/appstats/sample_appengine_config.py
.
appcfg.py update
を使って編集したバージョンをアプリケーションをアップロードします。
この手順は必須ではありませんが、強く推奨します。 エンティティを新しいデータストアへコピーするのは時間がかかり、コピー中に発生した書き込みはコピーされません。
コピー元アプリケーションが読み取り専用モードでない場合、コピーはできますが管理コンソール上にnotreadonly
警告が表示されます。
書き込みを無効にしないと、コピー先データストアが新しいデータのコピーを完全に取得できる保証がされません。
Select the entity kind(s) to copy individually or in bulk, and copy them using Copy To Other App. 確認画面では、対象アプリのリモートエンドポイントを入力してください:
http://_your_target_app_id_.appspot.com/_ah/remote_api
です。http://datastore-admin._your_target_app_id_.appspot.com/_ah/remote_api
です。http://app_version._your_target_app_id_.appspot.com/_ah/remote_api
です。確認後、システムはリクエストの有効性を検証します。 remote_api 接続を確立できる場合は、一つ以上の mapreduce 処理がデータのコピーを開始します。 あなたはリンクをたどって mapreduce 処理の初期設定の状態を見ることができます。 アプリケーションが名前空間機能を使用している場合、 mapreduce は各エンティティの種類の名前空間ごとに実行されます。
データストア管理ページからコピー状態の概要を見ることができます。
個別のmapreduce の状態を見るに、http://_your_target_app_id_.appspot.com/_ah/mapreduce/
へ行くことができます。
推奨されているように、コピー前にデータストアの書き込みを無効にしている場合は、書き込みを有効にしてください。
管理コンソールのデータストア管理タブを使用して、全ての名前空間で、一つの種類の全エンティティや全ての種類の全エンティティを削除することができます。 管理コンソール上で、アプリケーション用にDatastore Adminを有効にする必要があることがあります。