質問

私は多くのエンティティをデータストアに入れたループを持っています。

for line in open(file):
    if count >= limit:
        break
    elif count >= offset:
        prop1 = XXX
        prop2 = YYY
        MyEntity(prop1=XXX, prop2=YYY).put()
    count += 1

私はの使用について知っています バルクアップローダー, 、しかし、私はコード内からこれを行う必要があります。制限がそれほど大きくない限り、私が現在機能しているのは、締め切りを超えたエラーを超えますが、それはこの質問の範囲ではありません)、私は尋ねているだけですこれを行うためのより良いまたはより効率的なアプローチがある場合、これはugいハックのように思えるので、たとえば、すべてのエンティティをループなどではなく1つのショットに配置するようなアプローチです。

役に立ちましたか?

解決

保存するエンティティごとにデータストアラウンドトリップを行っています。代わりに、それらを蓄積し、単一のバッチPUTを実行します。

to_write = []
for line in open(file):
  #...
  to_write.append(MyEntity(prop1=XXX, prop2=YYY)
db.put(to_write)

操作を複数の部品に分割する必要がある場合は、タスクキューを使用して、各作業の塊を別のタスクとして排除します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top