1

50,000 語の辞書と、同様のサイズの他の 10 言語の同等の辞書を格納する appengine アプリケーションを作成したいとします。

これを開発サーバーでローカルに機能させましたが、最初の辞書を実際のアプリサーバーにロードしようとすると、すぐに 1 日あたりの書き込みクォータを超えてしまいました。データストアに登録された辞書エントリの数はわかりませんでした。24 時間後、私は辞書を一括ダウンロードして、実際に何件のエントリがあるかを確認しようとしましたが、1 日あたりの読み取りクォータに達し、何も返されませんでした。1 日の上限を $1.00 に設定して課金を有効にしようとしましたが、バルクローダーでそのクォータに達しましたが、問題や $1.00 のデータを取得できませんでした。

とにかく、データストア ビューアを調べたところ、辞書の単語ごとにデータストアへの書き込みが 8 回必要であることがわかりました。

では、この種のアプリケーションは appengine には適していないということですか? そこに辞書を保存しようとしてはいけませんか?これを行うよりスマートな方法はありますか?たとえば、何らかの方法で辞書をファイル形式でブロブ ストアに保存し、そこからプログラムで処理することはできますか?

ご提案ありがとうございます

4

1 に答える 1

2

書き込みよりも読み取りがはるかに少ない可能性が高いため、問題はデータの取得であり、読み取りではありません。

したがって、現在の構成を使用するために必要なことは、書き込み速度を遅くすることだけです。次に、おそらく、各単語をその ID で取得することになるため (単語自体を希望します!)、読み取りは高速かつ小さく、正確に望みどおりになります。

これを行うことができます: ソース データを文字ごとに 1 つのファイルに分割します。これらのファイルをアプリケーションにアップロードし、各ファイルを順番に読み取り、そのデータをゆっくりとデータストアに書き込むタスクを作成します。そのタスクが完了すると、最後のアクションは次のタスクを呼び出すことです。

完了するまでに 1 週​​間かかる場合がありますが、いったんそこに到達すると、Blob ストアから取得する必要がある不透明な BLOB よりもはるかに便利になり、実際に関心のある 1 ごとに N ワードを読み取り、解凍して処理しますすべての単語。

一括ダウンローダーを使用してデータをアップロードすることもできます!

于 2013-02-15T09:40:20.967 に答える