appengine ja night #9に行ってきた。 #appengine #ajn9
おしながき
- 本編
- @bufferingsさん:Datastoreのクエリを理解しよう
- @kazunori_279さん:Next gen queryを斬る!
- BT(Beer Talk)
- @cht_007さん:BDレコーダー+スマホ/PC連携サービス『Chan-Toru beta』
- @ashigeruさん:近くを探す?
- @tagomorisさん:SDKを試しに読んでみるよ
Datastoreのクエリを理解しよう
京都からKotori Web JUnit Runnerの作者でもあるbufferingsさんです。京都でもappengine ja nightの活動を行っており、ajnk2でのクエリ解説が素晴らしい!ということで東京でも発表して頂きました。
(Kotori Web JUnit RunnerはGoogle IO 2010でも紹介され、後述するslim3本でも紹介されています)
Google App Engineをやるならガチでこの発表資料は必見ですぞ!
- Google App EngineではDBがBigtableでKVS
- BigtableはRDBMSのように複数テーブルにデータを持つ訳ではない。一個のテーブル(Entities table)にデータは全て保存される
- Datastoreのクエリは必ずIndexを経由してデータを取得する
- Indexで特定できないデータは取得することはできない
- Datastoreで取得できるのはIndexのスキャンで連続した範囲のみ
- Indexにはどんな種類があって、どのようなアクセスのされかたをするのか理解する必要がある
実際にIndexの構造とアクセスパスがどーなってるか?続きはwaveまとめで
今回の内容はDatastore徹底解説と言っていい内容だったと思う。これほどまでにまとまったドキュメントは今まではなかったし、それを日本語で丁寧に解説してくれた人はいなかった。いや、正確にはドキュメントはつい最近まではなかったというのが正しい。なぜなら上記の内容を含めDatastoreを解説された下記Slim3本が遂に発売されたからだ。
オープンソース徹底活用 Slim3 on Google App Engine for Java
- 作者: ひがやすを,小川信一
- 出版社/メーカー: 秀和システム
- 発売日: 2010/07/30
- メディア: 単行本
- 購入: 12人 クリック: 462回
- この商品を含むブログ (36件) を見る
この本の狙いは、Google App Engineのデータストア(Bigtable)を理解し使いこなすこと。これだけに特化しています。
なぜなら、データストアを制するものがGoogle App Engineを制すると言われるくらい、データストアを使いこなすことは重要だからです。
.
.
データストアに関する、私や@shin1ogawaが持っているありったけの知識と経験がこの本には詰められています。
世界中で売られているappengineの本の中で本書以上にデータストアについて述べたものはないし、今後も登場することはないでしょう。
bufferingsさんのセッションはDatastoreを理解する高速道路に乗ったようなものでした。そして、Slim3本を買えばDatastoreは完全に抑えられるでしょう。Datastoreのクエリがどんな動きをするのかを理解し、なぜこのクエリは動かないのかがわかるでしょう。これからGoogle App Engineを始める人はbufferingsさんの資料もあるし、slim3本もあるしでうらやましい環境ですね。もう高速道路は整った。さあGoogle App Engineを始めよう。
Next gen queryを斬る!
- 資料
appengine ja night #9 の私のセッション「Next gen queryを斬る!」のPDF資料です
http://dl.dropbox.com/u/4207279/docs/app-engine-next-gen-queries_with_note.zipこのPDFは、GoogleのAlfredさんによるGoogle I/O 2010のセッション「Next gen queries」のPDF資料(以下)に私が日本語コメントを付けたものです。
http://code.google.com/intl/ja/events/io/2010/sessions/next-gen-queries-appengine.html
kazunori_279さんはGoogle App Engine のAPI Expertで、Google IO 2010で現地へ行きApp Engineのセッション及びAppEngineの開発に携わる人から直接話を聞いてきた内容でした。
- Next gen queryでは
- Zigzag Merge Joinが効率よくなる
- Merge Joinがカスタムインデックスでも使用できるようになる
- Merge Joinでソートができるようになる
って事のようです。詳しくはwaveまとめで。waveまとめに全部書いてあるからなぁー。waveまとめに感謝。
このセッション中に面白いネタが出た。それは下記で既にid:koherentさんが試してくれているようです。
昨日行われたappengine ja night #9で話題になった次の二つについて試してみました。
結果は機能しないぽいらしい。Single Property IndexとComposite Indexに関係性はないんじゃないかと推測していたのでちょっとビックリ。私も後日試してみる。
BDレコーダー+スマホ/PC連携サービス『Chan-Toru beta』
Chan-Toru betaとは
録画しようと思っていた番組の録画予約を忘れてしまったことはありませんか? また、テレビを前にリモコンを使って、録り貯めた番組コンテンツの整理が 面倒だと感じたことはありませんか? そんなあなたにオススメなのが、「Chan-Toru」です。 「Chan-Toru」を使えば、スマートフォンやパソコンを使って、外出先からでも好きなときに番組の録画予約をしたり、いつでも録り貯めた番組コンテンツの整理ができるようになります。最近話題のスマートフォンや、BDレコーダー(ソニー製)をお持ちの方に是非ご利用いただきたい画期的なWEBアプリケーションです。
ソニーの100%子会社であるVisionartsさんが、スマートフォンやPCブラウザ、iPad等からソニー製BDレコーダーの録画予約をできるサービス「Chan-Toru beta」を運用開始しました。
Google App Engineの利点等を簡潔にまとめられてました。
- AppEngineを使う利点
- Google App Engineとは?
- 持たざる者への強い味方で、データセンタやインフラやネットワークのエンジニアがいない場合は強い味方になってくれる。逆にそれらを持っているところからすれば開発時の制約が厳しくなるだけのように思えるかも知れない。
近くを探す?
Datastoreでは連続したインデックスの範囲しか取得できないため1次元では表現できない位置情報は検索できない。どうやれば検索できるのか?それ「空間充填曲線:Z曲線」で出来るよという話。座標(x, y)を1次元にするために一筆書きで表現する。これ以上は私の能力では説明できない。。アルゴリズム詳しい人は本当凄いですな。ついていけません。
SDKを試しに読んでみるよ
- 資料
ソース嫁
このセッションは私の中では結構wktkだった。pythonのSDKソースは読んだことがほとんどなかったのでありがたかった。これからもっと読んでみよう。あと、tagomorisさんが想像以上に(いい意味で)変態だということがわかりました。ふっふっふっココはソースリーディングしたら3時間とかすぐたって最高に面白いよとか。
- 合言葉はMakeSyncCall
- 「空行」を楽しめ
- 空行の楽しさは無事理解できました。
twitterのログまとめ
- -
waveのまとめ
blogレポ
過去のappengine java nightの発表資料をみたい方はこちら
- #1,#2
- #3
- #4
- #5
- #6
- #7
- #8