問題タブ [app-engine-ndb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 射影されたクエリを使用する場合のNDBキャッシング
以前に尋ねられたこの特定の質問はまだ見つかりませんでした。投影されたクエリと完全なエンティティクエリを使用する場合、App EngineのNDBはキャッシュをどのように処理しますか?
たとえば、最初に射影クエリを実行した場合。
...次に通常のクエリを実行します...
...何がもらえますか?完全なエンティティ?もしそうなら、最初のクエリのいずれかの部分がNDBによって自動的にキャッシュされましたか?または、NDBは区別をうまく行うことができるので、次に投影されたクエリを実行すると、キャッシュからプルされる可能性がありますか?
python - StringListPropertyとStringProperty(repeated = True)
それらの主な違いは何ですか?構造化プロパティについても教えてください。それらはすべて複数の値を保存しますが、違いは理解できません。
app-engine-ndb - アプリエンジンndb Key.getはキーのみを返しますか?
私が構築したキーが与えられたら、データストアにヒットして存在するかどうかを確認したいと思いますが、それを行うための最も安価な (時間的に) 方法が必要です。私が探しているのは、キーのみのクエリのようなものですが、get からのものです。たとえば、my_key.get(keys_only=True) です。そのような動物は存在しますか?私にはそう見えません。そうでない場合、私が求めているものを達成する他の方法はありますか?
ありがとう。
google-app-engine - 1つのクエリですべての名前空間を読み取るにはどうすればよいですか
とは異なり、Google App Engineで名前空間のリストを取得するにはどうすればよいですか?、この質問は、すべての名前空間名を知っているかどうかに関係なく、1つのクエリですべての名前空間のデータにアクセスできるかどうかを尋ねます。
名前空間に関するドキュメントを読みました。データの分離には最適ですが、すべての異なる名前空間からのデータを分析したいと思います。アプリケーション内の1000個の名前空間すべてを含む1つのクエリを実行することは可能ですか。名前空間に依存しないクエリ?
python - NDBクエリの長さを取得する-GoogleAppEngineでPythonを使用する
Google App EngineでNDBを使用するときに、クエリ結果の数を取得するための良い方法は何ですか?
これを試みました:
これはおそらく非常に単純な質問であることをお詫びしますが、ドキュメントからは明確ではありませんでした。
google-app-engine - NDBを使用するAppengineで、リクエストが終了した後、非同期プットによって競合例外が発生するとどうなりますか?
ndbを使用して、@ ndb.toplevelを使用して40個の要素をput_asyncし、ユーザーに出力を書き込んでリクエストを終了したとしますが、それらのput_asyncの1つで競合例外が発生しましたが、応答は500または200になりますか?または、それがタスクである場合、タスクは再実行されますか?
1つの解決策は、リクエストが終了する前に40個のリクエストすべてをget_result()して、それらの例外をキャッチすることです(発生した場合)が、パフォーマンスに影響するかどうかはわかりません。
python - PolyModel と NDB の結合
ポリモデル クラスと NBD クラスを結合しようとしています。これを行うための「最善の」方法を明確にするための助けは、次の問題を考えると素晴らしいでしょう。
私は果物のポリモデルを持っています ( Fruit -> Tree-Bearing -> Apples -> Granny Smith
- ポリモデル階層の例として)、それをダイエットと呼ばれる ndb.Model に保存したいと思います。明らかに、果物のカテゴリ、野菜のカテゴリなどがあります。これはどのように構築する必要がありますか?
これまでのところ、私は持っています:
これに関する問題 - 私が正しく読んでいると思うように、ダイエットの果物と野菜のオブジェクトは「クエリ不可」です。私は明らかに、ユーザーが自分の特定の果物に一致する食事を検索できるようにしたいと考えています. また、ndb のキャッシング機能も利用したいと考えています。すべてのグラニースミスダイエットが必要な場合に、値が「なし」のダイエットを返さずに取得できるように、フルーツを効率的にクエリするにはどうすればよいでしょうか。さらに、NDB でポリ モデルを実行することはまったく可能ですか? そうでない場合、果物の構造を A) 必要なものに一致させ、B) 少なくとも名目上は効率的にするにはどうすればよいでしょうか?
本当にありがとう!ジョン
python - ndbは、GAEでndbを使用せずに作成されたエンティティで機能しますか?
ndb
PythonGAEのライブラリに切り替えます。
ndb
低レベルのAPIを使用して以前に作成されたエンティティで使用できますか?または、ndbを使用するために、すべての古いエンティティをコピーして再保存する必要がありますか?
ありがとう!
python - Google App Engine で @ndb.tasklet または @ndb.synctasklet を使用する
いくつPOST
かのタスクレットを呼び出すメソッドがあります。これらのタスクレットにはyieldがありx.put_async()
、私のコードにもいくつかあります。したがって、すべての非同期処理が完了する前に戻りたくありません。だから私はすべてのタスクレットを装飾しました。これは単なる小さな関数であり、@ndb.tasklet
. また、私のPOST
方法の上に、私は持っています:
ただし、ドキュメントには次のように記載されています。
しかし、ハンドラ メソッドが yield を使用する場合、そのメソッドは別のデコレータ @ndb.synctasklet でラップする必要があります。そうしないと、yield で実行が停止し、終了しません。
実際、私の方法には収量があります。すでに @ndb.tasklet にラップされています。これを @ndb.synctasklet に置き換えますか、それとも両方を使用しますか?
また、いくつかの関連性があるこのスレッドを参照してください。私も、リクエストが出力なしで返されるが、再現できないという問題に気付きました。一定の使用で15分ごとに発生します。私は持っていましたが、今はメインのメソッドにapp = ndb.toplevel(webapp2.WSGIApplication([..])
追加しましたが、問題は解決しません。@ndb.toplevel
POST
@ndb.tasklet
もあるメソッドの上に置くべきput_async()
ですか?(安全のためにすべてのメソッドの上に置く必要がありますか?これの欠点は何ですか?)
python - AppEngineのエンティティの最適なサイズはどれくらいですか
ここでインサイダー情報を探しています。
データストアに保存したいMD5ハッシュのリストがたくさんあります。リストは十分に大きいので、複数のエンティティを使用して保存する必要があります。つまり、リストを小さなリストに分割して、個別に保存する必要があります。
これを行うために、任意の長さのハッシュのリストを格納および取得できる単純なモデルがあります。
リストに1,000,000個のMD5ハッシュがあることがわかっているとします。上記のコードは、それぞれがzlistプロパティのサイズが2kより少し小さい10,000個のエンティティを生成します(私自身の簡単なテストに基づく)。
基本的に、MAX_LENGTHの最適値は何でしょうか。MAX_LENGTHが大きくなると、エンティティのサイズも大きくなります。エンティティごとに1MB(〜40,000 MD5ハッシュ)にプッシュする必要がありますか?100は小さすぎますか?1000の方がいいですか?