Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
Insight Technology, Inc.
20140418 info talkセミナー資料
Takahiro Iwase
RDB開発者のためのApache Cassandra データモデリング入門
Yuki Morishita
事例で学ぶApache Cassandra
Yuki Morishita
Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)
Amazon Web Services Japan
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
MapR Technologies Japan
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
Insight Technology, Inc.
DB Tech showcase Tokyo 2015 Works Applications
2t3
1
of
31
Top clipped slide
NoSQLに関するまとめ
Jun. 18, 2013
•
0 likes
35 likes
×
Be the first to like this
Show More
•
26,272 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Gosuke Miyashita
Follow
Software Engineer
Advertisement
Advertisement
Advertisement
Recommended
qpstudy 2013.07 NoSQL
Akihiro Okuno
29K views
•
34 slides
PHP開発者のためのNoSQL入門
じゅん なかざ
6.3K views
•
66 slides
About NoSQL
hideaki honda
3K views
•
20 slides
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
59.5K views
•
45 slides
Cassandraとh baseの比較して入門するno sql
Yutuki r
23.4K views
•
67 slides
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
kishimotosc
8.5K views
•
26 slides
More Related Content
Slideshows for you
(20)
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
Insight Technology, Inc.
•
1.6K views
20140418 info talkセミナー資料
Takahiro Iwase
•
15.3K views
RDB開発者のためのApache Cassandra データモデリング入門
Yuki Morishita
•
7.3K views
事例で学ぶApache Cassandra
Yuki Morishita
•
6K views
Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)
Amazon Web Services Japan
•
8K views
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
MapR Technologies Japan
•
18.7K views
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
Insight Technology, Inc.
•
7.8K views
DB Tech showcase Tokyo 2015 Works Applications
2t3
•
8.5K views
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
kishimotosc
•
2.5K views
Datastax Enterpriseをはじめよう
Yuki Morishita
•
3K views
サンプルで学ぶCassandraアプリケーションの作り方
Yuki Morishita
•
2.4K views
Cassandra Meetup Tokyo, 2016 Spring
datastaxjp
•
1.1K views
SparkとCassandraの美味しい関係
datastaxjp
•
8.9K views
Cassandra(no sql)によるシステム提案と開発
kishimotosc
•
2.2K views
DynamoDBを導入した話
dcubeio
•
10.8K views
Webアプリケーションから見たCassandra
2t3
•
3.9K views
Cassandra Summit Tokyo 2015 - intra-mart
Akihiro Sei
•
3K views
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Colin Charles
•
1.2K views
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
•
70.6K views
Couchbase introduction-20150611
Couchbase Japan KK
•
6.9K views
Similar to NoSQLに関するまとめ
(20)
Not only sql _ 新卒エンジニア勉強会20130417
エンジニア勉強会 エスキュービズム
•
1.4K views
Nosql
uenno
•
396 views
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
Mikiya Okuno
•
37.5K views
先端技術 No sql
聡 中川
•
686 views
初めてのMongo db
Ryuji Tamagawa
•
2.7K views
AWS初心者向けWebinar AWSでのNoSQLの活用
Amazon Web Services Japan
•
13.8K views
初心者向け負荷軽減のはなし
Oonishi Takaaki
•
11.5K views
RDBってなに?
Soudai Sone
•
1.4K views
awsを学ぶ上で必要となる前提知識(DB)
聡 大久保
•
1.2K views
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
Shinya Sugiyama
•
6.1K views
初めてのSQL
nasa9084
•
613 views
PHPで大規模ブラウザゲームを開発してわかったこと
Kentaro Matsui
•
138K views
20221117_クラウドネイティブ向けYugabyteDB活用シナリオ
Masaki Yamakawa
•
66 views
Amazon Aurora Deep Dive (db tech showcase 2016)
Amazon Web Services Japan
•
2.7K views
Mongo dbを知ろう devlove関西
Ryuji Tamagawa
•
2.5K views
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
•
47.3K views
Sql world を支える技術
Oda Shinsuke
•
628 views
ComSys WIP
Shunsuke Nakamura
•
908 views
Nosqlの基礎知識(2013年7月講義資料)
CLOUDIAN KK
•
22.8K views
これからはNo sqlの時代って本当ですか
yumi_chappy
•
847 views
Advertisement
More from Gosuke Miyashita
(20)
Walter ファミリーの紹介 at Shibuya.go#1
Gosuke Miyashita
•
5.2K views
Serverspec at Testing Framework Meeting
Gosuke Miyashita
•
6.6K views
Serverspec at July Tech Festa 2013
Gosuke Miyashita
•
5.7K views
Serverspec at hbstudy #45
Gosuke Miyashita
•
13.1K views
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
•
15.2K views
Maglica - A Simple Internal Cloud Tool at #techkayac
Gosuke Miyashita
•
6.8K views
DevOps とは何か 何であるべきか
Gosuke Miyashita
•
3.5K views
Inside Sqale's Backend at RubyConf Taiwan 2012
Gosuke Miyashita
•
3.1K views
Ia型超新星とチャンドラセカール限界
Gosuke Miyashita
•
2.3K views
How Perl Changed My Life
Gosuke Miyashita
•
63.4K views
Inside Sqale's Backend at YAPC::Asia Tokyo 2012
Gosuke Miyashita
•
2.9K views
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012
Gosuke Miyashita
•
18.5K views
Assurer - a pluggable server testing/monitoring framework
Gosuke Miyashita
•
1.8K views
Open Source System Administration Framework - Func
Gosuke Miyashita
•
1.7K views
10分でわかるDevOps
Gosuke Miyashita
•
2.6K views
DevOpsって何?
Gosuke Miyashita
•
8.8K views
Puppetのススメ
Gosuke Miyashita
•
22.8K views
Puppet Best Practices? at COOKPAD
Gosuke Miyashita
•
2.7K views
How Danga::Socket handles asynchronous processing and how to write asynchrono...
Gosuke Miyashita
•
2.1K views
Danga::Socketの非同期処理の仕組みとPerlbalで非同期処理するプラグインを書く方法
Gosuke Miyashita
•
1.8K views
Recently uploaded
(20)
オレオレになりがちなテスト計画を見直した話
terahide
•
34 views
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
Takanari Tokuwa
•
45 views
Windows ChatGPT Bing AI.pptx
Atomu Hidaka
•
6 views
【DL輪読会】Poisoning Language Models During Instruction Tuning Instruction Tuning...
Deep Learning JP
•
52 views
AIEXPO_CDLE名古屋紹介
KotaMiyano
•
3 views
HTTPの仕組みについて
iPride Co., Ltd.
•
8 views
PCベース制御による集中制御.pdf
ssusercd9928
•
19 views
【2023年5月】平成生まれのためのUNIX&IT歴史講座
法林浩之
•
16 views
ヘッドレス化したbaserCMS5とその機能
Ryuji Egashira
•
10 views
Forguncy製品概要.pptx
フォーガンシー
•
57 views
☀️【卡尔顿大学毕业证成绩单留学生首选】
15sad
•
2 views
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
•
415 views
《杨百翰大学毕业证|学位证书校内仿真版本》
d520dasw12
•
2 views
留信网认证可查【皇家霍洛威学院文凭证书毕业证购买】
32lkhng
•
2 views
20230523_IoTLT_vol99_kitazaki_v1.pdf
Ayachika Kitazaki
•
108 views
【DL輪読会】Flow Matching for Generative Modeling
Deep Learning JP
•
766 views
SoftwareControl.pdf
ssusercd9928
•
15 views
点群SegmentationのためのTransformerサーベイ
Takuya Minagawa
•
13 views
ペンタエリスリトール市場.pdf
HinaMiyazu
•
3 views
JSONEncoderで詰まった話
とん とんぼ
•
65 views
Advertisement
NoSQLに関するまとめ
NoSQLに関するまとめ 2010/05/28 宮下 剛輔
NoSQLとは? • Not Only
SQLの略 – 元々は本当に「No SQL」だったみたいだけ ど、印象悪いのでこうなったらしい • SQLを使わない非リレーショナルなデータ ベースの総称 – おおざっぱに言うとMySQLとかPostgreSQL以外 • どんなものがあるか – kumofs, redis, Amazon SimpleDB, hBase, Cassandra, memcachedb, Couch DB, MongoDB, ...
NoSQL登場の背景 • RDBでは大規模なウェブ環境に対応できな くなってきた。特にスケーラビリティの 面で。 – MySQLでのスケーラビリティを考える –
readのスケーラビリティ: レプリケーション +ロードバランシング – writeのスケーラビリティ: sharding/partitioning – いずれにしろ、MySQL単体では実現できず、 別の技術やアプリケーション側での工夫が必 要 • sharding/partitioningについてはSpiderやPacificと いった選択肢もある
NoSQL登場の背景 • スケーラビリティ向上のためには、ACID からBASEへ
ACIDからBASEへ • ACID: データベースのトランザクション特性 –
Atomicity - トランザクションに含まれるタスクが 全て実行されるか、あるいは全く実行されないこ とを保証する性質 – Consistency -トランザクション開始と終了時にあ らかじめ与えられた整合性を満たすことを保証す る性質 – Isolation -トランザクション中に行われる操作の過 程が他の操作から隠蔽されることを指す – Durability -トランザクション操作の完了通知を ユーザが受けた時点で、その操作は永続的とな り、結果が失われないことを指す。
ACIDからBASEへ • ACIDからConsistencyとIsolationを捨て去る ことによって、 – 可用性が向上 –
性能劣化しにくい – スケーラビリティが向上 • BASE – Basically Available – Soft-state – Eventual consitency
BASE • Basically Available –
いつでもデータにアクセスできることが重要 • Soft-state – ゆるい状態管理/データ管理 – 高負荷時の耐性が高い • Eventual consistency – 結果整合性。途中でデータに不整合が起きて も、結果的に整合性がとれてればOK
Soft-stateをちょっと詳しく • 状態管理の手法には、Hard-stateとSoft-stateがある • 状態とは、ノードの生死やデータの状態 •
定期的にリフレッシュデータを送って状態確認す るのがSoft-state – データはベストエフォートで送信 • 状態が変わったときだけデータ送信して状態確認 するのがHard-state – データは信頼性の高い方法で送信 – 再送制御が必要 • 高負荷の時にはソフトステートの方が耐障害性が 高いという調査結果
ACID対BASE ACID • Strong Consistency •
Isolation • Focus on “commit” • Nested transactions • Availability? • Conservative(pessimistic) • Difficult evolution(e.g. schema) BASE • Weak consistency – stale data ok • Availability first • Best effor • Approximate answers OK • Aggressive(optimistic) • Simpler! • Faster • Easier evolution
ACIDからBASEへ • スケーラビリティのためにACID の概念を緩 和。その結果出てくる考えがBASE。 •
ただし ACID は個別のデータベースのトラン ザクション特性なのに対し、BASE はデータ ベース機能を含んだシステム全体の特性をさ すものなので、一概に比較できるものでもな い • ACIDとBASEは共存可能。システム全体は BASE、システムを構成する個別のDBはACID、 といった感じで。 • 実際のシステムはACIDが必要なところとBASE で十分な部分が混在している
CAP定理 • スケーラビリティや整合性に関する定理 • Consitency –
誰かがデータを更新したら、その後は必ず更新後の データが返る • Availability – クライアントは必ずデータにアクセスできる • Partition tolerance – 耐ネットワーク分断性 – データを複数サーバに分散して保存できる、と読み 替えても良い • この3つのうち、2つまでしか同時に満たせない、 というのがCAP定理
CAP定理の適用 • ConsistencyとAvailability – データはいつでも利用可能で一貫している –
単一データベースサーバ – 可用性あげるためには HA 構成になる?(この辺 微妙) • ConsitsencyとPartition torelance – データを分散しつつも整合性を保持 – 整合性保持のため、複製中はすべてのノードで データが更新されるまでロックをかけて不整合を 阻止 – ロックかかってる最中はAvailableではない
CAP定理の適用 • AvailabilityとPartition torelance –
データは分散され、いつでもデータにアクセスでき る – データ複製中は不整合な状態になりえる – DNSなんかはその例 • 大規模分散システムにはこのAとPを満たすことが 重要 • Cはある程度妥協する(Eventual Consistency) • ただし、VerticaはNoSQLながらもStrong Consitency らしい • CとAを満たすものがRDB。CとPやAとPを満たすも のがNoSQL
ここまでのまとめ • NoSQLはSQLをつかわない非RDBなデータ ベース • ACIDとBASE •
CAP定理 • 大規模ウェブはPとAが重要 • Cは妥協する(Eventual consistency)
データモデルによるNOSQLデー タベースの分類
NoSQLのデータモデルによる分 類 • Key-Value • 列指向の表形式 •
ドキュメント指向
Key-Value • キーと値のペアの格納に特化したもの
列指向の表形式 • 行指向の対義語 • 行指向は内部的に行単位でデータを保持 –
少数の行に対する多くの列の取得が効率的で ある。行あたりのサイズが小さい場合には、 行全体を1度のディスクシークで読み取ること ができる。 – 少数の行に対する多くの列の更新が効率的で ある。1行全体の書き出しを、1度のディスク シークで行うことができる。 – OLTPに向いている
列指向の表形式 • 列指向は内部的に列単位でデータを保持 – 大量の行に対する少数の列の集約処理が効率的で ある。列数が少ないほど、読み込むデータ量を減 らすことができる。 –
全行に対する少数の列の一括更新が効率的であ る。新規に列データを作成し、以前のデータと置 換することで、他の列へのアクセスを回避でき る。 – データが列ごとにまとまってるので、列の追加が 容易 – OLAPに向いている
ドキュメント指向 • XMLやJSONなどの半構造データ • {“name”:
“John Smith”, “age”: 33} といった 形でデータを出し入れ • フィールドの数や長さに特に制限はない
データモデルで分類したソフト ウェア • Key-Value – Tokyo
Cabinet, Dynamo, Redis, Kai, kumofs • 列指向 – Cassndra, hBase, HyperTable, BigTable, Vertica • ドキュメント指向 – CouchDB, SimpleDB, MongoDB, Terrastore
すべてのデータモデルに共通なこ と • スキーマレス – 柔軟な拡張が可能
まとめ • データモデル – Key-Value –
列指向表形式 – ドキュメント指向 • すべてに共通なのはスキーマレス
CAP定理に基づくデータベースの 分類
ConsistencyとAvailability • MySQL • PostgreSQL •
Aster Data • Greenplum • Vertica 赤はリレーショナル, 緑は列指向
ConsistencyとPartition torelance • BigTable •
Hypertable • Hbase • MongoDB • Terrastore • MemcacheDB • Redis 緑は列指向、紫はドキュメント指向、青はKey- Value
AvailabilityとPartition torelance • Cassandra •
SimpleDB • CouchDB • Riak • Dynamo • Voldemort • Kai 緑は列指向、紫はドキュメント指向、青はKey- Value
CAP定理による分類まとめ • CAP定理にしたがって分類してみた(って いうかひとが分類したのを載せただけ) • でも、あまり厳密に理論のことは考えな くていいです •
おおざっぱにしっておけばOK
まとめ
まとめ • ACIDとかBASEとかCAPとか説明したけど、ACIDと BASEは適用範囲も違ったり、ACIDのCとCAPのCは 意味が違ったりするので、厳密に考えると混乱す るから、なんとなくの考え方を掴んでおけばOK • NoSQLといっても、BigTableはGQLというSQLライク な言語が使えるし、NoSQLでも厳密な整合性やト ランザクションを実現しよう、という動きもある から、結局はNoSQLとSQLの境目ってなくなるのか も •
NoSQLを採用するなら、どこで採用するかは慎重 に考えよう。SQLなRDBの方が向いてる領域もたく さんある。
参考リンク • NoSQL登場の背景、CAP定理、データモデルの分類 – http://www.publickey1.jp/blog/10/nosqlcap.html •
クラウド上のリレーショナルデータベースはなぜ難しいの か? BASEとCAP定理について – http://www.publickey1.jp/blog/09/_basecap.html • CAP と BASE について調べたこと – http://yohei-y.blogspot.com/2009/03/cap-base.html • CAPのCとACIDのC – http://yohei-y.blogspot.com/2009/04/yokohamapm-eventually- consistent.html • 分散環境でのデータ管理におけるソフトステートのロバスト 性の評価 – http://www-imase.ist.osaka-u.ac.jp/paper/Yamaguchi05_IN12-J.pdf • この辺から辿れるところを読んでおけば大体把握できるかと
Advertisement