タグ

gaeに関するsyohexのブックマーク (7)

  • DatastoreのプロジェクションクエリをGoon経由で発行してはいけない - Qiita

    GoonはGoogle Cloud Datastoreを読み書きするための薄いラッパーパッケージで、GAE/Go+Datastoreの環境で力を発揮します。詳細は以下の記事が参考になります。 GAE/Goの自動キャッシュ付きDatastoreライブラリGoonを使う - Qiita そんなGoonですが、表題の通りプロジェクションクエリとの相性が良くありません。クエリの種類に応じてfunc (q *Query) Run(c context.Context)とfunc (g *Goon) Run(q *datastore.Query)とをプログラマが使い分ける必要があります。 プロジェクションクエリとは Datastoreはカラム指向のNoSQLで、インデックス機能によるデータのソートやフィルタにも対応しています。また、RDBMSで言うマルチカラムインデックスを作ることもできます(カスタムイ

    DatastoreのプロジェクションクエリをGoon経由で発行してはいけない - Qiita
  • GAE Datastore の Single-property Index と Composite Index は全く違うものと理解する - addsict's blog

    Datastore の Single-property Index と Composite Index はどちらも似たようなものだと思っていたのですが、実際のところはかなり違う性質をそれぞれ持っていることが段々とわかってきたので、現時点の自分の理解をメモしておきます。 恐らく Cloud Datastore にも該当する話だと思います。 Datastore のインデックスの種類 Datastore には2種類のインデックスが存在します。 Single-property Index (Built-in Index とも呼ばれる) Composite Index (Custom Index とも呼ばれる) このうち Single-property Index はデフォルトで全てのプロパティに有効になっているインデックスであり、Entity を保存した段階でそれぞれのプロパティに対応するインデッ

    GAE Datastore の Single-property Index と Composite Index は全く違うものと理解する - addsict's blog
  • DatastoreからGetした時に余計なPropertyがある場合エラーになるが無視してもいい - Qiita

    タイトルのまんまです。 話の前提として、以下のパッケージを使っているものとします。 google.golang.org/appengine/datastore SDK組み込みの appengine/datastore や Cloud Datastore用の cloud.google.com/go/datastore については言及しませんが、多分似たような設計になってると思うので流用可能なテクではないでしょうか。 モチベーション GAE/J+Slim3とかだとKindのSchemaの変更は大変気軽にできました。 新規追加のプロパティはデフォルト値になりますし、削除したプロパティはインスタンスに変換される時に無視されるからです。 一方、Goは違います。 Entityに存在するプロパティに対応するフィールドがstructにないと、エラーになります。 このため、GAE/Goでは不要になったプロパ

    DatastoreからGetした時に余計なPropertyがある場合エラーになるが無視してもいい - Qiita
  • Cloud Datastore 活用術

    Cloud Datastore 活用術 7 June 2016 Profile 2 Cloud Datastore Update XG Tx (25 Entity Groups) New Pricing Start 2016/07 Indexの数は考慮されず、操作したEntityの数のみがカウントされるように変更 Entity Reads : $0.06 per 100,000 entities Entity Writes : $0.18 per 100,000 entities Entity Deletes : $0.02 per 100,000 entities 3 Cloud Datastoreらしい構成 4 Kind 設計 正規化は必ずしも正ではない QueryするPropertyは1つのKindに含める 検索しないValueはJsonで突っ込むこともある 5 Key 設計 意味の

  • GAE/Goのdatastoreの挙動について - Qiita

    GAE/J+Slim3の語彙・知識を元にここに解説を書く。 GAE/Goの知識とGo言語の知識が混ぜこぜで書かれているかあまり気にしてはいけない。 以下の調査結果を得るためのテストコードはここに置いた。 EntityにKeyは付属してこない structを定義する時に、そのstructに自分自身のKeyを持たせる方法はない。 EntityにIdまたはNameを自分で定義して、Putする時、Getした後にそこに忘れずにId, Nameを取り出したり移し替えたりして頑張る。 これを自動でやってくれるライブラリがgoonである。 IncompleteKeyはPutした後でも値は変わらない key := datastore.NewIncompleteKey(c, "Test", nil) newKey, err := datastore.Put(c, key, foo) // keyはIncomp

    GAE/Goのdatastoreの挙動について - Qiita
  • gae/g unit testing - Qiita

    golangにはgo testというunit test用の機能があります。 testを行うための testing package もあります。 しかし、gae/gでは、appengine固有の部分が動かないため利用できませんでした。 そこを解決するために以下のlibraryなどもあったのだけど、 gae 1.8.6でついにgae/gでもunit testができるようになりました! Local Unit Testing for Go gae/g unit testで重要なのは、以下の3つです。 goapp test appengine/aetest testing この3つを抑えておけば、とりあえずunit testを作り始めることができます。 goapp test goapp testはgae/gでunit testを実行するためのcommandです。 通常、golangでは、go tes

    gae/g unit testing - Qiita
  • GAE/Go+ginでHTTPリクエストも含めてEnd to Endなテストをする話 - Qiita

    #はじめに GAE/Goとginフレームワークを使って ・JSONのPOSTを受け取ったら ・ginのBindJSONで構造体を作成する ・datastoreに対してその構造体を利用してPutする ・GETを受け取ったらその情報を取得する ・GETリクエスト時にくっついているパラメータをからEntityにアクセスするためのKeyIDを取得 ・そのKeyIDを用いてdatastoreから情報を取得する。 ・JSONとして値を返す という簡単なWebアプリを作ってテストしていました。 実は前回の記事でもGAE/Goのテストに関する記事を書いていたのですが、 (参照: http://qiita.com/CST_negi/items/f2fe571c5e64291d5157 ) これだと、上記例で言うところの 「・datastoreに対してその構造体を利用してPutする」 「そのKeyIDを用いて

    GAE/Go+ginでHTTPリクエストも含めてEnd to Endなテストをする話 - Qiita
  • 1