Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
マイクロにしすぎた結果がこれだよ!
mosa siru
がっつりMongoDB事例紹介
Tetsutaro Watanabe
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
webエンジニアのためのはじめてのredis
nasa9084
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
1
of
45
Top clipped slide
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Jun. 2, 2016
•
0 likes
61 likes
×
Be the first to like this
Show More
•
59,542 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
2016/05/25 de:code2016での、渡部の講演資料になります
Recruit Technologies
Follow
IT at Recruit Technologies Co.,LTD.
Advertisement
Advertisement
Advertisement
Recommended
ビッグデータ処理データベースの全体像と使い分け 2018年version
Tetsutaro Watanabe
21K views
•
59 slides
Redisの特徴と活用方法について
Yuji Otani
98.6K views
•
65 slides
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
52.1K views
•
21 slides
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
86.2K views
•
66 slides
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
143.1K views
•
45 slides
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
170.3K views
•
24 slides
More Related Content
Slideshows for you
(20)
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
•
6.5K views
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
•
48.2K views
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
•
55.9K views
マイクロにしすぎた結果がこれだよ!
mosa siru
•
131.4K views
がっつりMongoDB事例紹介
Tetsutaro Watanabe
•
22.8K views
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
•
22.4K views
webエンジニアのためのはじめてのredis
nasa9084
•
7.7K views
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
•
3.8K views
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
•
33.6K views
PostgreSQLアンチパターン
Soudai Sone
•
47.5K views
イミュータブルデータモデルの極意
Yoshitaka Kawashima
•
22.5K views
開発速度が速い #とは(LayerX社内資料)
mosa siru
•
57.9K views
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
•
55.5K views
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
Satoshi Nagayasu
•
8.7K views
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
•
82.3K views
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
•
51.4K views
各種データベースの特徴とパフォーマンス比較
株式会社オプト 仙台ラボラトリ
•
10.2K views
AWSのログ管理ベストプラクティス
Akihiro Kuwano
•
75.2K views
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
•
51.6K views
RDF Semantic Graph「RDF 超入門」
オラクルエンジニア通信
•
9.7K views
Similar to RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
(20)
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
Tetsutaro Watanabe
•
6.9K views
【de:code 2020】 Azure Cosmos DB - Build 2020 アップデート
日本マイクロソフト株式会社
•
687 views
【de:code 2020】 PostgreSQL もスケールさせよう! - Hyperscale (Citus) -
日本マイクロソフト株式会社
•
354 views
NoSQLデータベースと位置情報
Koji Ichiwaki
•
17.6K views
WebDB Forum 2012 基調講演資料
Recruit Technologies
•
4.3K views
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
griddb
•
240 views
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
griddb
•
261 views
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
Insight Technology, Inc.
•
1.3K views
20180217 hackertackle geode
Masaki Yamakawa
•
1.9K views
About NoSQL
hideaki honda
•
3K views
オンプレでもクラウドでも データベースサーバの運用
elanlilac
•
4.6K views
Developers.IO 2019 Effective Datalake
Satoru Ishikawa
•
2.4K views
初めてのSQL
nasa9084
•
613 views
20221117_クラウドネイティブ向けYugabyteDB活用シナリオ
Masaki Yamakawa
•
66 views
【de:code 2020】 ~すでに時代遅れ? 個人情報や紙のためにオフィスに行くのは今すぐやめよう~ 日本郵政スタッフが実現したステイ ホーム/クラウ...
日本マイクロソフト株式会社
•
625 views
2023年はTiDBの時代!
Tomotaka6
•
162 views
20180922 jazug8 cosmosdb_search
Kazuhiro Wada
•
457 views
Osc2012.dbに行ってきました
Masaru Kobashigawa
•
405 views
RDBってなに?
Soudai Sone
•
1.4K views
ビッグデータ活用支援フォーラム
Recruit Technologies
•
3.4K views
Advertisement
More from Recruit Technologies
(20)
新卒2年目が鍛えられたコードレビュー道場
Recruit Technologies
•
7K views
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
Recruit Technologies
•
9.2K views
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Recruit Technologies
•
7K views
Tableau活用4年の軌跡
Recruit Technologies
•
5.5K views
HadoopをBQにマイグレしようとしてる話
Recruit Technologies
•
3.8K views
LT(自由)
Recruit Technologies
•
3.8K views
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
Recruit Technologies
•
28.6K views
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
Recruit Technologies
•
1.9K views
リクルート式AIの活用法
Recruit Technologies
•
5.4K views
銀行ロビーアシスタント
Recruit Technologies
•
1.6K views
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
Recruit Technologies
•
28.8K views
ユーザー企業内製CSIRTにおける対応のポイント
Recruit Technologies
•
3.2K views
ユーザーからみたre:Inventのこれまでと今後
Recruit Technologies
•
9.2K views
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Recruit Technologies
•
3.5K views
EMRでスポットインスタンスの自動入札ツールを作成する
Recruit Technologies
•
1.9K views
RANCHERを使ったDev(Ops)
Recruit Technologies
•
2.6K views
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
Recruit Technologies
•
4.9K views
ユーザー企業内製CSIRTにおける対応のポイント
Recruit Technologies
•
2K views
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
Recruit Technologies
•
29.7K views
「リクルートデータセット」 ~公開までの道のりとこれから~
Recruit Technologies
•
2.2K views
Recently uploaded
(20)
☀️【卡尔顿大学毕业证成绩单留学生首选】
15sad
•
2 views
留信网认证可查【拜欧拉大学文凭证书毕业证购买】
1lkjhg
•
3 views
20230523_IoTLT_vol99_kitazaki_v1.pdf
Ayachika Kitazaki
•
108 views
20230516 @Mix Leap Hirohiko_Suwa
Masashi Nakagawa
•
90 views
20230601_Visual_IoTLT_vol14_kitazaki_v1.pdf
Ayachika Kitazaki
•
17 views
Windows ChatGPT Bing AI.pptx
Atomu Hidaka
•
6 views
通信プロトコルについて
iPride Co., Ltd.
•
6 views
AIEXPO_CDLE名古屋紹介
KotaMiyano
•
3 views
統計学の攻略_推測統計学の考え方.pdf
akipii Oga
•
182 views
Üslup ve tercüme.pdf
1Hmmtks
•
2 views
HTTPの仕組みについて
iPride Co., Ltd.
•
8 views
統計学の攻略_正規分布ファミリーの全体像.pdf
akipii Oga
•
176 views
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
Deep Learning JP
•
13 views
CDLEハッカソン2022参加報告.pdf
SHOIWA1
•
8 views
【DL輪読会】Poisoning Language Models During Instruction Tuning Instruction Tuning...
Deep Learning JP
•
12 views
TestSIP (1).pdf
DeependraSingh712859
•
2 views
ペンタエリスリトール市場.pdf
HinaMiyazu
•
3 views
統計学の攻略_統計的仮説検定の9パターン.pdf
akipii Oga
•
175 views
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
オラクルエンジニア通信
•
31 views
【DL輪読会】大量API・ツールの扱いに特化したLLM
Deep Learning JP
•
15 views
Advertisement
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ 2016/05/25 株式会社リクルートテクノロジーズ 渡部徹太郎
自己紹介 {"ID" :"fetaro" "名前" :"渡部
徹太郎" "所属" :株式会社リクルートテクノロジーズ "研究" :"東京工業大学でデータベースと情報検索の研究 (@日本データベース学会)" "仕事" :["証券会社のオンライントレードシステムのWeb基盤", "オープンソースなら何でも。主にMongoDB", "リクルート各種サービスを横断的分析する基盤。主にHadoop"] "エディタ":"emacs派" "趣味":"自宅サーバ" "属性" : ["ギーク","スーツ"]} fetaro RDB技術者のためのNoSQLガイド 2
書籍について • ギーク向けではなく、一般のRDB技術者向け • NoSQLの位置づけを明確化 (Hadoop,
DWHとの違い) • エンタープライズの課題を解決する視点 • NoSQL界のスペシャリスト達による最新情報 • 評価良好!4.3点→ RDB技術者のためのNoSQLガイド 3
NoSQLの必要性 RDB技術者のためのNoSQLガイド 4
背景:3つのVの増加 • Volume(データ量)の増加 • Googleは1日に24ペタバイトのデー タを処理している •
facebookの写真は1.5ペタバイト スケールアップ スケールアウト コントローラ 性能限界 高コスト+構造上の限界限界有り CPU↑ メモリ↑ ディスク↑ RDB RDB技術者のためのNoSQLガイド 5 • Velocity(処理速度)の増加 • orange(大規模Web)サービス秒間11万アクセス • マウスの軌跡を解析→秒間万単位の書き込み • twitter 「バルス」で秒間14万つぶやき [課題] RDBではビッグデータの扱いが困難
背景: 3つのVの増加 • Variety(多様性)の増加 社内
社外 非リレー ショナル データ 非構造 半構造 リレーショ ナルデータ 構造化 オフィス文章 システムロ グ テキスト・音声 (顧客対応履 歴)電子メール 経理・財務・ 人事 営業・CRM センサー 情報 位置・地 図 SNS マルチメ ディア 他社が保 有する データ 気象・交 通 健康・医 療 各種統計 行政 金融取引 商品・在庫 決済・残高 口コミ文 章 RDB技術者のためのNoSQLガイド 6 [課題] 半構造データはRDBでは格納が困難 Schema on Write < Schema on Read
RDBだと厳しい身近なケース • 「Twitterのデータを分析して商品評判を知りたい。プロトを3日で作ってくれ」 TwitterのAPIが返却するデータ(JSON) • この状況でこのデータをRDBMSにいれますか?? { "_id"
: ObjectId("55b93f4bb427f0c12e080473"), "created_at" : "Wed Jul 29 20:57:42 +0000 2015", "id" : 626496848031690800, "text" : "@mchris4duke and certainly not concious, for a f moment, of their prejudices", "source" : "<a href=¥"http://twitter.com¥" rel=¥"nofollow Web Client</a>", "truncated" : false, "in_reply_to_status_id" : 626496667957751800, "in_reply_to_screen_name" : "mchris4duke", "user" : { "id" : 772136, "id_str" : "772136", "name" : "Greg Smith", "place" : null, "contributors" : null,"retweet_count" : 0, "favorite_count" : 0, "entities" : { "hashtags" : [ ], "trends" : [ ], "urls" : [ ], "user_mentions" : [ { "screen_name" : "mchris4duke", "name" : "Chris Bourg", "id" : 14093339, "id_str" : "14093339", "indices" : [0,12] ここは一対多 これは何桁ある んだろう? なんか、前と変 わってるような ここも一対多 テーブルは3つに分けて、 JOINを2回するしかない RDB技術者のためのNoSQLガイド 7
RDBの課題の一部を解決するDBが登場 RDB技術者のためのNoSQLガイド 8 スケールアウト アプリ 性能限界 水平分散で性能向上 アプリ 大量データ処理 高速データ処理 半構造 データ処理 KVS/ ドキュメント データベース グラフ データベース 課題 解決するDB 事前に構造を定義する必要がない 「スキーマ・オン・リード」 CREATE
TABLE ALTER TABLEJSONが格納できる RDB
RDBの課題の一部を解決するDBが登場 RDB技術者のためのNoSQLガイド 9 スケールアウト アプリ 性能限界 水平分散で性能向上 アプリ 大量データ処理 高速データ処理 半構造 データ処理 KVS/ ドキュメント データベース グラフ データベース 課題 解決するDB 事前に構造を定義する必要がない 「スキーマ・オン・リード」 CREATE
TABLE ALTER TABLEJSONが格納できる RDB
NoSQLの位置づけ RDB技術者のためのNoSQLガイド 10
DBを重視する性能で分類 • レスポンスを重視 →主にオペレーション用途 •
スループットを重視 →主に分析用途 11 アプリケーションサーバ オペレーション 用途 データベース登録画面 リクエスト 参照 更新 挿入 参照画面 編集画面 即時応答 マスタ データベース BIツール 集計 バッチで ロード 分析用途 データベース レポート生成ジョ ブ 抽出 CSV バッチで ロード レポート 20分で全件集計 10秒で全件取得 RDB技術者のためのNoSQLガイド
NoSQLの位置づけ 凡例 レスポンス重視 (オペレーション用途) スループット重視 (分析用途) スケールアウトできる Hadoop (HDFS+MapReduce) ・Cloudera ・MapR ・Hortonworks RDB(OLTP) ・Oracle ・SQL Server ・MySQL グラフDB ・Neo4j RDB(DWH) ・Oracle Exadata ・Netezza ・RedShift
登場順 KVS ・Cassandra ・Redis ドキュメントDB ・MongoDB ・Couchbase NoSQL
RDB(OLTP)とKVS/ドキュメントDBの違い • RDB(OLTP)とは違い、 以下の3つによりスケーラビリティを獲得 1. トランザクションを提供しない 2.
分散しやすいデータモデルと、分散しやすいクエリだけを提供 する 3. 「強い整合性」を犠牲にして、複製に対して読み書きを行う 「結果整合性」を採用
RDB(OLTP)とKVS/ドキュメントDBの違い アプリケーション アプリケーション スケールアウト構成 整合性は 保証される ②準備OK ④コミット ②準備OK ④コミット ②準備OK ④コミット ①コミット準備の確認 ③コミット指示 アプリケーション アプリケーション 待たされる A B
C 分散トランザクションで ABCを一括更新 アプリケーション 待たされる待たされる
RDB(OLTP)とKVS/ドキュメントDBの違い アプリケーション スケールアウト構成 更新 一括更新はできないので A→B→C の順番で更新 A B
C 更新 アプリケーション アプリケーション アプリケーション アプリケーション 更新 更新 更新 待たない 更新 更新 割り込まれて 整合性が 崩れる 可能性あり
KVS/ドキュメントDBとHadoopとの違い RDB技術者のためのNoSQLガイド 16 分散ファイルシステム (HDFS等) 分散処理フレームワーク (MapReduce, Spark等) ABC A
B C クライアント 計算 ノード 計算 ノード 計算 ノード コーディネータ ①データの配布 ②提出 ③計算 計算 結果 プログラム プログラム クライアント プログラムプログラム KVS/ ドキュメントDB シャード シャード シャード A クエリルータ B C アプリアプリ クエリ クエリ
データベースは互いの領域に進出している RDB技術者のためのNoSQLガイド 17 レスポンス重視 (オペレーション用途) スループット重視 (分析用途) スケールアップするしかない スケールアウトできるKVS/ドキュメントDB RDB(OLTP) RDB(DWH) Hadoop 分析もできる KVS/ドキュメントDB ・MongoDB
・Cassandra JSONを格納する RDB(OLTP) ・MySQL ・PostgreSQL ・IBM DB2 オペレーション もできるDWH ・SAP HANA 応答が速くて SQLが使えるHadoop ・Impala ・Presto ・Hive on Tez スケールアウトも できるDWH ・Oracle Exadata ・Teradata ・Neteeza ・Greenplum ・Vertica SQLが使える KVS/ドキュメントDB ・DocumentDB ・Cassandra
NoSQLの分類 RDB技術者のためのNoSQLガイド 18
NoSQLの分類 RDB技術者のためのNoSQLガイド 19 NoSQL ー
NoSQL プロダ クト KVS(キーバリューストア) ドキュメントDB RDB グラフDB データ モデル キーバリュー ワイドカラム ドキュメント(JSON) リレーショナ ルモデル グラフ データ 構造 キー 値 キー 値 array hash 階層構造 ノード リレー ション ノード ノード リレー ション データの複雑度 大小 処理の分散がしやすい 複雑なデータ処理が可能 キー 列
データ関連度とスケーラビリティ RDB技術者のためのNoSQLガイド 20 グラフ リレーショナル キーバリュー ワイドカラム ドキュメント
NoSQLの主要プロダクト RDB技術者のためのNoSQLガイド 21
NoSQL - NoSQL DB
KVS(キーバリューストア) ドキュメントDB RDB グラフDB OSS 商用 製品 サー ビス NoSQLの主要プロダクト RDB技術者のためのNoSQLガイド 22 ElastiCache Microsoft Azure Redis Cache
DB ENGINESによるランキング 23 以下の指標を総合的に判断 ・ウェブでのシステム名称の登場回数 (Google, Bing) ・一般的な人気度 (Google
Trends) ・技術的なディスカッションの頻度 (Stack Overflowなど) ・求人サイトにおける募集スキル (Indeed, Simply Hired) ・プロフィール登場回数 (LinkedIn) (出所)DB ENGINES http://db-engines.com/en/ranking RDB技術者のためのNoSQLガイド
ガートナー社のハイプサイクル ドキュメントデータベース キーバリューストア グラフデータベース
その他、本書で説明していること RDB技術者のためのNoSQLガイド 25
その他本書で紹介していること • 統一した観点で、代表プロダクトの最新情報を説明 • 想定されるユースケース(多数掲載) •
RDBの課題を解決するNoSQLプロダクトの選び方 RDB技術者のためのNoSQLガイド 26 • データモデル • API • 性能拡張 • 高可用 • 運用 • セキュリティ • 出来ないこと • 主要バージョンと特徴 • 国内サポート体制
株式会社リクルートテクノロジーズ 渡部徹太郎 MongoDBの紹介
目次
データモデル mongodプロセス データベース コレクション ドキュメント (JSON) ドキュメント (JSON) コレクション ドキュメント (JSON) ドキュメント (JSON) データ ベース コレク ション ・・・ ・・・ ・・・・・・
データモデル JSON { ID :
12345 , name :"渡部”, address : { City :"東京”, ZipNo :"045-3356”, } friendID : [ 3134 , 10231 , 10974 , 11165 ] , hobbies : [ { name :"自宅サーバ","year": 6 } , { name :"プログラミング","year": 10 } , 配列 サブドキュメントの配 列 キーと値 サブドキュメント
データモデル リレーショナルとの比較 { id: 10 name:
"マトリクス" tag : ["SF", "キアヌ", "ハリウッド"] } id name 10 "マトリクス" 11 "天空の城ラピュタ" JSON id movie_id value 1 10 "SF" 2 10 "キアヌ" 3 10 "ハリウッド" 4 11 "ファンタジー" 5 11 "宮崎駿" 6 11 "ジブリ" リレーショナル movieテーブル tagテーブル ・全貌が分からない ・データ構造を事前に定 義する必要がある ・読みやすい ・全貌がわかる ・データ変更に対応できる { Id: 11 name: "天空の城ラピュタ" tag : ["ファンタジー", "宮崎駿","ジブリ"] }
データモデル キーバリューとの比較 { id: 10 name:
"マトリクス" tag : ["SF", "キアヌ", "ハリウッド"] } JSON ・読みやすい ・全貌がわかる ・データ変更に対応できる { Id: 11 name: "天空の城ラピュタ" tag : ["ファンタジー", "宮崎駿","ジブリ"] } キーバリュー ・複雑なデータ構造だと 扱いが困難 key value 10-name "マトリクス" 10-tag-0 "SF" 10-tag-1 "キアヌ" 10-tag-2 "ハリウッド" 11-name "天空の城ラピュ タ" 11-tag-0 "ファンタジー" 11-tag-1 "宮崎駿" 11-tag-2 "ジブリ"
API • • 表現力豊かなクエリ • 強力なインデックス •
セカンダリインデックス:主キー以外でインデックスを作成可能 • 複合キーインデックス:複数のキーでインデックスを作成可能 • マルチキーインデックス:配列の要素に対してインデックス作成可能 • 集計できる(集計中はJOINもできる) • データバリデーションできる db.person.find( {"name":"watanabe","age": 30 } ).limit(3)
性能拡張 x ドキュメント チャンク シャードキーに基 づいて ルーティング シャードキー 範囲 0-9
範囲10-19 範囲20- アプリケーション mongosルータ 1 4 9 11 16 20 27 MongoDB ドライバ 23 23 mongod mongod mongod シャードキー で分散 自動的に 再配置
高可用 • 仮想IPなどを用意しなくてもフェイルオーバが可能 (≒クラスタソフトウェアが不要) アプリケーション プライマリ 1 4
9 セカンダリ 1 4 9 セカンダリ 1 4 MongoDBドライバ 9 書き レプリカセット 読み 非同期 で複製 読み プライマリ 1 4 9 プライマリ 1 4 9 セカンダリ 1 4 9 アプリケーション MongoDBドライバ 書き 読み読み 自動フェイル オーバ レプリカセット 書き込み はプライマ リのみ
高可用 × 性能拡張 マシン2 マシン3 マシン1プライマリ データ1 セカンダリ データ1 セカンダリ データ1 レプリカセット セカンダリ データ2 プライマリ データ2 セカンダリ データ2 レプリカセット セカンダリ データ3 セカンダリ データ3 プライマリ データ3 レプリカセット mongosルータ 負荷分散 冗 長 化 アプリケーション 1 1 1 2 2 2 3 3 3
高可用 × 性能拡張 マシン2 マシン3 マシン1プライマリ データ1 セカンダリ データ1 セカンダリ データ1 レプリカセット プライマリ プライマリ データ2 セカンダリ データ2 レプリカセット セカンダリ データ3 セカンダリ データ3 プライマリ データ3 レプリカセット mongosルータ 負荷分散 冗 長 化 アプリケーション 1 1 1 2 2 2 3 3 3
運用 監視、アラート、自動バックアップ、ポイントインタイムリカバリ、自動バージョンアップ
運用
その他特徴 セットアップが非常に簡単 RDBMSを使っていた人が 使いやすいように作られている
できないこと • • • • • • ⇒ver 3.0で解決 • •
⇒ ver 3.2で解決 ユーザ1 取引1 取引2 ユーザ1 取引1 取引2 ドキュ メント 参照 制約 結合 トランザクション
ユースケース Webアプリ・オンラインゲーム • KVSでは扱えないデータの複雑さ •
ユーザが一気に増えた時に、 RDBでは性能の拡張が難しい • そもそもデータ量が多すぎて RDBでは現実的なコストで扱えない app Mongo Mongoapp Mongo app Mongo Mongo Mongo Mongo Mongo Mongo 急なユーザ増加にも、水 平分散で簡単に対応で きる 課題 選定理由・解決策 結果 •MySQLがスケーラビリティの上限に達して性能要 件を達成できなくなった •RBMSでは非定型なメタデータの管理が困難 •性能とスケーラビリティに期待しMongoDBを導入 •60億におよぶ属性情報データの代わりに、1コン テンツを1ドキュメントにする構造を導入 •秒間11万件以上のクエリに対応 •3年で200万ドル以上のコスト削減 •新規機能の導入のスピードが著しく早くなった •新規プロジェクトでは全てMongoDBを利用する方 針となった 活用事例: orange(Webサービス事業) 700万ユーザを超えるWebサービスのバックグラウンドDB
ユースケース ログ管理 • フォーマットが違っても、JSON で吸収 •
インデックスを貼って高速に検 索 • レプリケーションしておけばロス トする心配もない • FluentdならばFluentdのタグが そのままMongoDBのコレクショ ン名になる • 台数が増えたらスケールアウト すれば良い • 高度なトランザクションは不要
ユースケース カタログ管理 • RDBでは列の定義が膨大になる •
エンジニアでなくてもデータの全貌 がわかる • データ追加項目が容易 Mongo app カタログ (JSON) 課金情報等 (リレーショナル) 既存 新規 トランザクションが必要な課金は 従来通りRDBMSで一貫性を担保 読みやすい。 項目追加も簡単。 カタログ管理 RDBMS 課題 選定理由・解決策 結果 •RDBMSベースの旧システムでは商品カタログの アップデートに12時間かかった •JSONがスキーマレスでかつ複雑なデータ構造を 格納できるので、商品データを入れるのには最 適だった •カタログのアップデートに要する時間が12時間か ら15分になり、ビジネス環境の変化に応じて迅速 にカタログを変更できるようになった 活用事例: OTTO 毎日200万人が利用する大手Eコマースサイトの商品カタログを管理
ユースケース アジャイル • スキーマの変更不要 •
直観的にデータを表現できるため、データの扱 いが簡単 • ORマッパーを使う必要なし • アプリ開発をサポートする機能が充実 • ハッカソンでは常連DB • 近年のWeb開発フレームワークに採用されてい る 機能 ユースケース GridFS 大容量ファイルの管理 地理空間インデッ クス 地図アプリ 集計機能 データの集計 旧データ自動削除 ログ保管
Advertisement