
NewSQL
NewSQLは、従来のRDBMS(リレーショナルデータベース管理システム)とNoSQL(非リレーショナルデータベース)のメリットを組み合わせた、新しいデータベース技術です。
特徴
- スケーラビリティ: NoSQLのような高いスケーラビリティと分散処理能力
- 一貫性と整合性: RDBMSと同様にACID特性(原子性、一貫性、独立性、永続性)を保証
- 大量データ処理: 大量のデータを効率的に処理
- SQLインターフェース: RDBMSと同様にSQLを使用可能
分類
NewSQLは、主に以下の3つのカテゴリに分類できます。
- 新しいアーキテクチャ: 既存のRDBMSとは異なる、分散型のアーキテクチャを採用
- SQLインターフェースの改善: NoSQLにSQLインターフェースを追加
- スケールアウト可能なRDBMS: 既存のRDBMSをスケールアウトできるように拡張
上位概念・下位概念
- 上位概念:データベース管理システム
- 下位概念:TiDB, CockroachDB, VoltDBなど
メリット
- 高いスケーラビリティとパフォーマンス
- ACID特性によるデータの整合性
- SQLによる柔軟なデータ操作
- 大規模なデータ処理への対応
デメリット
- 比較的新しい技術であり、成熟度が低い
- RDBMSやNoSQLに比べて導入事例が少ない
- 製品によっては、機能や性能にばらつきがある
既存技術との比較
- RDBMS: スケールアップには強いがスケールアウトが難しい。
- NoSQL: スケールアウトには強いがACID特性が弱い。
- NewSQL: 上記のRDBMS,NoSQLのいい所取りをしたデータベース。
NewSQL vs NoSQL vs SQL 比較表
| 特徴 | SQL (RDBMS) | NoSQL | NewSQL |
|---|---|---|---|
| データモデル | リレーショナル (テーブル形式、スキーマ定義必須) | 様々 (Key-Value, Document, Column-Family, Graphなど、スキーマレス/柔軟) | リレーショナル (テーブル形式、スキーマ定義) |
| スキーマ | 厳格、固定 | 柔軟、スキーマレス/可変 | 厳格、固定 |
| ACID特性 | 完全保証 (Atomicity, Consistency, Isolation, Durability) | 緩い (BASE特性: Basically Available, Soft state, Eventually consistent) | 完全保証 (Atomicity, Consistency, Isolation, Durability) |
| スケーラビリティ | 垂直スケール (スケールアップ)が主、水平スケールは限定的 | 水平スケール (スケールアウト)が得意 | 水平スケール (スケールアウト)が得意 |
| クエリ言語 | SQL (標準化されたクエリ言語) | データベース種類による (SQL類似の言語や独自API) | SQL (標準的なSQLをサポート) |
| 整合性 | 強い一貫性 (トランザクション処理重視) | 結果整合性 (高可用性・スケーラビリティ重視) | 強い一貫性 (分散環境でも保証) |
| 複雑な結合 | 得意 | 苦手 (データ構造による) | 得意 |
| トランザクション | 複雑なトランザクション処理に強い | 単純な操作が中心 | 分散トランザクションをサポート |
| 可用性 | クラスタ構成などで向上可能 | 分散アーキテクチャによる高可用性 | 分散アーキテクチャによる高可用性 |
| パフォーマンス | 複雑なクエリや大量データで課題が生じる場合がある | シンプルなKey-Value操作などは高速 | 高いスケーラビリティにより、大量データ処理や高負荷に強い |
| 導入事例 | 長年の実績があり豊富 | Webアプリケーション、ビッグデータ処理など | 比較的新しい技術であり、事例は増加傾向 |
| 成熟度 | 高い | 種類による | 比較的新しい技術であり、製品によって成熟度に差がある |
| 代表的な製品 | MySQL, PostgreSQL, Oracle, SQL Serverなど | MongoDB, Cassandra, Redis, DynamoDB, Neo4jなど | TiDB, CockroachDB, VoltDB, NuoDB, Google Spanner, Amazon Aurora (一部)など |
| 主な用途 | 構造化データ、複雑なトランザクション処理、高いデータ整合性 | 非構造化/半構造化データ、高速な読み書き、高スケーラビリティ | 大規模Webアプリケーション、高トランザクション処理、高スケーラビリティとデータ整合性の両立 |
補足:
- NewSQLは、NoSQLのスケーラビリティとSQLの使いやすさ、ACID特性を兼ね備えることを目指したデータベース技術です。
- Amazon Auroraは、アーキテクチャ的にはNewSQLに近い部分もありますが、AWSのマネージドサービスという点で少し異なります。
- NoSQLは多様なデータモデルを持つため、一概に特徴をまとめるのは難しい場合があります。上記は一般的な傾向として捉えてください。
- NewSQL製品も、アーキテクチャや機能によって特性が異なります。
競合
- RDBMS(Oracle, MySQL, PostgreSQLなど)
- NoSQL(Cassandra, MongoDB, Redisなど)
導入ポイント
- 大規模なデータ処理や高いスケーラビリティが必要なシステム
- ACID特性によるデータの整合性が重要なシステム
- SQLによる柔軟なデータ操作が必要なシステム
注意点
- 製品の特性をよく理解し、システム要件に合ったものを選択
- 導入前に十分な検証とテストを実施
- NewSQLに関する知識や経験を持つエンジニアの確保
今後
NewSQLは、ビッグデータやクラウドコンピューティングの普及に伴い、今後ますます注目されると予想されます。特に、大規模なオンライン取引処理(OLTP)や、リアルタイム分析を必要とするシステムでの利用が拡大すると考えられます。
関連キーワード
- 分散データベース
- ACID特性
- スケールアウト
- ビッグデータ
- クラウドデータベース