appengine ja night#5
     Beer Talk
SchemaVersion の薦め


          source: http://www.flickr.com/photos/katemonkey/12248991...
自己紹介

はてなID:bluerabbit
twitterID:bluerabbit777jp
SchemaVersionは
  転ばぬ先の杖
Bigtableはスキーマレス
行毎に異なる
プロパティを保持できる
スキーマレスの注意点
Kind(テーブル)にプロパティ(カラム)を追
加した際に、過去に登録したデータはプロ
パティが存在しないまま。
追加プロパティを使用したクエリは
  条件にしたら過去データはヒットしない
  ソートしても過去データはヒッ...
App Engineではインデックスを経
    由してデータを取得する
 Key以外での検索時
 ソート使用時
          インデックス               データ

          KEY          Value
...
App Engineのクエリは
  インデックスありき
インデックスを経由してデータを取得する
App Engineでは値による検索はできない
例外)下記のクエリはインデックスを使わない
  DatastoreService#get(Key k...
プロパティがないのと
  プロパティがnullは異なる
【プロパティがない=Indexがない】


【プロパティがnull=Indexはある】



      プロパティがないとIndexが存在しなくなり
      検索できないのは困る
レコードのバージョンを揃えるため
   SchemaVersionを持つ




SchemaVersionのプロパティが保持しておく
プロパティが増えたらカウントアップ
過去データはSchemaVersionで検索して洗い替え
ご清聴ありがとうございました
Upcoming SlideShare
Loading in...5
×

appengine ja night 5 BT SchemaVersionの薦め

1,170

Published on

App Engineはスキーマレス。スキーマレスの注意点としてプロパティ(カラム)追加を例に問題点とその解決策を記載。また、それを通してindexの仕組みについて理解して頂きたい。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,170
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

appengine ja night 5 BT SchemaVersionの薦め

  1. 1. appengine ja night#5 Beer Talk SchemaVersion の薦め source: http://www.flickr.com/photos/katemonkey/122489910/
  2. 2. 自己紹介 はてなID:bluerabbit twitterID:bluerabbit777jp
  3. 3. SchemaVersionは 転ばぬ先の杖
  4. 4. Bigtableはスキーマレス
  5. 5. 行毎に異なる プロパティを保持できる
  6. 6. スキーマレスの注意点 Kind(テーブル)にプロパティ(カラム)を追 加した際に、過去に登録したデータはプロ パティが存在しないまま。 追加プロパティを使用したクエリは 条件にしたら過去データはヒットしない ソートしても過去データはヒットしない
  7. 7. App Engineではインデックスを経 由してデータを取得する Key以外での検索時 ソート使用時 インデックス データ KEY Value Emp/age/20/Key2 Emp/age/30/Key3 Emp/age/40/Key4
  8. 8. App Engineのクエリは インデックスありき インデックスを経由してデータを取得する App Engineでは値による検索はできない 例外)下記のクエリはインデックスを使わない DatastoreService#get(Key key) new Query("Emp"). addFilter("__key__", EQUAL, key);
  9. 9. プロパティがないのと プロパティがnullは異なる 【プロパティがない=Indexがない】 【プロパティがnull=Indexはある】 プロパティがないとIndexが存在しなくなり 検索できないのは困る
  10. 10. レコードのバージョンを揃えるため SchemaVersionを持つ SchemaVersionのプロパティが保持しておく プロパティが増えたらカウントアップ 過去データはSchemaVersionで検索して洗い替え
  11. 11. ご清聴ありがとうございました
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×