Skip to main content
®
©  2015  MapR  Technologies 1
®
©  2015  MapR  Technologies
RDBだけではない!
事例から見るNoSQLの使い方
マップアール・テクノロジーズ株式会社
セールスエンジニア
梅川 真人
2015/6/11
®
©  2015  MapR  Technologies 2
アジェンダ
• NoSQL  とは
• MapR-­DB  の特徴
• Use  Case  #1  世界最大のバイオメトリクスデータベース
• Use  Case  #2  サービス品質分析基盤
• MapR-­DB  5.0  の新機能
®
©  2015  MapR  Technologies 3
NoSQL
• No  SQL
• Not  Only  SQL
• NoSQL  データベースは RDB  を補完するもの
• RDB  とは異なる特性を持っているため、適材適所で利用すべき
®
©  2015  MapR  Technologies 4
Web  アプリケーションの進化
Web  1.0
Web  2.0
メモリ
ディスク
ランダムIO
Write
Read
Write
Read
Write
Read
memcached
Coherence
RDBMS
ディスク
シーケンシャルIO
RDBMS
メモリ
テーブル
書き込みログ・
テーブルファイル
BigData
時代の
Webアプリ
アクセス速度
®
©  2015  MapR  Technologies 5
NoSQL  の特徴
• スキーマが固定されていない
• 関係モデルの結合操作を利用しない(Joinがない)
• 高いスケーラビリティ(リニアな性能向上)
• トランザクションがない(例外はある)
• SQL  と比較してシンプルなデータ操作API
®
©  2015  MapR  Technologies 6
NoSQL  の系譜
Google
FileSystem
Google
MapReduce
Google  BigTable
Apache  Hadoop
HyperTable
Apache  HBase
Facebook
Cassandra
Amazon  S3
Amazon  Dynamo
Amazon  SimpleDB
LinkedIn
Voldemort
®
©  2015  MapR  Technologies 7
NoSQL  での分散方式
• コンシステントハッシング
– Dynamo,  Cassandra
– キーのハッシュ値をもとに、
データを各ノードに分散
• レンジパーティション
– BigTable,  HBase
– キーのレンジ、もしくは
カラムのレンジで
データベースを分散
®
©  2015  MapR  Technologies 8
NoSQL  で典型的な書き込み方式
DISK
MEMORY
書き込み
読み込み
コミットログ
メモリテーブル
ファイル
一定サイズになったら
ディスクに永続化
®
©  2015  MapR  Technologies 9
NoSQL  と RDBMS  におけるインデックス方式の比較
• LSM  (Log  Structured  Merge)  Tree
– NoSQL  でよく使われるインデックス構造
– メモリ上のデータ構造を効率よくシーケンシャルディスク IO  に変換する
– 時間の経過とともに Read  性能が落ちてくるためコンパクション(データファイ
ルの再構築)が必要になり、その際高い IO  負荷がかかる
– Write  が低遅延で安定する一方、Read   性能の振れ幅が大きい
• B+Tree
– RDBMS  で使われるインデックス構造
– Write  に高いコスト(処理時間,  IO負荷)がかかる一方、Read   が非常に早い
®
©  2015  MapR  Technologies 10©  2015  MapR  Technologies
MapR-­DB
(MapR  Enterprise  Database  Edition)
®
©  2015  MapR  Technologies 11
HBase  アーキテクチャが優れている点
• 強い一貫性モデル
– 書き込み完了後、すべての読み出しは同じ値になることを保証
– 他のNoSQLの「Eventually  Consistent」は、実際にはときどき「Eventually  
Inconsistent」に
• 効率の良いスキャン
– ブロードキャストを行わない
– Ring  ベースの NoSQL  データベース (例:  Cassandra,  Riak)  はスキャンが大変
• 自動的にスケール
– Regionが大きくなると自動で分割される
– データ分散や格納スペースの管理に HDFS  を利用
• Hadoop  との連携
– HBase のデータをMapReduce で直接処理できる
®
©  2015  MapR  Technologies 12
HBase テーブルアーキテクチャ
• テーブルは Key  範囲で分割される (Region)
• Region  は各ノードが管理 (RegionServer)
• カラムはアクセスグループに分割される(カラムファミリー)
CF1 CF2 CF3 CF4 CF5
R1
R2
R3
R4
®
©  2015  MapR  Technologies 13
先進ユーザの課題
• ビジネス上の課題
– ユースケースの増加:   不正検知、
レコメンデーション、レポーティング
– 既存のRDBMSを基盤としたアー
キテクチャの拡張ではコストに見合
わない
– 応答性が悪い:  リアルタイムの異
常検知や、インタラクティブ/大規模
/SaaSベースのデータ配信
• 技術的な課題
– RDBMSテクノロジの性能・ス
ケーラビリティの限界
– 既存の NoSQL  データベースが
技術的にフィットする領域は意
外に少ない
• 性能、データ一貫性、運用管理
– クラスタを分離することの弊害
• ネットワークトラフィック
• 最新のデータが利用できない
• 複雑さが原因の障害リスク
• データの二重持ち
®
©  2015  MapR  Technologies 14
MapR-­DB
• MapR  Enterprise  Database  Edition  (旧 MapR  M7  Edition)  に含ま
れる、HBase  API  互換の NoSQL  データベース
– 以前は「MapR  M7  テーブル」とも呼ばれていた
– HBase  のアプリケーションをそのまま実行することが可能
®
©  2015  MapR  Technologies 15
MapR-­DB  の特徴
1. 分析とオペレーションを統合できる単一プラットフォーム
2. エンタープライズグレードの運用管理
3. 高い性能、スケーラビリティ
4. コンパクションの単位が細かいのでコンパクションの影響が少ない
5. インデックスの方式(LSM-­Tree  と B+Treeのいいとこどり)
6. ファイルシステムと統合する事でリージョンサーバ・マスターサーバが
不要に
®
©  2015  MapR  Technologies 16
MapR-­DB:    レイヤーを削除してシンプルに
Disks
MapR
JVM
HBase
Disks
ext3
JVM
HDFS
JVM
HBase
Apache ベース
のディストリビューション
Disks
Unified
®
©  2015  MapR  Technologies 17
ファイルとテーブルの管理理を統合
$  pwd
/mapr/default/user/dave
$  ls
file1    file2    table1    table2
$  hbase shell
hbase(main):003:0>  create  '/user/dave/table3',  'cf1',  'cf2',  'cf3'
0  row(s)  in  0.1570  seconds
$  ls
file1    file2    table1    table2    table3
$  hadoop fs  -­‐ls /user/dave
Found  5  items
-­‐rw-­‐r-­‐-­‐r-­‐-­‐ 3  mapr mapr 16  2012-­‐09-­‐28  08:34  /user/dave/file1
-­‐rw-­‐r-­‐-­‐r-­‐-­‐ 3  mapr mapr 22  2012-­‐09-­‐28  08:34  /user/dave/file2
trwxr-­‐xr-­‐x      3  mapr mapr 2  2012-­‐09-­‐28  08:32  /user/dave/table1
trwxr-­‐xr-­‐x      3  mapr mapr 2  2012-­‐09-­‐28  08:33  /user/dave/table2
trwxr-­‐xr-­‐x      3  mapr mapr 2  2012-­‐09-­‐28  08:38  /user/dave/table3
®
©  2015  MapR  Technologies 18
HBase vs  M7  レイテンシ性能の⽐比較
®
©  2015  MapR  Technologies 19
HBase  と MapR-­DB
MapR-­DB HBase
CAP CP CP
データ分散 シャーディング シャーディング
データモデル 列指向 列指向
ストレージ MicroWAL+MapRコンテナ WAL+MemStore+HFile
コンパクションによる停止 なし あり(影響大)
単一障害点 なし なし
ロック単位 行 行
最大テーブル数 無制限 100
最大カラムファミリ数 64 3程度
ノード障害時のアクセス 瞬時に別ノードに切り替え 別ノードに移動するまで待ち
®
©  2015  MapR  Technologies 20©  2015  MapR  Technologies
Use  Case  #1
世界最大のバイオメトリクスデータベース
®
©  2015  MapR  Technologies 21
Aadhaar
PEOPLE
20 BILLION
BIOMETRICS
®
©  2015  MapR  Technologies 22
Aadhaar とは
• インド国民のためのマイナンバー制度
• 指紋、網膜スキャン、顔画像を登録
• 1日あたり約2000万のバイオメトリク情報が登録される。(160万人 x  
12バイオメトリクス)
• 8箇所のデータセンターに分散
• 高いパフォーマンス要件
• 絶対にデータは失ってはならない
• 2015年現在で約6億人が登録
®
©  2015  MapR  Technologies 23
Aadhaar システムゴール
• 全ての住民にIDを付与する
– 重複は許されないためバイオメトリクス情報を採用
• 登録
– 複数のバイオメトリクス情報(指紋,   網膜)
– 12桁のユニークな Aadhaar number  が割り当てられる
• 認証
– 本人確認
– 認証は速くなければならない
(数百万の同時検索をサポートしながら、100ミリ秒のレイテンシを満たす)
• 非同期レプリケーション
– 複数のデータセンタをまたがり、HBase上のデータを更新
Template  Tables Audit  Tables
Auth,  
BFD,  OTP
Auth  Data  
Server
FMS,  Portals
Template  Tables Audit  Tables
Auth,  
BFD,  OTP
FMS,  Portals
B
Data  
Center
A
Data
Center
Read
Read
Write
Write
Read
Read Write
S
y
n
c
S
y
n
c
Aadhaar システムアーキテクチャ概要
®
©  2015  MapR  Technologies 25
Apache  Hadoopでは満たせなかった機能
• データセンター間でレプリケーションをするとデータに矛盾が生じた
• Hadoop  クラスタのレスポンスが遅いことに加え、Tasktracker が頻繁
にブラックリストに登録された
• DR運用に課題があった
• リージョンサーバが良く落ちた
• 高い可用性要求を NameNode と JobTracker が満たせなかった
• 簡単なアップグレードの手法が必要だった
• 管理のオーバーヘッドを最小限にする必要があった。
(ノード管理やミラーリング、スナップショット)
®
©  2015  MapR  Technologies 26©  2015  MapR  Technologies
Use  Case  #2
サービス品質分析基盤
®
©  2015  MapR  Technologies 27
サービス品質分析基盤
要求
・ 1日に数TBのデータがインサートに対応
・ 1秒間に数百万件のデータインサートに対応
・ 1クエリ辺り200ms以内に検索に対応
課題
・ RDB  のライセンスが高価(1CPU数百万)
・ スケーラビリティ
・ 1秒間に数百万件のインサートへの対応
®
©  2015  MapR  Technologies 28
RDB 利利⽤用時の構成
RDB
データ収集/集約/ETL データ蓄積 データ検索索
照会対応
呼情報検索索
位置情報分析
収集
収集
集約
/ETL
FTP
FTP
®
©  2015  MapR  Technologies 29
MapR-‐‑‒DB  利利⽤用時の構成
データ収集 データ蓄積 データ検索索
照会対応
呼情報検索索
位置情報分析
収集
収集
MapR−DB
• ユーザプロファイル・ステータス
• ユーザのインタラクション
• リアルタイム位置情報
• Web  およびモバイルセッション
・ MapR-­DB  を使う事でETLが不要に
・ 高いスケーラビリティ
・ 安定した高い書き込み性能(1秒間に数百万件のインサートへの対応)
FTP
FTP NFS
NFS
®
©  2015  MapR  Technologies 30©  2015  MapR  Technologies
MapR-­DB  5.0の新機能
®
©  2015  MapR  Technologies 31
Elasticsearch にリアルタイムでインデクシング
アプリケーション
ストリーミン
グ
(Storm,  Spark  
Streaming)
アドホック
(Drill,  Impala,   Presto,  ...)
MapR Data  Platform
DISTRIBUTION INCLUDING HADOOP
MapR-­DB
クリックスト
リーム
バッチ
(MR,  Spark,  Hive,  Pig,  …)
WEB
リアルタイム
レコメンド
データソース
MapR-­FS
顧客トランザ
クション
購買情報
コールセンター
顧客サポート
Data  Access
可視化
分析
分析
®
©  2015  MapR  Technologies 32
Traditional  vs.  Real-­Time  Search  Indexing
Traditional   NoSQL  
Applications
HBase  API Elasticsearch  API
HBase Elasticsearch
Batch
indexing
HBase  API
MapR-­DB
Updates
Real-­time
indexing
Updates Searches
MapR-­DB/Elasticsearch をリアルタイムにイン
デックスを生成
• データの更新はデータストアと検索インデック
スの整合性を保証
• インデックス作成に追加開発の必要はない
HBase/Elasticsearch はバッチ処理でインデック
スを生成
• ユーザはデータを探すまでに遅延が発生する
• インデックス作成には追加開発が必要
Real-­Time   NoSQL  
Applications
®
©  2015  MapR  Technologies 33
データ分析基盤
MapRがデータ分析基盤を最適化
データソース
販売・顧客系
データ
自動販売機、
配送経路
データ
LOG  FILES,  
CLICKSTREAMS
SENSORS
BLOGS,  
TWEETS,
SNS
DATA  WAREHOUSE
Data  Movement
Data  Access
検索
スキーマレス
データ探索
BI,  BA
Ad-­hoc  integrated  
analytics
ETL  /  統合
Recommendation
不正検知
(Fraud  Detection)
物流最適化
機械学習
MAPR  DISTRIBUTION  FOR  HADOOP
ストリーム
(Spark  Streaming,  
Storm)
MapR  Data  Platform
MapR-­DB
MAPR  DISTRIBUTION  FOR  HADOOP
バッチ
(MapReduce,  
Spark,  Hive,  Pig)
MapR-­FS
アドホック
(Drill,  
Impala)
業務アプリケーション
分析
®
©  2015  MapR  Technologies 34
まとめ:MapR-­DB  が真価を発揮する利用シーン
3.  将来の性能増強やビジネスの変化に柔軟に対応したい
2.  リアルタイム要件のあるアプリ・時系列データなど複数の用途
1.  HBase 運用をシンプルにしたい
®
©  2015  MapR  Technologies 35
©  MapR  Technologies ®
ご静聴ありがとうございました