put_async() を使用して、880 行を NDB データストアにインポートするアプリケーションがあります。このインポートを実行するたびに、データストアへの 50,000 回の書き込み操作の 1 日あたりのクォータを超えます。
なぜこの操作が非常に高価なのか、割り当てを下回るようにするにはどうすればよいのかを理解しようとしています。
次のような 13 の列があります。
stringbool = ['true', 'false']
class BeerMenu(ndb.Model):
name = ndb.StringProperty()
brewery = ndb.StringProperty()
origin = ndb.StringProperty()
abv = ndb.FloatProperty()
size = ndb.FloatProperty()
meas = ndb.StringProperty()
price = ndb.FloatProperty()
active = ndb.StringProperty(default="false", choices=stringbool)
url = ndb.StringProperty()
bartender = ndb.StringProperty()
lineno = ndb.IntegerProperty()
purdate = ndb.DateProperty()
costper = ndb.FloatProperty()
インデックスを 1 つに戻しました。
- kind: BeerMenu
properties:
- name: brewery
- name: name
SDK データストア ビューアーによると、各行は 29 回の書き込み操作であるため、25520 回の書き込みが生成されます。インデックスが残りの書き込み操作を消費すると想定していますが、AppEngine はクォータを超えたと言っているだけなので、正確な数はわかりません。
書き込み操作の数を減らすための最善の戦略は何ですか?