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 (7)

PDF
【AI論文解説】 RLHF不要なLLMの強化学習手法: Direct Preference Optimization(+α)
Sony - Neural Network Libraries
 
PDF
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
 
PPTX
Devcontainerのススメ(1)-Devcontainerとはどういう技術?-
iPride Co., Ltd.
 
PDF
Google Driveハブ型Obsidian同期環境:PC編集とモバイル閲覧を安全・効率的に実現するクロスデバイス構築ガイド
honeshabri
 
PDF
20250711JIMUC総会_先進IT運用管理分科会Connpass公開資料.pdf
ChikakoInami1
 
PDF
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
【AI論文解説】 RLHF不要なLLMの強化学習手法: Direct Preference Optimization(+α)
Sony - Neural Network Libraries
 
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
 
Devcontainerのススメ(1)-Devcontainerとはどういう技術?-
iPride Co., Ltd.
 
Google Driveハブ型Obsidian同期環境:PC編集とモバイル閲覧を安全・効率的に実現するクロスデバイス構築ガイド
honeshabri
 
20250711JIMUC総会_先進IT運用管理分科会Connpass公開資料.pdf
ChikakoInami1
 
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 

Finding Your Data with Views