ビッグデータとNoSQLシステム
ビッグデータとNoSQLシステムは、リレーショナルデータベースが抱えていた量、速度、多様性の課題に対応するために構築されたデータ管理技術であり、厳密なリレーショナル保証を水平スケーラビリティ、柔軟なスキーマ、高可用性と交換しています。
Definition
ビッグデータシステムは、従来の単一ノードデータベースでは大きすぎる、速すぎる、または多様すぎるデータセットのために設計されたデータ管理プラットフォームです。NoSQLシステムは、水平スケーラビリティと可用性を達成するために、柔軟なデータモデルと緩和された一貫性を採用する非リレーショナルストアです。
Scope
この分野は、大規模なスケールに対応するために設計されたデータシステムを対象としています。具体的には、NoSQLストア(キーバリュー、ドキュメント、ワイドカラム、グラフ)とその柔軟なデータモデル、MapReduceから派生したデータ並列処理フレームワーク、CAP定理によって捉えられる一貫性と可用性のトレードオフ、および一貫性モデルのスペクトラム、そして大規模分析のためのデータウェアハウジングとOLAPが含まれます。これらのシステムが、スケールに対応するためにリレーショナルな仮定をどのように緩和または再編成しているかを扱います。分散コミットと並列クエリ実行の内部については、分散データベースおよび並列データベースの分野で扱われるため、ここでは除外します。
Sub-topics
Core questions
- リレーショナルデータベースを超えた動きを推進したスケーラビリティと柔軟性のニーズは何でしたか?
- 主要なNoSQLカテゴリはどのようなデータモデルを提供していますか?
- データ並列フレームワークは、クラスタ全体で膨大なデータセットをどのように処理しますか?
- CAP定理はどのような一貫性と可用性のトレードオフを記述していますか?
- データウェアハウスとOLAPは、大規模な分析クエリをどのようにサポートしていますか?
Key concepts
- キーバリュー、ドキュメント、ワイドカラム、グラフストア
- 水平スケーラビリティ
- スキーマの柔軟性
- MapReduceとデータ並列処理
- CAP定理
- 結果整合性
- BASEとACID
- データウェアハウジングとOLAP
Key theories
- 水平スケーラブルなNoSQLストア
- NoSQLシステムは、単一ノードのリレーショナルモデルを放棄し、キーバリュー、ドキュメント、ワイドカラム、またはグラフモデルを採用しています。これらはコモディティクラスタ全体でデータをシャーディングおよびレプリケーションし、豊富なクエリ機能や強い一貫性よりもスケーラビリティと可用性を優先します。
- データ並列処理
- MapReduceモデルに従うフレームワークは、大規模な計算を、パーティション化されたデータに対する並列のマップフェーズとリデュースフェーズとして表現し、分散、スケジューリング、およびフォールトトレランスの複雑さをプログラマーから隠蔽します。
- CAPトレードオフ
- CAP定理は、分散データストアが、一貫性、可用性、およびパーティション耐性を同時に保証することはできないと述べており、ネットワークパーティション発生時に設計者は一貫性と可用性のどちらかを選択することを余儀なくされます。
Clinical relevance
ビッグデータとNoSQLシステムは、現代のウェブのデータインフラを支えています。キーバリューおよびワイドカラムストアは高トラフィックサービスを支え、データ並列フレームワークはログやクリックストリームを大規模に処理し、データウェアハウスはビジネス分析に利用されています。これらのシステムは、データエンジニアリングと大規模アプリケーションの中心的な存在となっています。
History
2000年代のインターネット規模のワークロードは、単一ノードのリレーショナルデータベースが処理できる範囲を超えました。GoogleのMapReduce(2004年/2008年)とオープンソースのHadoopエコシステムは、クラスタ規模のデータ処理を可能にしました。AmazonのDynamo(2007年)とGoogleのBigtableは、NoSQLストアの波を引き起こし、BrewerのCAP定理は、これらのシステムが具現化する一貫性と可用性のトレードオフを明確にしました。
Debates
- 強い一貫性と結果整合性
- NoSQLシステムは、パーティション下で応答性を維持するために、可用性と結果整合性を選択することが多く、これにより競合処理がアプリケーション側に押し付けられます。結果整合性が許容される場合と、より新しいシステムがより強い保証を回復すべき場合について、この分野では議論が続いています。
Key figures
- Jeffrey Dean
- Sanjay Ghemawat
- Eric Brewer
- Werner Vogels
Related topics
Seminal works
- dean2008
- decandia2007
- brewer2012
Frequently asked questions
- NoSQLはSQLが全くないという意味ですか?
- いいえ。NoSQLは通常「Not Only SQL(SQLだけではない)」と解釈されます。これは、リレーショナルモデルに基づいて構築されておらず、SQLを中心としないデータストアを指しますが、多くのNoSQLシステムはSQLライクなクエリインターフェースを提供しており、この用語は単一の技術ではなく、キーバリュー、ドキュメント、ワイドカラム、グラフデータベースといった幅広いファミリーをカバーしています。
- リレーショナルデータベースではなくNoSQLシステムを選択すべきなのはどのような場合ですか?
- NoSQLシステムは、多数のマシンにわたって水平にスケールする必要がある場合、柔軟なデータや急速に変化するデータを保存する場合、または単純なアクセスパターンに対して可用性を最大化する場合に魅力的です。リレーショナルデータベースは、豊富なクエリ、複雑な結合、および構造化データに対する強力なトランザクション一貫性が必要な場合に依然として好ましい選択肢です。