2011年11月17日木曜日

Google App Engineでデータを一括で削除する方法

Google App EngineがPreview版を卒業して正式版になったのに伴ない、2011/11/7から価格体系が変わり無料で使えるQuotaが減った。
特に、データ書き込み(Datastore Write Operations)がすぐに制限に達してしまう。

そんなにデータ登録してないけどな?と思って調べてみると、Datastore Write Operationsには登録・更新だけでなく削除も含まれるようだ。
過去データの削除をcronで動かしていたのが全てカウントされている。
そこで、過去データ削除のcronをコメントアウトすると、Datastore Write Operationsが大幅に減った。

残る問題は過去データの削除をどうするか?
調べてみると、Google App Engineの管理画面からDatastore Adminという機能を使えば削除できるらしい。

さっそくDatastore Adminを使ってみる。デフォルトでは無効になっているので、Enabledする。
すると...真っ白な画面が表示された。
調べてみても有効な情報がない。
・
・
・
1日経って気付いた。Googleのマルチアカウントが(例によって)悪さをしている?
いったんSign Outして再ログインしたら無事に表示された。

さっそく削除してみる。Entity Kind(テーブル)ごとの削除になる。(条件を指定して削除できれば完璧なのだが。)
実行すると、Datastore Write Operationsが制限に達して真っ赤になってしまった。Datastore Adminから削除しても、Quotaに含まれるらしい。
仕方ないのでQuotaがリセットされるのを待つ。
・
・
・
リセットされてからしばらく後で見てみると、無事にEntity Kindの削除が終わっていた。Datastore Write OperationsのQuotaの大部分を使ってしまっていたが、明日またリセットされればそれ以降は問題ない。
しばらくこの手でやりくりしてみるか。

0 件のコメント:

ブログ アーカイブ

tags