appengine ja night 5 BT SchemaVersionの薦め

1,368 views

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,368
On SlideShare
0
From Embeds
0
Number of Embeds
145
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. ご清聴ありがとうございました

×