問題タブ [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.
google-app-engine - IDを使用してNDBエンティティを削除するには?
このドキュメントhttps://developers.google.com/appengine/docs/python/ndb/entities#deleting_entitiesに基づいて 、NDBで削除できない理由がまだわかりません:
ええ、私はIDを使用して選択する方法を知っています
しかし、まだ機能していません...
これも機能しません:
何か問題でも?
google-app-engine - Appengine - db.Model から ndb.Model に変換していますか?
db.Model として定義された一連のデータがあり、それを ndb.Model に変換したいと考えています。
次のようにdbからndbに変更してみました:
問題は、temp の ndb 定義を使用して古い値 (db 値) を照会できることです。しかし、同じモデル名の db 値が既にある場合、ndb 値を保存できないようです。
google-app-engine - モデル継承を使用する場合、ndb.KeyPropertyは基本モデルクラスを参照できますか?
他のモデルが継承する基本モデルクラスで定義した、共通のプロパティセットを共有するモデルがいくつかあります。
BaseUser
他のモデルでは、派生モデルへの参照が必要です。
DerivedUserA
ただし、プロパティにエンティティキーを設定しようとするとMainModel.user
、GAEは、BadValueError
種類のあるキーを期待しているBaseUser
が、が与えられていることを示しDerivedUserA
ます。
kind
から引数を削除するとMainModel
、次のように機能します。
私はそれと一緒に暮らすことができましたが、私はむしろ私がMainModel.user
プロパティ内のいかなる種類のエンティティも保存しようとしていないことを確認するために適切な場所にチェックを入れたいと思います。それを行う方法はありますか?
google-app-engine - ndb のキャッシュは圧縮されたプロパティをどのように処理しますか?
いくつかの大きなプロパティで圧縮(設定) を有効にすることを検討しています。compressed = True
LocalStructuredProperty
ただし、これらは頻繁に読み書きされるエンティティであるため、これらのプロパティをエンコード/デコードするために必要な追加の CPU について懸念しています。
ndb のビルトイン キャッシング システムがこれを軽減するかどうか疑問に思っていますか? ndb は、これらのプロパティの圧縮または非圧縮データをキャッシュしますか? 書き込みごとに圧縮が常に行われることは認識していますが、キャッシュされたエンティティを読み取るときに少なくとも解凍をバイパスできれば、おそらくそれだけの価値があります。
app-engine-ndb - GoogleAppEngineがNDBにデータをアップロード/ダウンロードする
データを保存するための最初のndbがあります:
CSVファイルからデータをインポートしたいのですが。データをインポートする方法を教えてください!とcsvファイルの構造。
google-app-engine - Google App Engine NDB の繰り返しプロパティの追加情報
例: 元のタイトルのさまざまな言語での翻訳を格納する、繰り返される「タイトル」プロパティを持つ記事モデルがあります。
タイトルのプロパティに加えて、タイトルの言語コードを保存して、タイトルの特定のバージョンを取得するには、次のようにします。
記事のタイトルがどの言語でクエリされるかわからないため、同じプロパティ名を持つことが重要です。
python - AppEngineエンティティを部分的に更新します
App Engineを使用して同期エンジンを構築しています。クライアントからデータを受信するときに、オブジェクトを保存したいのですが、オブジェクトがすでに存在するかどうかは関係ありません。更新時に常にクライアントからすべてのプロパティを送信すると、今日はうまく機能します。でも私はしたい...
- 一部の内部プロパティはクライアントに認識されず、更新後も存続します
- 変更された値のみを送信できるようにするクライアント
- 更新が必要なオブジェクトは非常に少ない可能性があるため、更新する前にすべてのオブジェクトをフェッチすることは避けてください。
各オブジェクトを取得してから、変更する値のみを更新してから、オブジェクトを更新する必要がありますか?または、エンティティをフェッチせずに部分的に更新することは可能ですか?
python - 長いリクエスト中に NDB がメモリをクリアしない
現在、長時間実行されるジョブを TaskQueue にオフロードして、データストア内の NDB エンティティ間の接続を計算しています。
基本的に、このキューは、ノード内の関数query
によって別のものに関連付けられるエンティティ キーのいくつかのリストを処理します。node_in_connected_nodes
GetConnectedNodes
ここで、 aには、他のキー ID を持つ配列と、その特定の接続に一致する配列を含むNode
繰り返しプロパティがあります。connections
Node
sources
生成された結果はブロブストアに保存されます。
今私が得ている問題は、接続機能の繰り返しの後、何らかの形でメモリがクリアされないことです。GetConnectedNodes
次のログは、新しいインスタンスを作成する直前に AppEngine によって使用されたメモリを示しています。
いくつかの変動は別として、以前の値にアクセスしていなくても、メモリは増加し続けます。これをデバッグしたり、どこかにメモリリークがあるかどうかを判断したりするのは非常に難しいと思いましたが、そのクラスまでたどったようです。助けていただければ幸いです。
python - 非同期クエリが初めて AssertionError をスローする (AppEngine、NDB)
クエリで fetch_async() を使用すると、初回実行時に AssertionError でクラッシュします。すぐに再実行すれば問題ありません。
例えば。
モデルと:
以下はすぐに機能し、空のリストを返します。
しかし、これはクラッシュします:
と:
しかし、たとえば次のようにして、すぐに再度実行すると:
できます。
これはいたるところで発生しており、根本的な原因を突き止めるのに苦労しています。