Bigtable自体はjoinはないが、AppEngineのDataStoreでmerge-joinを実装できている

メモ。

Building Scalable, Complex Apps on App Engineを見たメモ - スティルハウスの書庫

app engineはmerge-joinはサポートしている
  • Bigtableではサポートしていない。Datastoreが実行時に処理する
  • 1つのentity内でのjoin
  • indexが不要
  • 例:たくさんのAND条件での検索
  • "zig zag"アルゴリズムでmergeしている

Datastoreによるクエリの実装 - スティルハウスの書庫


マージジョイン

f:id:kazunori_279:20090617164301p:image

<zig-zagアルゴリズムによるマージジョイン:引用元


Tokyo Cloud Developers Meetup #02 - snippets from shinichitomita’s journal

JOINに関して、Bigtable自体はjoinはないが、AppEngineのDataStoreでmerge-joinを実装できている。zig-zagにkeyを辿って行く感じ。

Oracleの実行計画を見るとよく出るMERGE JOINを思い出したが、多分戦略としてはだいたい同じで、違うのはBigtableがそもそもSortedだということか。


関連:
GAEでサポートされないJDO/JPAの機能 - ドグマを探しに

"Join" queries. You cannot use a field of a child entity in a filter when performing a query on the parent kind.