Submit Search
Upload
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
•
48 likes
•
10,140 views
Ryuji Tamagawa
Follow
RDBとの比較でMongoDBの特徴を紹介しています。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 29
Download now
Download to read offline
Recommended
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
MongoDBの監視
MongoDBの監視
Tetsutaro Watanabe
WiredTigerを詳しく説明
WiredTigerを詳しく説明
Tetsutaro Watanabe
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
Mongo dbを知ろう
Mongo dbを知ろう
CROOZ, inc.
Recommended
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
MongoDBの監視
MongoDBの監視
Tetsutaro Watanabe
WiredTigerを詳しく説明
WiredTigerを詳しく説明
Tetsutaro Watanabe
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
Mongo dbを知ろう
Mongo dbを知ろう
CROOZ, inc.
MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
Takahiro Inoue
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
MySQL Index勉強会外部公開用
MySQL Index勉強会外部公開用
CROOZ, inc.
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
データベース設計徹底指南
データベース設計徹底指南
Mikiya Okuno
PostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
Masahito Zembutsu
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
Yuki Morishita
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Mongo dbを知ろう devlove関西
Mongo dbを知ろう devlove関西
Ryuji Tamagawa
データベース勉強会 In 広島 mongodb
データベース勉強会 In 広島 mongodb
Ryuji Tamagawa
More Related Content
What's hot
MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
Takahiro Inoue
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
MySQL Index勉強会外部公開用
MySQL Index勉強会外部公開用
CROOZ, inc.
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
データベース設計徹底指南
データベース設計徹底指南
Mikiya Okuno
PostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
Masahito Zembutsu
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
Yuki Morishita
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
What's hot
(20)
MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
MySQL Index勉強会外部公開用
MySQL Index勉強会外部公開用
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
データベース設計徹底指南
データベース設計徹底指南
PostgreSQLでスケールアウト
PostgreSQLでスケールアウト
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
PostgreSQLアンチパターン
PostgreSQLアンチパターン
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
Similar to RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Mongo dbを知ろう devlove関西
Mongo dbを知ろう devlove関西
Ryuji Tamagawa
データベース勉強会 In 広島 mongodb
データベース勉強会 In 広島 mongodb
Ryuji Tamagawa
初めてのMongo db
初めてのMongo db
Ryuji Tamagawa
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
nekogeruge_987
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
Yasuhito Yabe
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
infinite_loop
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Katsunori Kanda
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
Kentaro Matsui
MongoDBCSharp
MongoDBCSharp
ytanno
Casual Compression on MongoDB
Casual Compression on MongoDB
moai kids
[AWSマイスターシリーズ] Amazon DynamoDB
[AWSマイスターシリーズ] Amazon DynamoDB
Amazon Web Services Japan
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
Shogo Iwano
20131012 nodejs
20131012 nodejs
Amuro Nishizawa
mrubyで作るマイコンボード
mrubyで作るマイコンボード
kishima7
JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)
VOYAGE GROUP
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
じゅん なかざ
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
Yuji Nojima
パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)
odakeiji
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
Yuji Nojima
Google Product
Google Product
Daisuke Sugai
Similar to RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
(20)
Mongo dbを知ろう devlove関西
Mongo dbを知ろう devlove関西
データベース勉強会 In 広島 mongodb
データベース勉強会 In 広島 mongodb
初めてのMongo db
初めてのMongo db
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
MongoDBCSharp
MongoDBCSharp
Casual Compression on MongoDB
Casual Compression on MongoDB
[AWSマイスターシリーズ] Amazon DynamoDB
[AWSマイスターシリーズ] Amazon DynamoDB
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
20131012 nodejs
20131012 nodejs
mrubyで作るマイコンボード
mrubyで作るマイコンボード
JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
Google Product
Google Product
More from Ryuji Tamagawa
20171012 found IT #9 PySparkの勘所
20171012 found IT #9 PySparkの勘所
Ryuji Tamagawa
20170927 pydata tokyo データサイエンスな皆様に送る分散処理の基礎の基礎、そしてPySparkの勘所
20170927 pydata tokyo データサイエンスな皆様に送る分散処理の基礎の基礎、そしてPySparkの勘所
Ryuji Tamagawa
hbstudy 74 Site Reliability Engineering
hbstudy 74 Site Reliability Engineering
Ryuji Tamagawa
PySparkの勘所(20170630 sapporo db analytics showcase)
PySparkの勘所(20170630 sapporo db analytics showcase)
Ryuji Tamagawa
20170210 sapporotechbar7
20170210 sapporotechbar7
Ryuji Tamagawa
20161215 python pandas-spark四方山話
20161215 python pandas-spark四方山話
Ryuji Tamagawa
20161004 データ処理のプラットフォームとしてのpythonとpandas 東京
20161004 データ処理のプラットフォームとしてのpythonとpandas 東京
Ryuji Tamagawa
20160708 データ処理のプラットフォームとしてのpython 札幌
20160708 データ処理のプラットフォームとしてのpython 札幌
Ryuji Tamagawa
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
Ryuji Tamagawa
20151205 Japan.R SparkRとParquet
20151205 Japan.R SparkRとParquet
Ryuji Tamagawa
Performant data processing with PySpark, SparkR and DataFrame API
Performant data processing with PySpark, SparkR and DataFrame API
Ryuji Tamagawa
Apache Sparkの紹介
Apache Sparkの紹介
Ryuji Tamagawa
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える
Ryuji Tamagawa
ヘルシープログラマ・翻訳と実践
ヘルシープログラマ・翻訳と実践
Ryuji Tamagawa
Google Big Query
Google Big Query
Ryuji Tamagawa
BigQueryの課金、節約しませんか
BigQueryの課金、節約しませんか
Ryuji Tamagawa
You might be paying too much for BigQuery
You might be paying too much for BigQuery
Ryuji Tamagawa
Google BigQueryについて 紹介と推測
Google BigQueryについて 紹介と推測
Ryuji Tamagawa
lessons learned from talking at rakuten technology conference
lessons learned from talking at rakuten technology conference
Ryuji Tamagawa
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
Ryuji Tamagawa
More from Ryuji Tamagawa
(20)
20171012 found IT #9 PySparkの勘所
20171012 found IT #9 PySparkの勘所
20170927 pydata tokyo データサイエンスな皆様に送る分散処理の基礎の基礎、そしてPySparkの勘所
20170927 pydata tokyo データサイエンスな皆様に送る分散処理の基礎の基礎、そしてPySparkの勘所
hbstudy 74 Site Reliability Engineering
hbstudy 74 Site Reliability Engineering
PySparkの勘所(20170630 sapporo db analytics showcase)
PySparkの勘所(20170630 sapporo db analytics showcase)
20170210 sapporotechbar7
20170210 sapporotechbar7
20161215 python pandas-spark四方山話
20161215 python pandas-spark四方山話
20161004 データ処理のプラットフォームとしてのpythonとpandas 東京
20161004 データ処理のプラットフォームとしてのpythonとpandas 東京
20160708 データ処理のプラットフォームとしてのpython 札幌
20160708 データ処理のプラットフォームとしてのpython 札幌
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
20151205 Japan.R SparkRとParquet
20151205 Japan.R SparkRとParquet
Performant data processing with PySpark, SparkR and DataFrame API
Performant data processing with PySpark, SparkR and DataFrame API
Apache Sparkの紹介
Apache Sparkの紹介
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える
ヘルシープログラマ・翻訳と実践
ヘルシープログラマ・翻訳と実践
Google Big Query
Google Big Query
BigQueryの課金、節約しませんか
BigQueryの課金、節約しませんか
You might be paying too much for BigQuery
You might be paying too much for BigQuery
Google BigQueryについて 紹介と推測
Google BigQueryについて 紹介と推測
lessons learned from talking at rakuten technology conference
lessons learned from talking at rakuten technology conference
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
Recently uploaded
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Recently uploaded
(9)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
1.
RDB経験者に送る MongoDBの勘所 ! 玉川竜司
2.
自己紹介 • 玉川竜司 • FB: Ryuji Tamagawa • Twitter:
tamagawa_ryuji • 本業ソフト開発(Sky株式会社) • 兼業翻訳者(ほぼオライリー)
3.
もうすぐ出ます
4.
今日のお題は MongoDB
5.
MongoDBのいいところ • 一言で言うなら「お手軽」 いい意味で • Webアプリケーションで求められる機能が手っ取り早く使える • 多目的の高性能「オートマ車」 • インストーラやパッケージですぐ動きます • クラウド上で実績多数 • 多くの言語で、仕様がある程度統一されているドライバが利用可能
6.
ただし • 集計は(今のところ)苦手 • (ほんとの)ビッグデータはちょっと難しいかも • 基本的に、オンメモリでいけるかどうかが問題 • そういえば、でかいメモリのインスタンス、AWSでもAzureで もさくらでも増えましたね・・・
7.
RDBとの違い • 物理構造の違い • 論理構造の違い • トレードオフの柔軟性 • レプリカセット • シャーディング
8.
物理構造の違い RDB エンジンが管理する (物理)メモリバッファ データファイル MongoDB OSが管理するメモリ データ(メモリマップドファイル)
9.
物理構造の違い(2) • とにかく、「ホット」なデータが物理メモリに収まるかが肝心 • RDBほど細かなメモリのチューニングはできない • データが大きいなら、RAMを増やすか、シャーディングでスケール アウト
10.
論理構造の違い RDB MongoDB { _id: new ObjectId("6a5b1476238d3b4dd5000048"), slug:
"gardening-tools", ancestors: [{ name: "Home", _id: new ObjectId("8b87fb1476238d3b4dd500003"), slug: "home" }, { name: "Outdoors", _id: new ObjectId( 9a9fb1476238d3b4dd5000001"), slug: "outdoors" } ], parent_id: new ObjectId("9a9fb1476238d3b4dd5000001"), name: "Gardening Tools", description: "Gardening gadgets galore!",
11.
論理構造の違い(2) • スキーマの自由度は高い(特に変更に強い) • ドキュメントを超えたアトミック性はない • 設計上のトレードオフが生じる • 一つのドキュメントで閉じない場合はIDで参照 • そうなると、処理をプログラムで書く必要が出てくる
12.
トレードオフの柔軟性 RDB MongoDB 書き込み保証 する?しない? しなけりゃ高速 書いたら がっつり 永続化 トランザクション はデフォルト WAL使う? いくつのレプリ カへ書けたら成功 したことにする?
13.
トレードオフの柔軟性(2) • 書き込みの確実性とパフォーマンスはトレードオフ • 大量のログの記録などでは、多少こぼれるリスクを抱えてもコストダウ ンしたいこともある • 逆に、データセンター間で複製できていることを保証したいこともある • 書き込み保証(Write Concern)、WAL、レプリカへの書き込み、タ ギングなどで、多彩な調整が可能
14.
レプリカセットとシャーディングについて ちょっと注釈 • これらについては、「技術的には」RDBとの対立概念ではない • ただし、商用RDBではコストが跳ね上がる(ですよね?)機能 • MongoDBでは最初から組み込まれて、非常にお手軽 & 便利
15.
レプリカセット Client-App Driver 書込 読取 Repreca-Slave 複製 Repreca-Master Repreca-Slave
16.
レプリカセット(マスター交代) Client-App Driver 読取 書込 Repreca-Slave 複製 Repreca-Master Repreca-Master
17.
レプリカセット (パフォーマンストレードオフ) Client-App Driver 書込 読取 Repreca-Slave Repreca-Master (バックアップ) 複製 (インデックスあり) Repreca-Slave (インデックスあり) バックアップ用のインスタン スにはインデックスを付けず、 非力なマシンで済ませる
18.
レプリカセット(DC間での分散) Client-App Driver 書込 Repreca-Master 複製 読取 Repreca-Slave Repreca-Slave DC-1 DC-2
19.
レプリカセットのまとめ • 読み取り負荷の分散 • 耐障害性 • 自動フェイルオーバー & リカバリ • 多彩なトレードオフ
20.
シャーディング Client-App • • mongod for mongod for あかさたな はまやらわ パフォーマンスは上がる • mongos メモリ量をn倍に • Driver 書き込み負荷を1/nに 障害は起きやすくなる →レプリカセットと併用
21.
シャーディング(意味なしパターン) Client-App Driver • ホットになるのは最新のシャードばかり • 順序づけできるシャードキーは要注意 • キーにはハッシュ的なデータが向く • 場合によっては複合キーを使う mongos mongod for mongod for mongod
for 2013/9 2013/10 2013/11
22.
シャーディングのまとめ • 「わりとビッグ」なデータに対応するための仕組み →どのくらいビッグかはハードによるが、期待しすぎは禁物 • キーの選択がキモ • 耐障害性はシャーディングと組み合わせて担保
23.
RDBに似ているところは? 柔軟なインデックス!
24.
柔軟なインデックス • NoSQLエンジンは、インデックスが限定的なものが多い • MongoDBは、BSONデータのどこにでもインデックスを張れる • 複合キーも張れる • いくつでも張れる • クエリオプティマイザがキーの有無を(ある程度)ちゃんと見てくれる
25.
まとめ
26.
今日話したこと • この本に事細かに書かれています。 • 電子書籍もあります。 • http://www.oreilly.co.jp/ books/9784873115900/ • そのほかにもMongoDB関連の電子 書籍があるので、オライリージャパ ンのサイトで検索を。
27.
それはともかく • 簡単に始められて • かなり深く使うこともできます • ただし落とし穴もあります →コミュニティへどうぞ! http://www.mongodb.jp • まずは手を動かしてみましょう!
28.
最後に告知 • MongoDB Tokyo 2013
開催 • • • 日時:12/12(木) 申し込みサイト:http://atnd.org/event/mongodbtokyo2013 MongoDB University 日本語講座:第2弾開催 • 日時:11/25 • 申し込みサイト:https://education.mongodb.com/courses/10gen/M101P/2013_November/about
29.
ご清聴ありがとうございました。
Download now