Chapter 24 NOSQL Databases and Big Data Storage

Chapter 24 NOSQL Databases and Big Data Storage Systems 160819 shu 1

Outline ü Introduction ü The to NOSQL Systems CAP Theorem ü Document-Based ü NOSQL Key-Value Stores ü Column-Based ü NOSQL Systems and Mongo. DB or Wide Column NOSQL Systems Graph Database and Neo 4 j ü Summary 2

Outline ü Introduction ü The to NOSQL Systems CAP Theorem ü Document-Based ü NOSQL Key-Value Stores ü Column-Based ü NOSQL Systems and Mongo. DB or Wide Column NOSQL Systems Graph Database and Neo 4 j ü Summary 3


Emergence of NOSQL Systems ü 各社独自のNOSQLシステム üGoogle – Big. Table(Gmail, Google Maps, Webサイトデータ) üAmazon – Dynamo. DB(AWSで利用可) üFacebook – Cassandra(オープンソースシステム) üMongo. DB, Couch. DB→document basedシステム üNeo 4 j, Graph. Base→graph basedシステム ü→後述 üOrient. DB(上記の複合) üオブジェクトモデル(12章)、XMLモデル(13章) 5




Characteristics of NOSQL Systems ü <データモデル、クエリ言語に関する特徴> 1. Not Requiring a Schema:スキーマを必要としない。制約は 自分でプログラミングする必要がある。 2. Less Powerful Query Languages:NOSQLシステムは API(Application Programming Interface)を提供し、それを利 用してCRUD(SCRUD)操作が出来る。(Search, Create, Read, Update, Delete) 3. Versioning:タイムスタンプを用いてバージョン管理が出来 る(後述)。 9


Categories of NOSQL Systems 5. Hybrid NOSQL systems: 1〜 4の 2つ以上の組み合わせ 6. Object databases:第 12章で述べたシステム 7. XML databases:第 13章で述べたシステム 11

Outline ü Introduction ü The to NOSQL Systems CAP Theorem ü Document-Based ü NOSQL Key-Value Stores ü Column-Based ü NOSQL Systems and Mongo. DB or Wide Column NOSQL Systems Graph Database and Neo 4 j ü Summary 12


Outline ü Introduction ü The to NOSQL Systems CAP Theorem ü Document-Based ü NOSQL Key-Value Stores ü Column-Based ü NOSQL Systems and Mongo. DB or Wide Column NOSQL Systems Graph Database and Neo 4 j ü Summary 14


Mongo. DB Data Model ü BSON(Binary JSON)型で保存。 ü <DB作成> ü db. create. Collection(“project”, { capped : true, size : 1310720, max : 500 } ) ü 第一引数でcollection名、第二引数でオプション ücapped:上限の有無 üsize:最大容量 ümax:最大document数 16


Mongo. DB Data Model ü Project collection内にWorker情報があるが、Workerの中身 はWorker Collectionに記述してある。 18


Mongo. DB CRUD Operations ü <insert> ü db. <collection_name>. insert(<document(s)>) ü <read> ü db. <collection_name>. find(<condition>) ü <update> ü db. <collection_name>. update(<condition>) , {$set: {<value>}} ü <delete> ü db. <collection_name>. remove(<condition>) 20


Mongo. DB Distributed Systems Characteristics ü read preference: 2つのオプション üdefault read preference:読み込みもprimaryのみで、secondary は障害時の保証のためのみに存在。 üread requests can be processed at any replica:読み込みは Secondaryからでも構わない。パフォーマンスの向上。ただし Secondaryのデータが常に最新のものであるとは限らない。 22



Outline ü Introduction ü The to NOSQL Systems CAP Theorem ü Document-Based ü NOSQL Key-Value Stores ü Column-Based ü NOSQL Systems and Mongo. DB or Wide Column NOSQL Systems Graph Database and Neo 4 j ü Summary 25





Voldemort Key-Value Distributed Data Store ü Consistent hashing for distributing (k, v) pairs: ü A〜Cの 3つのノードがあり、Cだけ容量が多い場合: ü h(k)を計算し、Range 1の範囲内ならA, Range 2ならBとい うように分散して保存する。 30



Examples of Other Key-Value Stores ü Oracle key-value store. üRDBMSの他にOracle No. SQL Databaseを持っている ü Redis key-value cache and store. ü性能向上のためにメインメモリ上にキャッシュする ümaster-slave replication ü Apache Cassandra. ücolumn basedシステムにも分類でき、key-valueシステムにも 分類できるシステム üFacebookが採用している 33

Outline ü Introduction ü The to NOSQL Systems CAP Theorem ü Document-Based ü NOSQL Key-Value Stores ü Column-Based ü NOSQL Systems and Mongo. DB or Wide Column NOSQL Systems Graph Database and Neo 4 j ü Summary 34

Column-Based or Wide Column NOSQL Systems ü Google - Big. Table(Google File System, GFSを利用) – Apache Hbase(Hadoop Distributed File System(HDFS)やAmazonのSimple Strage System(S 3)を利 用) ü オープンソース ü Cassandra ü などが代表例 ü key-valueとの違いは、keyが多次元で、様々な要素を持っ ていることである。 35


Hbase Data Model and Versioning 37

Hbase CRUD Operations ü Creating a table: create <tablename>, <column family>, . . . üカラム名は必要無い ü Inserting Data: put <tablename>, <rowid>, <column family>: <column qualifier>, <value> ü Reading Data (all data in a table): scan <tablename> üテーブルから全部取り出す ü Retrieve Data (one item): get <tablename>, <rowid> ü特定の行のみ 38

Hbase Storage and Distributed System Concepts ü MasterサーバーはRegionサーバーを監視したり、テーブル をregionに分けたりしている。 39

Outline ü Introduction ü The to NOSQL Systems CAP Theorem ü Document-Based ü NOSQL Key-Value Stores ü Column-Based ü NOSQL Systems and Mongo. DB or Wide Column NOSQL Systems Graph Database and Neo 4 j ü Summary 40


Neo 4 j Data Model 42

Neo 4 j Data Model 43


The Cypher Query Language of Neo 4 j • Cypher:Neo 4 jにおける高レベルのクエリ言語 45

The Cypher Query Language of Neo 4 j 46


Outline ü Introduction ü The to NOSQL Systems CAP Theorem ü Document-Based ü NOSQL Key-Value Stores ü Column-Based ü NOSQL Systems and Mongo. DB or Wide Column NOSQL Systems Graph Database and Neo 4 j ü Summary 48

- Slides: 49