SlideShare a Scribd company logo
CouchDB : The Definitive Guide 勉強会 #206. Finding Your Data with Views2009/10/16RelaxCafe@CouchDB break.2id:yssk22 (CouchDB-JP)
先に読後感想とりあえず動かしながら考えてみましょう。手元にCouchDBない人は適当につないでください。接続情報SSID: macbook-yssk22WEP: time2relaxIPは 192.168.1.0/24 でstaticに降ってください。http://192.168.1.226:5984/_utils/CouchDB 0.10.0relax_xxxxと書いてあるDBは削除しないでください!
View の目的ドキュメントのフィルタリングフォーマットと並び替えインデックスを作るドキュメントを効率的に見つけるために!リレーションを定義するために!様々な計算
Relax1. ビューの作成ブログのデータを日付順に並び替えよう実際にやってみる
Relax1.ビューの作成データが格納してあるデータベースrelax_data1適当に新しくDBを作って、relax_data_1からデータをコピーmap 関数を定義して、結果を確認するデザインドキュメント"docs"を作り、"by_date"というビューを定義
map function の中身1つ1つのドキュメントに対する処理を定義する関数function(doc){  .... }emit(key, value) で出力を定義する出力されるkeyの辞書順で並び替えされるデザインドキュメントのviewsに文字列として登録
map functionの実行タイミング各ドキュメントに対して、ビューの呼び出し時に1回ずつ呼ばれるN個のドキュメントがあればN回mapが呼ばれる。mapの結果はB-Treeに保存されるオリジナルのドキュメントに変更がない限り2度以上は呼ばれないB-Tree は Key に基づく構成になっているため、Keyに対する検索、並び替えが高速
ドキュメントを変更したときのViewの挙動map結果のB-Treeのそれぞれのノードは、どのドキュメントから生成されたか、の情報を持っている。古いノードはCouchDBによりinvalidマークがつけられ、Viewの結果に表れなくなる。ドキュメントが追加/更新されたときにのみ、map関数が新しく追加されたドキュメントに対して実行され、結果がViewのB-Treeに保存される。実際には、ドキュメントが追加/更新されて、次にViewにアクセスがあったとき。
Relax2. ビューを使った検索(1)特定の日付のタイトルを検索しよう実際にやってみる
Relax2. ビューを使った検索(1)ブラウザ(or curl)でアクセスURIにクエリ文字列(key)をつける/{db}/_design/docs/_view/by_date?key="2009/01/30 18:04:11"
keyパラメーターemit(key, value)のkeyに一致する結果を返す。次のような場合	emit("a", "foo");emit("a", "bar");?key="a" でアクセスすると... ?
Relax3. ビューを使った検索(2)指定範囲の日付のタイトルを検索しよう2009年1月のタイトルを検索実際にやってみる
Relax3. ビューを使った検索(2)ブラウザ(or curl)でアクセスURIにクエリ文字列(key)をつける/{db}/_design/docs/_view/by_date?startkey="2009/01/01 00:00:00"&endkey="2009/02/01 00:00:00 "
Relax4. ビューを使った検索(3)指定範囲の日付のタイトルを検索しよう日付の範囲をNumber配列にして扱いやすくする実際にやってみる?
Relax4. ビューを使った検索(3)ブラウザ(or curl)でアクセスemit(doc.date, doc.title)を次の形になるように書き換える。emit([year,month,day, hour, minutes, second],doc.title);URIにクエリ文字列(key)をつける/{db}/_design/docs/_view/by_date?startkey=[2009,1,1,0,0,0]&endkey=[2009,2,1,0,0,0]
Relax5. ビューを使った検索(4)特定のタグを持つタイトルを検索。emit のキーは?実際にやってみる?
クエリ文字列に関してkey={JSON}指定したキーにマッチする結果を検索startkey={JSON}指定したキーより大きい結果を検索endkey={JSON}指定したキーより小さな結果を検索descending=trueキーの逆順に"たどる"startkey, endkeyの解釈も変わるので注意結果を並び替えるのではなく、B-Treeのたどり方を指定する点に注意。limit=NumberキーをたどってNumber個見つかった時点で結果を返す。skip=Numberキーをたどるときに、最初のNumber個をとばす
これ以降まだ完成していない模様資料じゃなくて元の本が!補完しながら進めます。宣伝reduce の仕組みは少し複雑なので、とりあえず使い方知りたい方は、developerWorksの記事を読むといい!http://www.ibm.com/developerworks/jp/web/library/j_wa-couchdb03/index.html
Relax6. ビューを使った計算コメントの数をカウントする実際にやってみるちょっとデータが足りないので、適当に作ってください。データ作ったら relax_data1 に向けてレプリカしてもらえると!
追加するデータ"post_id" "biking", "bought-a-cat", "hello-world"のどれか"name"適当に"body"適当に"created_at""YYYY/MM/DD HH:MM:SS +0000""type""comment"
Relax6. ビューを使った計算
reduceとB-TreeB-TreeのNon-Leaf ノードに保存されるmapの結果と同じくキャッシュが有効!Non-Leaf同士の計算をするときは第3引数rereduceがtrueになるLeafノード(mapの結果)同士の計算の場合 rereduceはfalseCouchDBのB-Treeは B+-Tree
イメージrereduce()reduce()map()

More Related Content

What's hot (20)

PPTX
Database on Kubernetes - HA,Replication and more -
t8kobayashi
 
PDF
Solrベースの全文検索サーバ Fess
Shinsuke Sugaya
 
PPTX
ReadyNAS OS 6.8.0 新機能紹介
NETGEAR Japan
 
PDF
20190213 Cloud-Native StorageとDatabase on Kubernetesの良い関係
t8kobayashi
 
PDF
Spider DeNA Technology Seminar #2
Kentoku
 
PDF
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
Ryuji Tamagawa
 
PDF
DBFluteを用いて開発されている全文検索システムFess
Shinsuke Sugaya
 
PPTX
Introducing PostgreSQL on Kubernetes
t8kobayashi
 
PDF
Elasticsearch at CrowdWorks
佑介 九岡
 
PDF
20190410 cnjp rancher-flexvolume
t8kobayashi
 
PDF
hs_spider_hs_something_20110906
Kentoku
 
PDF
Infinispan - Open Source Data Grid rev2
nekop
 
PDF
Spiderの最新動向 20130419
Kentoku
 
PDF
FukuokaCloud_Azure
Shinichiro Isago
 
PPTX
Aerospike基本のき
Yuto Suzuki
 
PDF
20120913 nosql@hikarie(okuyama fuse)
Takahiro Iwase
 
PPTX
Client Side Balzorでツールを作ってみた
裕之 木下
 
PDF
Parse触ってみた
Naoya Harasawa
 
PDF
オフィスに1台!全文検索Fess
Shinsuke Sugaya
 
PDF
Log analysis by using elasticsearch,kibana and fluentd.
Tadayasu Yotsu
 
Database on Kubernetes - HA,Replication and more -
t8kobayashi
 
Solrベースの全文検索サーバ Fess
Shinsuke Sugaya
 
ReadyNAS OS 6.8.0 新機能紹介
NETGEAR Japan
 
20190213 Cloud-Native StorageとDatabase on Kubernetesの良い関係
t8kobayashi
 
Spider DeNA Technology Seminar #2
Kentoku
 
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
Ryuji Tamagawa
 
DBFluteを用いて開発されている全文検索システムFess
Shinsuke Sugaya
 
Introducing PostgreSQL on Kubernetes
t8kobayashi
 
Elasticsearch at CrowdWorks
佑介 九岡
 
20190410 cnjp rancher-flexvolume
t8kobayashi
 
hs_spider_hs_something_20110906
Kentoku
 
Infinispan - Open Source Data Grid rev2
nekop
 
Spiderの最新動向 20130419
Kentoku
 
FukuokaCloud_Azure
Shinichiro Isago
 
Aerospike基本のき
Yuto Suzuki
 
20120913 nosql@hikarie(okuyama fuse)
Takahiro Iwase
 
Client Side Balzorでツールを作ってみた
裕之 木下
 
Parse触ってみた
Naoya Harasawa
 
オフィスに1台!全文検索Fess
Shinsuke Sugaya
 
Log analysis by using elasticsearch,kibana and fluentd.
Tadayasu Yotsu
 

Viewers also liked (7)

PPTX
Media On Couch
Yohei Sasaki
 
PPTX
Barilla inforgraphic
Andy Gilman
 
PPTX
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
Yohei Sasaki
 
PPT
Everyone Knows What Bim Is Princess Leia Loaded A Bim Of The Death Star Into ...
Rhonda Bulmer
 
PPT
2008 Farm Bill Presentation
DuaneHovorka
 
PPT
Distant Learning
guestd371d963
 
KEY
20120317 CloudFoundry #pyfes
Yohei Sasaki
 
Media On Couch
Yohei Sasaki
 
Barilla inforgraphic
Andy Gilman
 
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
Yohei Sasaki
 
Everyone Knows What Bim Is Princess Leia Loaded A Bim Of The Death Star Into ...
Rhonda Bulmer
 
2008 Farm Bill Presentation
DuaneHovorka
 
Distant Learning
guestd371d963
 
20120317 CloudFoundry #pyfes
Yohei Sasaki
 
Ad

Similar to Finding Your Data with Views (10)

PPTX
BPStudy32 CouchDB 再入門
Yohei Sasaki
 
PDF
カウチなやつら CouchDB in the room
Makoto Ohnami
 
PDF
CouchDB JP & BigCouch
Yohei Sasaki
 
KEY
はじめてのCouch db
Eiji Kuroda
 
PDF
私の考えるドキュメント指向
Yohei Yamamoto
 
PDF
Shibuya Perl Mongers#12 No Sql Couch Db
Makoto Ohnami
 
PDF
CouchDBをヤラナイカ
Makoto Ohnami
 
PPTX
PHPとMongoDBで学ぶ次世代データストア
Takuya Sato
 
PPT
Mongodb
Satoru Mikami
 
PPTX
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
 
BPStudy32 CouchDB 再入門
Yohei Sasaki
 
カウチなやつら CouchDB in the room
Makoto Ohnami
 
CouchDB JP & BigCouch
Yohei Sasaki
 
はじめてのCouch db
Eiji Kuroda
 
私の考えるドキュメント指向
Yohei Yamamoto
 
Shibuya Perl Mongers#12 No Sql Couch Db
Makoto Ohnami
 
CouchDBをヤラナイカ
Makoto Ohnami
 
PHPとMongoDBで学ぶ次世代データストア
Takuya Sato
 
Mongodb
Satoru Mikami
 
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
 
Ad

More from Yohei Sasaki (13)

KEY
CloudFoundry@home
Yohei Sasaki
 
KEY
MongoDB on CloudFoundry
Yohei Sasaki
 
KEY
MongoDB on CloudFoundry
Yohei Sasaki
 
PDF
membase
Yohei Sasaki
 
PDF
Bp study39 nodejs
Yohei Sasaki
 
KEY
CouchDB
Yohei Sasaki
 
PDF
Couch DB in 15minutes
Yohei Sasaki
 
PPTX
RelaxCafe@CouchDB break.4
Yohei Sasaki
 
PPTX
CouchDB+OpenSocial - OSC 2009/Fall Tokyo (En)
Yohei Sasaki
 
PPTX
前回のまとめ
Yohei Sasaki
 
PPTX
Why CouchDB
Yohei Sasaki
 
PPTX
Couch Db勉強会0623 by yssk22
Yohei Sasaki
 
PDF
Couch Db.0.9.0.Pub
Yohei Sasaki
 
CloudFoundry@home
Yohei Sasaki
 
MongoDB on CloudFoundry
Yohei Sasaki
 
MongoDB on CloudFoundry
Yohei Sasaki
 
membase
Yohei Sasaki
 
Bp study39 nodejs
Yohei Sasaki
 
CouchDB
Yohei Sasaki
 
Couch DB in 15minutes
Yohei Sasaki
 
RelaxCafe@CouchDB break.4
Yohei Sasaki
 
CouchDB+OpenSocial - OSC 2009/Fall Tokyo (En)
Yohei Sasaki
 
前回のまとめ
Yohei Sasaki
 
Why CouchDB
Yohei Sasaki
 
Couch Db勉強会0623 by yssk22
Yohei Sasaki
 
Couch Db.0.9.0.Pub
Yohei Sasaki
 

Recently uploaded (10)

PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
PDF
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 

Finding Your Data with Views