問題タブ [google-cloud-datastore]

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.

0 投票する
2 に答える
1506 参照

python - GAEのモデルファイルからクラスをインポートする際の問題

私はPythonを初めて使用し、Python + Google App Engineを簡単に紹介した後、パイロットプロジェクトに取り組み始めました。2つのエンティティUserDetailsとPhoneBookをデータとともにアプリエンジンにバルクロードしました。UIで、最初にユーザー名を取得し、それをクエリしてUserDetailsからユーザーIDを取得し、取得したユーザーIDを使用してPhoneBookにクエリを実行して電話帳のエントリを取得しようとします。これがUIのコードです。

問題は、GAEがモデルからUserDetails/phoneクラスをインポートできないというこのエラーがログに表示されることです。

取り外しfrom models import UserDetails,PhoneBookて使用するとimport models

これは、UserDetailsクラスとPhoneBookクラスを定義したmodels.pyファイルです。このファイルをルートディレクトリに保存しました。

Pythonを初めて使用するため、models.pyファイルからクラスをインポートできない理由とuser_nameをからに設定/取得する方法を理解できませpost(self)get(self)

私が素朴であるならば、私を許してください、しかし、あなたが私のコードを正しく設定するのを手伝ってくれるならば、あなたの助けは最もありがたいです。

ありがとう。

0 投票する
4 に答える
7174 参照

google-app-engine - Twitterのようなソーシャルサイト用のAppEngineデータストアをどのように設計しますか?

メンバーがGoogleAppEngineを使用してアクティビティを作成し、他のメンバーのアクティビティをフォローするソーシャルアプリケーションを設計するための最良の方法は何でしょうか。

具体的には、次のエンティティがあると仮定します。

  • 友達がいるユーザー
  • ユーザーが行ったアクションを表すアクティビティ(それぞれに文字列メッセージとその所有者ユーザーへのReferencePropertyがある場合、またはappengineのキーを介して親の関連付けを使用できる場合)

難しいのは、友達のアクティビティをフォローすることです。つまり、すべての友達の最新のアクティビティを集約することです。通常、これはアクティビティテーブルと友達リストの間の結合ですが、Nクエリ(Nは友達の数)を起動してメモリにマージする必要があることをシミュレートする結合がないため、appengineで実行可能な設計ではありません-非常に高価で、おそらくリクエストの期限を超えるでしょう...)

私は現在、受信トレイキューを使用してこれを実装することを考えています。ここで、新しいアクティビティを作成すると、後続のすべてのユーザーの「受信トレイ」に新しいアクティビティのキーを配置するバックグラウンドプロセスが起動されます。

  • 「Xをフォローしているすべてのユーザー」を取得することは、可能なappengineクエリです
  • 基本的に(ユーザー、アクティビティキー)タプルを格納する新しい「受信トレイ」エンティティへのそれほど高価なバッチ入力ではありません。

このデザインや代替案などについてのご意見をお待ちしております。

0 投票する
1 に答える
611 参照

python - データストアの日時プロパティは反復可能ですか?

私はモデルを持っています

last_update_date特定のユーザー用に取得する必要があります。それはうまく機能しています、私はこの値を取得することができます、私はそれを別の変数に渡すことさえできます

に割り当てようとすると問題が発生します

これはループの外で行われるので、日時が反復可能ではないと表示される理由がわかりません。私が受け取るエラーメッセージは

トレースバック(最後の最後の呼び出し):ファイル "C:\ Program Files(x86)\ Google \ google_appengine \ google \ appengine \ ext \ webapp__init __。py"、行507、呼び出し中 handler.get(* groups)ファイル "C:\ Users \ mklich \ worksheet \ google_contacts_webapp \ src \ contacts-list.py"、行266、get listc = checkUserPrivateContacts(user)ファイル "C:\ Users \ mklich \ワークスペース\ google_contacts_webapp \ src \ contacts-list.py "、行189、checkUserPrivateContacts feed = contacts.GetContactsFeed(feed_query.ToUri())ファイル" C:\ Users \ mklich \ worksheet \ google_contacts_webapp \ src \ gdata \ service.py " 、1718行目、ToUri return atom.service.BuildUri(q_feed、self)ファイル "C:\ Users \ mklich \ worksheet \ google_contacts_webapp \ src \ atom \ service.py"、584行目、BuildUri parameter_list = DictionaryToParamList(url_params、 escape_params)ファイル "C:\ Users \ mklich \ worksheet \ google_contacts_webapp \ src \ atom \ service.py"、551行目、DictionaryToParamList for param、(url_parametersまたは{})。items()]ファイル "C:\ Python25 \ lib \ urllib.py"、行1210、quote_plusの値if'' in s:TypeError:引数タイプ'datetime.datetime'は反復可能

私は何か間違ったことをしていますか、それともバグですか?ご回答ありがとうございます。

0 投票する
2 に答える
333 参照

python - App Engine: データストア クエリが結果を返すかどうかを確認する最速の方法は何ですか?

Google App Engine データストアにデータストア クエリの結果があるかどうかを確認したいと考えています。これは私のクエリです:

クエリが結果を返すかどうかを確認する最も速くてエレガントな方法は何ですか?

PS:私はそうする方法を知っていますが、それが非常に効率的かどうかは非常にわかりません...

0 投票する
2 に答える
1948 参照

java - ローカルの Google App Engine Python データストアをローカルの Google App Engine Java データストアにコピーするにはどうすればよいですか?

Java App Engine データストアに挿入する必要がある約 4000 のエンティティがあります。私が理解しているように、現在 CSV ファイルからデータストアにデータをアップロードするツールを備えているのは、App Engine の Python バージョンだけです。これまでのところ、http://code.google.com/appengine/docs/python/tools/uploadingdata.htmlの指示に従って、 Python を使用して 4000 ほどのエンティティをローカル データストアに書き込むことができました。エンティティを .csv から取得してデータストアに書き込むためだけに Python を使用しています。ローカル ホストの Python バージョンの App Engine で /_ah/admin アドレスを使用してエンティティが存在することを確認し、データ ビューアーを表示しました。

私が今やりたいことは、初期の Java バージョンでこれらのエンティティをローカルで使用することです。これは通常、Python を使用してデプロイされたバージョンの App Engine にエンティティをアップロードする場合には問題になりません。これは、ランタイムに関係なく、同じプロジェクトの異なるバージョンが同じデータストアを共有するためです。したがって、すべての .csv 行をデプロイ済みの Python バージョンのアプリに書き込んでいた場合、デプロイ済みの Java バージョンは、Python バージョンからアップロードされたすべてのエンティティを表示できます。しかし、どのようにしてローカルで同じことを達成するのでしょうか?

私が理解しているように、App Engine の Java バージョンは、WEB-INF ディレクトリの .bin ファイルにローカル データストアを作成します。App Engine の Python バージョンは、自分の Java バージョンにコピーするだけでよい場所に同様の .bin ファイルを作成しますか? Python バージョンがデータをローカルに保存している正確な場所をまだ追跡できていません。どんな助けでも大歓迎です。

0 投票する
1 に答える
320 参照

google-app-engine - 結果セットを制限するクエリ/GqlQuery .order()?

理解に苦しむクエリの奇妙な結果に気付きました。order() をクエリに追加すると、返される結果が制限されているように見えます。

これが私の相互作用です:

ご覧のとおり、2 つのクエリの間に 100 のエンティティが追加されていません。order() 命令が結果セットを制限しているようです。ただしcreated_at、必須のプロパティであり、すべてのエンティティに存在します。

例外なく。では、ORDER を使用したクエリですべてのエンティティが返されないのはなぜでしょうか?

最後に、それが悪いデータかどうかを調査します。

0 投票する
4 に答える
2493 参照

django - GAE データストアを使用した複雑なクエリ

私はスポーツ統計 Web サイト (究極のフリスビー) を開発する初期段階にいます。Google App Engine が私に適しているかどうか、意見をお聞かせください。

私は Django を使用して Python で作成しており、何年も標準の RDBMS に慣れてきましたが、このサイトは長期的なプロジェクトであり、非常に大量のデータが予想されるため、GAE データストアが提供する「無限」のスケーリングが必要です。データベースへのクエリの大部分は非常に標準的な結果を返すため、データストアが論理的な選択のように見えます。ただし、将来的には非常に複雑なクエリを作成して、新しい統計メトリックを作成したり、単に興味深い結果を作成したりしたいと考えています. 将来的にはこれをたくさん行う予定ですが、データがすでに収集されるまで、これらのクエリが何であるかはわかりません。

たとえば、野球の統計アナリストが次のようなばかげた統計を発表するのをよく目にします。日々"。将来的には、どんなクエリでも柔軟に作成できるようにしたいと思います。:)

ただし、bigtable のような非リレーショナル データベースでは、事前に冗長データを含むモデルを考え出す必要があり、すべての作業はフェッチではなく挿入で行われるという印象を受けます。照会する必要があるほぼすべてのデータを含む django モデルを既に構築しましたが、1 年か 2 年後にどんな非正規化モデルが必要になるかわかりません。したがって、将来的に複雑なクエリを作成することは、GAE データストアでは非常に難しくなり、Python で処理する前にサーバーから大量の情報を引き出す必要があると思います。

グーグルアプリエンジンのデータストアは、私がやりたいことに対して単に間違っていますか? または、何かが足りないだけです。よろしくお願いします!

更新: これまでの応答に感謝します。これらの複雑なクエリの多くは、ユーザーに実行してもらいたいクエリであるため、オフライン データベースは実際にはオプションではないことにも言及する必要があることを認識しています。たとえば、ユーザーは、特定のゲームまたはシーズン中に、特定の 2 人のプレーヤーが同時にフィールドにいるときのプレーのさまざまな統計を確認できる必要があります。これらのクエリは、標準の集計統計ほど頻繁ではありませんが、定期的に発生します。

リレーショナル データベースと GAE データストアがあると便利ですが、django はデフォルトで複数のデータベースをまだサポートしておらず、ソリューションをまとめてパッチを適用するのは困難で面倒に思えます。Eric Florenzano は、両方とも django モデルを使用する 2 つのデータベースに対する優れたソリューションを提供していますが、GAE データストアを使用する場合は、代わりにアプリ エンジンの db モデルを使用する必要があります。そして、彼がこの複雑な問題に対して行ったような優れた解決策を考え出すことは、現時点で私のスキルレベルを少し超えています.

現在、私のお気に入りの 2 つのオプションは、GAE タスク キューを使用して難しいクエリを実行するか、webfaction などのより標準的な Web ホストにアクセスし、後でデータが大きくなり、パフォーマンスを向上させる必要がある場合にテーブルを非正規化することです。

0 投票する
2 に答える
839 参照

google-app-engine - App Engine: ListProperties に特定のアイテムが存在するエンティティを選択するためのフィルタ

特定の要素が存在する ListProperties の 1 つに基づいてエンティティをフィルタリングする必要があります。のようなもの:

entities.filter('listProp IN ',element) ただし、listProp と element が逆になっている場合を除きます。

このようにフィルタリングする方法を知っている人はいますか?

0 投票する
7 に答える
4082 参照

python - データストアに辞書を置くにはどうすればよいですか?

Python辞書をデータストアに保存する良い方法はありますか?私は次のようなことをしたいです:

もちろん、その最後の行は実際には機能しません。キーと値のペアのリストであるホップが必要です。キーは常に文字列であり、値は文字列、int、またはfloatにすることができますが、それを実行できるものは何も表示されません。プロパティクラス