1

docs によると、制限は1MBであり、これはバイトを意味すると想定していましたが、明らかにそうではありません。1024**2

大きな Python オブジェクトを JSON に文字列化し、JSON 文字列を小さなチャンクに分割し、チャンク (BlobProperty として) と別のインデックス エンティティをデータストア (および memcache、ndb を使用) に配置する単純な関数があります。そして、これを逆にする別の機能。

最初にチャンクに分割しようとしまし1024**2たが、データストアはそれについて不平を言いました。現在、私は使用1000**2していますが、エラーなく動作しています。Guido によるこのコメントがなければ、950000 バイトのチャンクに分割されたコードを使用して、ここで自分の質問に答えることができたはずです。グイドがそうするなら、それは私が考えた理由によるにちがいない。なぜ 50K の安全マージンがあるのですか?

1 バイトも無駄にしないために、これについて決定的な答えを得ることができるかもしれません。私はブロブストアを知っています。

4

1 に答える 1

2

制限は 1MB (つまり 2 20バイト) ですが、その制限はエンティティのエンコードされたバージョンに対するものであり、すべてのメタデータとエンコードのオーバーヘッドが含まれます。

1 つのオプションは、あなたが行っているように、多少のゆとりを残すことです。もう 1 つは、エラーをキャッチし、必要に応じてチャンクを分割することです。

ただし、このようにデータを分割する必要がある場合は、データストアよりもブロブストアの方が適している可能性があります。

于 2012-10-29T16:55:29.243 に答える