Working with Google App Engine Modelsを見たメモ
Working with Google App Engine Modelsを見たメモ
Bigtableにできないこと
- joinできない
- (非正規化するか、ループを回して自前でjoinするしかないか?)
- (「正規化するな、JOIN済みのでっかいテーブルを作れ」)
- (List Propertyを使う)
- (merge join、つまり1テーブル内のjoinは行える)
- 集約関数がない(group byできない)
- count()やmax()も使えない(全件カウントできない)
- しかし毎回対象データをすべて取得してループで集計するのは効率がよくない
- (そもそも最大1000件の制限がある)
- そこで集約したい値は、カウンターとなるオブジェクトで集計する 00:34
- (書き込みが集中しないように複数オブジェクトに分散させるsharding counter)
- 関数やストアドプロシージャはない
- 比較演算子が限られている
- LIKE使えない
- (前方一致ならできる)
- LIKE使えない
- (ORも使えない)
- Many to Manyの表現方法
- List Propertyを使い、キーのリストを持たせる