Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB社の製品紹介2019
MongoDB EA&Atlas
2019/09
クリエーションライン株式会社
C.LEE
1
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
設立
• 2006年1月
現在、契約社員など含めて140人ぐらい
事業概要
• クラウドインテグレーション事業
• IoTビックデータソリューション事業
• DevOps関連サービス事業
クリエーションラインのホームページ
• https://www.creationline.com
クリエーションライン株式会社
2
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
自己紹介
李 昌桓 (LEE CHANGHWAN,@awk256)
データベースが大好きなサーバサイドのエンジニア。クリエーションライン社で、NoSQLを中核とした「ビックデータソリューシ
ョンのアーキテクト」として活動している。
クリエーションライン www.creationline.com
Neo4jユーザーグループ jp-neo4j-usersgroup.connpass.com
ScyllaDBユーザーグループ scylladb-usergroup-jp.connpass.com
[ブログ]
www.creationline.com/lab
www.qiita.com/aw256
[著書] 3
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB社の製品紹介
4
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
概要
MongoDB社は、従来のオンプレミス上のデータベース製品(MongoDB EA)を継続して展開しつつも、
MongoDB Atlasというクラウドサービスを積極的に展開しています。
• MongoDB Enterprise Advanced(on premise)
• MongoDB Atlas(Cloud)
5
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
• 2007年設立
• 本社は米国ニューヨーク
• 100カ国以上で13,000社以上の導入実績
• 20カ国で1000人以上の従業員
• 60 million downloads
• 100万以上のMongoDB University登録者
MongoDB社
6
看板製品は、MongoDB
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
全てのタイプのデータベースランキングで、リレーショナルデータベース4強に次ぐ5位
7
https://db-engines.com/en/ranking
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
同タイプのデータベースランキングでは、圧倒的な1位
8
https://db-engines.com/en/ranking/document+store
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDBは、様々な業界、様々な用度で使われている
9
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDBは、オンプレミスに留まらず、クラウドで大躍進!
MongoDBエコ環境
10
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
• MongoDB Community
✓ OSS版でもクラスターの構築・運用可、ロールベースのユーザ特権管理可
• MongoDB Enterprise Advanced(有償)
✓ オンプレミス向けの有償のサブスクリプション
✓ 24/365のサポート、運用管理ツール、ネットワークセキュリティー、 データ暗号化、監査ログ、インメモリエンジン、BIサポートなど
• MongoDB Atlas(無償/有償)
✓ MongoDBクラスターの構築・運用のPaaSの域を超え、アプリケーション開発フラットフォームを提供へ
MongoDB Editionの種類
11
https://www.mongodb.com/products/mongodb-enterprise-advanced
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDBは、ドキュメントモデルのデータベース
12
リレーショナルデータベースでは、分析用のテーブルは正規化を崩し非正規
化して持つべきだと言っています。しかし、リレーションデータベースで非
正規化するには、そもそも、データモデル自体に限界があります。ドキュメ
ントデータモデルは、非正規化テーブルを扱う事においては、どのタイプの
データモデルよりも優れています。
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
データベースのエリア
13
出典:RDB技術者のためのNoSQL
ガイド,秀和システム,2016
Hadoop
・Apache Hadoop
・Cloudera
・MapR
・Hortonworks
スループット重視
(レポーティング指向)
ターンアラウンドタイプ重視
(オペレーション指向) RDB(OLAP, DWH)
・Oracle Exadata
・Teradata
・Netezza
・Redshift
RDB(OLTP)
・Oracle
・SQL Server
・MySQL*
・PostgreSQL*
グラフDB
・Neo4j
・Neptune
・Gremlin スケールアウトできない
(*シャーディングでスケールアウト可)
スケールアウトできる
KVS
・Redies
・Memcache
ワイドカラム
・Cassandra
ドキュメント
・MongoDB
・Couchbase
NoSQL
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
データモデルのタイプ
ドキュメント(JSON) グラフ
001:’aaa’
002.’bbb’
003:’ccc’
001,title : “Amazo EC2”
001:price : 3000
001:Author : aaa
002:title : “Cassandra入門”
002:Price : “2000”
{ _id :001,
title : “Amazo EC2”,
price : 3000,
author : {
name : ‘aaa,
address : ‘xxx’
}
}
writed
データベースは何百種類もありますが、データモデルのタイプで分類してみると片手で数えるぐらいで
す(リレーショナルモデルは敢えて載せてません)
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
トキュメントモデルは、非正規化テーブルを完璧に実装できます。
• リレーショナルデータベースは、DWHエンジンでも、結局、ジョインだらけになります。
ドキュメントタイプのデータモデル
15
本テーブル
--------------
本ID
タイトル
著者ID
ページ
価格
…
著者テーブル
-----------------
著者ID
名前
年齢
電話番号
…
RDBの
非正規化
モデルなら?
{
本ID:” ”,
タイトル:” ”,
著者 {
名前:” ”,
年齢:” ”,
電話番号:” ”,
…
},
ページ:” ”
価格:” ”,
…
}
MongoDB
RDBの
正規化モデル
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
補足
• KVS
データをキーとバリューのペアのシンプルな構造で扱います。一般にみる表形式のようなデータを扱うには向いていません。シンプルな構成
で、大規模のデータを分散して管理したり、高速検索ができます。とても、メッセージやり取りやキューイング、シンプルで型にも縛られない
ために動画や音声、画像などにも用いられます。
• ワイドカラムモデル
キーバリュー型の拡張で、1つのキーに対して複数のフィルドを持たせることができます。データは巨大ですが、比較的に簡単な分析軸し
が持たないデータ処理に向いています。ワイドカラムモデルのデータベースは、効率的なデータ保存・検索のために、プライマリキーとパーテ
ィションという戦略を用いています。通常、複数のキーで一意性を持たせて更新に対応し、一番目のキーでパーティションを作り、同パー
ティーションのデータは、1カ所に集積することで保存・検索の効率を最適化します。
16
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
• リレーショナルモデル
諸々、データ処理の汎用性という面では、依然として王者と言っても過言ではありません。しかし、2次元の表形式で非正規化を進める
と、多次元的なデータが発生し、そのデータをどのように持つかの問題が発生します。結局、DWH用のスキーマでも、データを綺麗にした
り、統合したりするほかは、ある意味、分析向けの正規化モデルになってしまい、本来目指したはずのジョインが発生しないスキーマとは、
程遠いものになってしまいます。現代ではデータ自体がとても複雑で正規化が困難だったり、真逆で単純過ぎて意味がなかったりするデ
ータが現れ、伝統的なリレーショナルデータベースとは異なる手段が必要になって来ています。
• ドキュメントモデル
多数多様な分析軸を持つデータ処理に向いています。ドキュメントモデルは、ある意味、非正規化という側面でリレーショナルモデルの裏
返しのようなデータモデルです。多次元構造のデータをJSONやXML風の階層にネストすることによって、完璧に非正規化を実現します。
なお、その階層構造のデータに対してリレーショナルデータベース同様(B*Tree)のインデクシングが可能であり、宣言的なクエリーライク
な言語が利用できます。
補足
17
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
• グラフモデル
グラフモデルは、なにかしらのネットワークの問題が潜んでいる処理に適用したほうが良いでしょう。 グラフデータベースは、データ自体の表
現をグラフ構造にしています。それで、そもそも繋がっているデータの関係性を辿ったり、インデックシングしてさらに検索効率を上げていま
す。Neoj4のようなグラフデータベースでは、Cypherというクエリライクな言語が利用できます。グラフモデルのデータ表現力やデータ処理
のためのクエリの能力はとても優れいます。しかし、グラフデータモデルを単純集計や単純検索に使うのはナンセンスでしょう。なお、オンメ
モリエンジンが殆どのために、レコード各のノードやリレーションシップのデータサイズをコンパックする必要があります。
補足
18
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
補足
19
区分 リレーショナル KVS ワイドカラム ドキュメント グラフ
正規化 〇 ✖ ✖ ✖ ✖
スキーマフリー ✖ 〇 〇 〇 〇
インデックス 〇 ✖ △ 〇 〇
SQL/SQLライク 〇 ✖ 〇 〇 〇
ジョイン 〇 ✖ △(制約あり) △(制約あり) ◎(繋がっている)
トランザクション 〇 ✖ △(制約あり) 〇 〇
データモデル毎の主な特徴を表にして見ました。
どれを選ぶかは、ユースケース、性能、コストなどで総合判断します。
NoSQLで言う、インデックスやジョイン、トラザクションは、リレーションナルデータベースに比
べ、制約があったり、異なる意味だったりすることがあります。
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB EA(on premise)
20
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 21
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
概要
MongoDB Enterprise Advanced(EA、有償)は、Communitiy版にはないリッチな機能と、SLA付きの
MongoDBサポートが利用できます。
GUIの運用管理ツール(Ops Manager)やネットワークセキュリティ、データの暗号化、監査ログ、インメモリエンジン、
BI Connectorなどは、エンタープライズ企業が求める様々なニーズに応じて構成できます。
Ops ManagerによるMongoDBクラスターの構築・運用は、CLIによる操作ミスを回避し、オペレーションコストを9
割以上カットできます。
22
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB Serverは、非正規化モデルのデータ処理では、NoSQLのなかでも随一優れています。
• JSON風のデータモデル
• スキーマレス
• 柔軟なインデックスに支えられている高速クエリ
• 使いやすさや開発効率の高さ(JavaScript親和性)
• 高可用性(レプリケーション)/水平分散(シャーディング)
• GUIの管理ツール(Ops Manager)
• インメモリキャッシュー(インメモリデータベース)
• 暗号化/監査
• 24/365
MongoDB Enterprise Advanced(EA)
23
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
• レプリケーションセット(高可用性)
• シャーディングクラスタ―(スケールアウト)
マスター型のアーキテクチャ(実は、耐障害性に優れ、復旧が簡単)
24
P
S Sコピー
P
S S
P
S S
P
S S
分散 分散
01-10 11-20 21-30
01-10
01-10 01-10
指定インデックス(Partition Key)に従ってコレクションの中身を水平分散
・プライマリ
すべての書き込みのオペレーションが行われる
•セカンダリ
非同期でプライマリのレプリカーを保持
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
オートフェイルオーバ
• お互いを監視する
• プライマリが障害時には、セカンダリのなかから1台からプライマリを選出する。
25
votes:1
votes:1 votes:1
votes:1 votes:1
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
障害許容台数
26
総ノード数 障害許容台数 マジョリティ
1台 ー 1台
2台 ー 2台
3台 1台 2台
5台 2台 3台
7台 3台 4台
レプリケーションセットは必ず3台という事でもではない。
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Ops Managerは、MongoDBクラスターをGUIで構築・運用できる管理ツールである。
オペレーションコストを9割以上カットできる
Ops Manager
27
Replication Cluster
Backup&
Point in time Recovery
Monitoring&Alert
Sharding Cluster
Query Optimization
Roling Update
BI Connector
MongoDB Compass
Cluster reverse
Role Base User
Management
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 28
MongoDBクラスタ―のノード
Automaion Agent
Ops Manager Application
• Application DB ※
• Oplog DB ※
• Back Demon
Snatshot
MongoDB
※Application DBとOplog DBは、それぞれ、MongoDBです
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
ODBCドライバー経由。BIツール固有のクエリでMongoDBのデータ分析をサポートします。
• Tableau
• Excel
• MicroStrategy
• Microsoft Power BI
• その他
BI Connector
29
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
GUIクライアントツール。リモートのMongoDB(on premises、Atlas)と接続し、CRUD、スキーマビュー、パーティ
ションイッシューのビューなど、開発者にとても嬉しいツールです。
MongoDB Compass(EA Bundle)
30
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB Atlas(Cloud)
31
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 32
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB Atlasは、クラウドビック3(AWS,Azure,Google)上でMongoDBクラスターを利用できるPaaSサービ
スであり、データベースのみならず、データベースと統合された多様なサーバーレスのアプリケーション開発プラットフォー
ムサービスを提供しております。
つまり、Atlas上のMongoDBでデータを管理しながら、アプリケーションもAtlas上で開発・運用できるわけです。その
対象は、モバイルアプリ、チャート、IoTデータ処理、Mongo Mobile版(管理が要らない小さくでキュートな
MongoDB)、データレイクなど、顧客のニーズに密着した独自のサービスを展開しています。
概要
33
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB Atlasは、PaaSとしてスタートし、様々な開発フラットフォームを提供しています。
MongoDB Atlas
34
MongoDB StitchMongoDB Cluster
BI Connector
MongoDB Atlas Data
Lake
MongoDB Chart
Backup&
Point in time Recovery
Monitoring&Alert
Live Migration
MongoDB Mobile
MongoDB Compass
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
クラウドならでも、多様なタイプのクラスター構成が可能です。
• スタンダードクラスター
1リージョン内のレプリケーションクラスター、シャーディングクラスター
• クロスリージョンクラスター
レプリケーションセットを複数のリージョンに分散して配置(広域災害でもデータは残る)
• グロバルクラスター
レプリケーションセットは同リージョン内で構成し、シャードを複数のリージョンに分散配置(地域に密着したデータを提供)
MongoDB Atlasのクラスター
35
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
レプリケーションセントは、基本的に1リージョンをなかのAZにノードを分散して配置します。
レプリケーションセット(高可用性)
36
P S S
Node
P(Primary)
S(Secondary)
AZa AZb AZc
リージョン
レプリケーションセット
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
P S
S
シャードは、レプリケーションセット単位で構成します。
シャードキーは、インデックスから設定します。
シャーディングクラスター(高可用性+拡張性)
37
S
レプリケーシ
ョンセット
.
.
.
.
.
.
Node
P(Primary)
S(Secondary)
AZa AZb AZc
P S
M
o
n
g
o
s
A
p
p
l
i
c
a
t
i
o
n
1,2,3…
11,12,13
…
シャーキーで
データ分散
シャードP 21,22.23
…
23
23
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
リージョン間でレプリケーションセットのノードを分散して配置します。
• Electable nodes for high availability Region
高可用性のためにプライマリーノードの選出権を持つノード
奇数で3,5,7台構成し、複数のリージョンで構成可能
• Read-only nodes for optimal local reads(1台以上)
サービスを行うに地域に地理的に近いリージョンに配置
• Analytics nodes for workload isolation1台以上)
Read-only nodesと似ていますが、排他的に利用可能(BIツールとか)
クロスリージョンクラスター
38
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
ノードがリージョンで離れていますが、ワンレプリケーションセットです。
クロスリージョンクラスター
39
P S S
レプリケーションセット
Node
P(Primary)
S(Secondary)
Tokyo N.Virginia London
S S
Electable nodes Read-only nodes
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
リージョン間でシャードを分散するシャーディングクラスターです。
リージョンが離れていますが、ワンレプリケーションセットです。
グロバルクラスター
40
P
グロバル
シャーディングクラスター
mongos
Tokyo N.Virginia London
S S
P
S S
P
S S
ゾーン
Application
US
US
ドライバーはタグを見て
リージョンを振り振る
JP EU
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
グロバルクラスター
41
リージョン毎のシャード数は複数指定可能です(1-50)
タグ
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
VPC Peering
お客様のアプリケーションが配置されているクラウドプロバイダーのVPCとMongoDB AtalsのVPCの間でVPC
Peeringで繋がります。
42
お客様のVPC AtlasのVPC
VPC peering
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB Atlas上でモバイルアプリのバックエンドを開発・運用できるサーバレスプラットフォームサービスです。
Atalsでウィザード形式でStitchアプリケーションの定義を行って、JavaScript(Browser)やJava(Android)、Swift(iOS)のSDKで
バックエンドのプログラムを書きます。
バックエンドのプログラムは、Webアプリ又Android、iOSクライアントから
呼び出します。
詳細は、こちらを参照してください。
https://docs.mongodb.com/stitch/
MongoDB Stitch (有償)
43
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB Mobile (Stitchの料金に含まれる)
MongoDB Mobileは、Stitch SDKで操作できる内蔵型MongoDBです。
モバイル端末やIoTデバイスなどのエッジ側でデータを蓄積し、Stitch経由でAtlasと同期を取ります。
44
https://www.mongodb.com/products/mobile
32&64ビットのiOSとAndroidサポート
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB Atlasに統合されているチャートツールです。
MongoDB Atlas上にチャート化するデータをマッピングし、チャートをGUIで設定していきます。
表示は、チャートのクライアントツールにURIを埋め込む形で実現します(Stitchとの連携)
MongoDB Charts(有償)
45
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
• MongoDB Atlas Data Lake(Beta, 2019/7現在)
✓ S3のファイルに格納されているデータに対してMongoDB Queryを発行するサービス(AWSのAthenaのような機能)
• MongoDB Charts
✓ AtlasのMongoDBに格納されているデータからチャート作成するサービス
• MongoDB Connector for BI
✓ BIツールからのクエリをMongoDB Queryに変換して検索し、データを返還するときはBIツールのフォーマットにするサービス
• MongoDB Connector for Spark
ANALYTICS
46
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB EA vs Atlas
47
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
MongoDB AtlasとMongoDB EA
48
項目 MongoDB Atlas MongoDB EA
GUI 〇 〇(Ops Manager)
Standard Cluster(Replication Set) 〇 〇
Cross Region Cluster 〇 △
Global Cluster 〇 △
VPC Peering
Backup&Restore 〇 〇
Monitoring&Alert 〇 〇
Live Migration 〇 ✖
Stitch/Mobile/Charts/Trigger/Data Lake 〇 ✖
BI Connector 〇 〇
Security(Database/Network/LDAP/Encryption/
Auditing)
〇 〇
In Momery Storage Engine ✖ 〇
Kubernates △ △
Spark Connector ✖ 〇
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
以上、有難うございました。
不明点、MongoDBの導入に関する問い合わせは
https://www.creationline.com/contact
までにお願い致します。
49

MongoDB社の製品紹介 2019-MongoDB EA&Atlas

  • 1.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB社の製品紹介2019 MongoDB EA&Atlas 2019/09 クリエーションライン株式会社 C.LEE 1
  • 2.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 設立 • 2006年1月 現在、契約社員など含めて140人ぐらい 事業概要 • クラウドインテグレーション事業 • IoTビックデータソリューション事業 • DevOps関連サービス事業 クリエーションラインのホームページ • https://www.creationline.com クリエーションライン株式会社 2
  • 3.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 自己紹介 李 昌桓 (LEE CHANGHWAN,@awk256) データベースが大好きなサーバサイドのエンジニア。クリエーションライン社で、NoSQLを中核とした「ビックデータソリューシ ョンのアーキテクト」として活動している。 クリエーションライン www.creationline.com Neo4jユーザーグループ jp-neo4j-usersgroup.connpass.com ScyllaDBユーザーグループ scylladb-usergroup-jp.connpass.com [ブログ] www.creationline.com/lab www.qiita.com/aw256 [著書] 3
  • 4.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB社の製品紹介 4
  • 5.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 概要 MongoDB社は、従来のオンプレミス上のデータベース製品(MongoDB EA)を継続して展開しつつも、 MongoDB Atlasというクラウドサービスを積極的に展開しています。 • MongoDB Enterprise Advanced(on premise) • MongoDB Atlas(Cloud) 5
  • 6.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved • 2007年設立 • 本社は米国ニューヨーク • 100カ国以上で13,000社以上の導入実績 • 20カ国で1000人以上の従業員 • 60 million downloads • 100万以上のMongoDB University登録者 MongoDB社 6 看板製品は、MongoDB
  • 7.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 全てのタイプのデータベースランキングで、リレーショナルデータベース4強に次ぐ5位 7 https://db-engines.com/en/ranking
  • 8.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 同タイプのデータベースランキングでは、圧倒的な1位 8 https://db-engines.com/en/ranking/document+store
  • 9.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDBは、様々な業界、様々な用度で使われている 9
  • 10.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDBは、オンプレミスに留まらず、クラウドで大躍進! MongoDBエコ環境 10
  • 11.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved • MongoDB Community ✓ OSS版でもクラスターの構築・運用可、ロールベースのユーザ特権管理可 • MongoDB Enterprise Advanced(有償) ✓ オンプレミス向けの有償のサブスクリプション ✓ 24/365のサポート、運用管理ツール、ネットワークセキュリティー、 データ暗号化、監査ログ、インメモリエンジン、BIサポートなど • MongoDB Atlas(無償/有償) ✓ MongoDBクラスターの構築・運用のPaaSの域を超え、アプリケーション開発フラットフォームを提供へ MongoDB Editionの種類 11 https://www.mongodb.com/products/mongodb-enterprise-advanced
  • 12.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDBは、ドキュメントモデルのデータベース 12 リレーショナルデータベースでは、分析用のテーブルは正規化を崩し非正規 化して持つべきだと言っています。しかし、リレーションデータベースで非 正規化するには、そもそも、データモデル自体に限界があります。ドキュメ ントデータモデルは、非正規化テーブルを扱う事においては、どのタイプの データモデルよりも優れています。
  • 13.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved データベースのエリア 13 出典:RDB技術者のためのNoSQL ガイド,秀和システム,2016 Hadoop ・Apache Hadoop ・Cloudera ・MapR ・Hortonworks スループット重視 (レポーティング指向) ターンアラウンドタイプ重視 (オペレーション指向) RDB(OLAP, DWH) ・Oracle Exadata ・Teradata ・Netezza ・Redshift RDB(OLTP) ・Oracle ・SQL Server ・MySQL* ・PostgreSQL* グラフDB ・Neo4j ・Neptune ・Gremlin スケールアウトできない (*シャーディングでスケールアウト可) スケールアウトできる KVS ・Redies ・Memcache ワイドカラム ・Cassandra ドキュメント ・MongoDB ・Couchbase NoSQL
  • 14.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved データモデルのタイプ ドキュメント(JSON) グラフ 001:’aaa’ 002.’bbb’ 003:’ccc’ 001,title : “Amazo EC2” 001:price : 3000 001:Author : aaa 002:title : “Cassandra入門” 002:Price : “2000” { _id :001, title : “Amazo EC2”, price : 3000, author : { name : ‘aaa, address : ‘xxx’ } } writed データベースは何百種類もありますが、データモデルのタイプで分類してみると片手で数えるぐらいで す(リレーショナルモデルは敢えて載せてません)
  • 15.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved トキュメントモデルは、非正規化テーブルを完璧に実装できます。 • リレーショナルデータベースは、DWHエンジンでも、結局、ジョインだらけになります。 ドキュメントタイプのデータモデル 15 本テーブル -------------- 本ID タイトル 著者ID ページ 価格 … 著者テーブル ----------------- 著者ID 名前 年齢 電話番号 … RDBの 非正規化 モデルなら? { 本ID:” ”, タイトル:” ”, 著者 { 名前:” ”, 年齢:” ”, 電話番号:” ”, … }, ページ:” ” 価格:” ”, … } MongoDB RDBの 正規化モデル
  • 16.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 補足 • KVS データをキーとバリューのペアのシンプルな構造で扱います。一般にみる表形式のようなデータを扱うには向いていません。シンプルな構成 で、大規模のデータを分散して管理したり、高速検索ができます。とても、メッセージやり取りやキューイング、シンプルで型にも縛られない ために動画や音声、画像などにも用いられます。 • ワイドカラムモデル キーバリュー型の拡張で、1つのキーに対して複数のフィルドを持たせることができます。データは巨大ですが、比較的に簡単な分析軸し が持たないデータ処理に向いています。ワイドカラムモデルのデータベースは、効率的なデータ保存・検索のために、プライマリキーとパーテ ィションという戦略を用いています。通常、複数のキーで一意性を持たせて更新に対応し、一番目のキーでパーティションを作り、同パー ティーションのデータは、1カ所に集積することで保存・検索の効率を最適化します。 16
  • 17.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved • リレーショナルモデル 諸々、データ処理の汎用性という面では、依然として王者と言っても過言ではありません。しかし、2次元の表形式で非正規化を進める と、多次元的なデータが発生し、そのデータをどのように持つかの問題が発生します。結局、DWH用のスキーマでも、データを綺麗にした り、統合したりするほかは、ある意味、分析向けの正規化モデルになってしまい、本来目指したはずのジョインが発生しないスキーマとは、 程遠いものになってしまいます。現代ではデータ自体がとても複雑で正規化が困難だったり、真逆で単純過ぎて意味がなかったりするデ ータが現れ、伝統的なリレーショナルデータベースとは異なる手段が必要になって来ています。 • ドキュメントモデル 多数多様な分析軸を持つデータ処理に向いています。ドキュメントモデルは、ある意味、非正規化という側面でリレーショナルモデルの裏 返しのようなデータモデルです。多次元構造のデータをJSONやXML風の階層にネストすることによって、完璧に非正規化を実現します。 なお、その階層構造のデータに対してリレーショナルデータベース同様(B*Tree)のインデクシングが可能であり、宣言的なクエリーライク な言語が利用できます。 補足 17
  • 18.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved • グラフモデル グラフモデルは、なにかしらのネットワークの問題が潜んでいる処理に適用したほうが良いでしょう。 グラフデータベースは、データ自体の表 現をグラフ構造にしています。それで、そもそも繋がっているデータの関係性を辿ったり、インデックシングしてさらに検索効率を上げていま す。Neoj4のようなグラフデータベースでは、Cypherというクエリライクな言語が利用できます。グラフモデルのデータ表現力やデータ処理 のためのクエリの能力はとても優れいます。しかし、グラフデータモデルを単純集計や単純検索に使うのはナンセンスでしょう。なお、オンメ モリエンジンが殆どのために、レコード各のノードやリレーションシップのデータサイズをコンパックする必要があります。 補足 18
  • 19.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 補足 19 区分 リレーショナル KVS ワイドカラム ドキュメント グラフ 正規化 〇 ✖ ✖ ✖ ✖ スキーマフリー ✖ 〇 〇 〇 〇 インデックス 〇 ✖ △ 〇 〇 SQL/SQLライク 〇 ✖ 〇 〇 〇 ジョイン 〇 ✖ △(制約あり) △(制約あり) ◎(繋がっている) トランザクション 〇 ✖ △(制約あり) 〇 〇 データモデル毎の主な特徴を表にして見ました。 どれを選ぶかは、ユースケース、性能、コストなどで総合判断します。 NoSQLで言う、インデックスやジョイン、トラザクションは、リレーションナルデータベースに比 べ、制約があったり、異なる意味だったりすることがあります。
  • 20.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB EA(on premise) 20
  • 21.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 21
  • 22.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 概要 MongoDB Enterprise Advanced(EA、有償)は、Communitiy版にはないリッチな機能と、SLA付きの MongoDBサポートが利用できます。 GUIの運用管理ツール(Ops Manager)やネットワークセキュリティ、データの暗号化、監査ログ、インメモリエンジン、 BI Connectorなどは、エンタープライズ企業が求める様々なニーズに応じて構成できます。 Ops ManagerによるMongoDBクラスターの構築・運用は、CLIによる操作ミスを回避し、オペレーションコストを9 割以上カットできます。 22
  • 23.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB Serverは、非正規化モデルのデータ処理では、NoSQLのなかでも随一優れています。 • JSON風のデータモデル • スキーマレス • 柔軟なインデックスに支えられている高速クエリ • 使いやすさや開発効率の高さ(JavaScript親和性) • 高可用性(レプリケーション)/水平分散(シャーディング) • GUIの管理ツール(Ops Manager) • インメモリキャッシュー(インメモリデータベース) • 暗号化/監査 • 24/365 MongoDB Enterprise Advanced(EA) 23
  • 24.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved • レプリケーションセット(高可用性) • シャーディングクラスタ―(スケールアウト) マスター型のアーキテクチャ(実は、耐障害性に優れ、復旧が簡単) 24 P S Sコピー P S S P S S P S S 分散 分散 01-10 11-20 21-30 01-10 01-10 01-10 指定インデックス(Partition Key)に従ってコレクションの中身を水平分散 ・プライマリ すべての書き込みのオペレーションが行われる •セカンダリ 非同期でプライマリのレプリカーを保持
  • 25.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved オートフェイルオーバ • お互いを監視する • プライマリが障害時には、セカンダリのなかから1台からプライマリを選出する。 25 votes:1 votes:1 votes:1 votes:1 votes:1
  • 26.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 障害許容台数 26 総ノード数 障害許容台数 マジョリティ 1台 ー 1台 2台 ー 2台 3台 1台 2台 5台 2台 3台 7台 3台 4台 レプリケーションセットは必ず3台という事でもではない。
  • 27.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved Ops Managerは、MongoDBクラスターをGUIで構築・運用できる管理ツールである。 オペレーションコストを9割以上カットできる Ops Manager 27 Replication Cluster Backup& Point in time Recovery Monitoring&Alert Sharding Cluster Query Optimization Roling Update BI Connector MongoDB Compass Cluster reverse Role Base User Management
  • 28.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 28 MongoDBクラスタ―のノード Automaion Agent Ops Manager Application • Application DB ※ • Oplog DB ※ • Back Demon Snatshot MongoDB ※Application DBとOplog DBは、それぞれ、MongoDBです
  • 29.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved ODBCドライバー経由。BIツール固有のクエリでMongoDBのデータ分析をサポートします。 • Tableau • Excel • MicroStrategy • Microsoft Power BI • その他 BI Connector 29
  • 30.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved GUIクライアントツール。リモートのMongoDB(on premises、Atlas)と接続し、CRUD、スキーマビュー、パーティ ションイッシューのビューなど、開発者にとても嬉しいツールです。 MongoDB Compass(EA Bundle) 30
  • 31.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB Atlas(Cloud) 31
  • 32.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 32
  • 33.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB Atlasは、クラウドビック3(AWS,Azure,Google)上でMongoDBクラスターを利用できるPaaSサービ スであり、データベースのみならず、データベースと統合された多様なサーバーレスのアプリケーション開発プラットフォー ムサービスを提供しております。 つまり、Atlas上のMongoDBでデータを管理しながら、アプリケーションもAtlas上で開発・運用できるわけです。その 対象は、モバイルアプリ、チャート、IoTデータ処理、Mongo Mobile版(管理が要らない小さくでキュートな MongoDB)、データレイクなど、顧客のニーズに密着した独自のサービスを展開しています。 概要 33
  • 34.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB Atlasは、PaaSとしてスタートし、様々な開発フラットフォームを提供しています。 MongoDB Atlas 34 MongoDB StitchMongoDB Cluster BI Connector MongoDB Atlas Data Lake MongoDB Chart Backup& Point in time Recovery Monitoring&Alert Live Migration MongoDB Mobile MongoDB Compass
  • 35.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved クラウドならでも、多様なタイプのクラスター構成が可能です。 • スタンダードクラスター 1リージョン内のレプリケーションクラスター、シャーディングクラスター • クロスリージョンクラスター レプリケーションセットを複数のリージョンに分散して配置(広域災害でもデータは残る) • グロバルクラスター レプリケーションセットは同リージョン内で構成し、シャードを複数のリージョンに分散配置(地域に密着したデータを提供) MongoDB Atlasのクラスター 35
  • 36.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved レプリケーションセントは、基本的に1リージョンをなかのAZにノードを分散して配置します。 レプリケーションセット(高可用性) 36 P S S Node P(Primary) S(Secondary) AZa AZb AZc リージョン レプリケーションセット
  • 37.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved P S S シャードは、レプリケーションセット単位で構成します。 シャードキーは、インデックスから設定します。 シャーディングクラスター(高可用性+拡張性) 37 S レプリケーシ ョンセット . . . . . . Node P(Primary) S(Secondary) AZa AZb AZc P S M o n g o s A p p l i c a t i o n 1,2,3… 11,12,13 … シャーキーで データ分散 シャードP 21,22.23 … 23 23
  • 38.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved リージョン間でレプリケーションセットのノードを分散して配置します。 • Electable nodes for high availability Region 高可用性のためにプライマリーノードの選出権を持つノード 奇数で3,5,7台構成し、複数のリージョンで構成可能 • Read-only nodes for optimal local reads(1台以上) サービスを行うに地域に地理的に近いリージョンに配置 • Analytics nodes for workload isolation1台以上) Read-only nodesと似ていますが、排他的に利用可能(BIツールとか) クロスリージョンクラスター 38
  • 39.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved ノードがリージョンで離れていますが、ワンレプリケーションセットです。 クロスリージョンクラスター 39 P S S レプリケーションセット Node P(Primary) S(Secondary) Tokyo N.Virginia London S S Electable nodes Read-only nodes
  • 40.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved リージョン間でシャードを分散するシャーディングクラスターです。 リージョンが離れていますが、ワンレプリケーションセットです。 グロバルクラスター 40 P グロバル シャーディングクラスター mongos Tokyo N.Virginia London S S P S S P S S ゾーン Application US US ドライバーはタグを見て リージョンを振り振る JP EU
  • 41.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved グロバルクラスター 41 リージョン毎のシャード数は複数指定可能です(1-50) タグ
  • 42.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved VPC Peering お客様のアプリケーションが配置されているクラウドプロバイダーのVPCとMongoDB AtalsのVPCの間でVPC Peeringで繋がります。 42 お客様のVPC AtlasのVPC VPC peering
  • 43.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB Atlas上でモバイルアプリのバックエンドを開発・運用できるサーバレスプラットフォームサービスです。 Atalsでウィザード形式でStitchアプリケーションの定義を行って、JavaScript(Browser)やJava(Android)、Swift(iOS)のSDKで バックエンドのプログラムを書きます。 バックエンドのプログラムは、Webアプリ又Android、iOSクライアントから 呼び出します。 詳細は、こちらを参照してください。 https://docs.mongodb.com/stitch/ MongoDB Stitch (有償) 43
  • 44.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB Mobile (Stitchの料金に含まれる) MongoDB Mobileは、Stitch SDKで操作できる内蔵型MongoDBです。 モバイル端末やIoTデバイスなどのエッジ側でデータを蓄積し、Stitch経由でAtlasと同期を取ります。 44 https://www.mongodb.com/products/mobile 32&64ビットのiOSとAndroidサポート
  • 45.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB Atlasに統合されているチャートツールです。 MongoDB Atlas上にチャート化するデータをマッピングし、チャートをGUIで設定していきます。 表示は、チャートのクライアントツールにURIを埋め込む形で実現します(Stitchとの連携) MongoDB Charts(有償) 45
  • 46.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved • MongoDB Atlas Data Lake(Beta, 2019/7現在) ✓ S3のファイルに格納されているデータに対してMongoDB Queryを発行するサービス(AWSのAthenaのような機能) • MongoDB Charts ✓ AtlasのMongoDBに格納されているデータからチャート作成するサービス • MongoDB Connector for BI ✓ BIツールからのクエリをMongoDB Queryに変換して検索し、データを返還するときはBIツールのフォーマットにするサービス • MongoDB Connector for Spark ANALYTICS 46
  • 47.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB EA vs Atlas 47
  • 48.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved MongoDB AtlasとMongoDB EA 48 項目 MongoDB Atlas MongoDB EA GUI 〇 〇(Ops Manager) Standard Cluster(Replication Set) 〇 〇 Cross Region Cluster 〇 △ Global Cluster 〇 △ VPC Peering Backup&Restore 〇 〇 Monitoring&Alert 〇 〇 Live Migration 〇 ✖ Stitch/Mobile/Charts/Trigger/Data Lake 〇 ✖ BI Connector 〇 〇 Security(Database/Network/LDAP/Encryption/ Auditing) 〇 〇 In Momery Storage Engine ✖ 〇 Kubernates △ △ Spark Connector ✖ 〇
  • 49.
    Copyright ⓒ2019 CREATIONLINE,INC. All Rights Reserved 以上、有難うございました。 不明点、MongoDBの導入に関する問い合わせは https://www.creationline.com/contact までにお願い致します。 49