目的
DynamoDBはデータベース的な役割をもつAWSのサービスの一つ、ということしか知らなかったため調査した。
DynamoDBの基本情報
- 完全マネージド型のSQLサービス
- 管理を24時間体制で自動でおこなってくれるサービスのこと
- NoSQL型のデータベース
- RDBMS以外である(よくわからないので後述)
- 低レイテンシー(応答速度が速い)
- パーティショニングを実施(テーブルを内部で分割している、外からは一つのテーブルに見える)
- 容量制限がない
- 高可用性
- 複数のAZ(アベイラビリティゾーン)にデータを保存しているため、ある地域のDBで障害が発生しても稼働が継続できる
NoSQL型とリレーショナルデータベースの違いとは
リレーショナルデータベース
- テーブルと呼ばれるExcelのような列と行で成り立つ二次元の表で表され、
複数のテーブルを用いてデータを抽出することが可能。 - あらかじめテーブル名や列名、型を定義しておく必要がある。
- 仕様変更が柔軟にしにくい。
- 複雑なデータを保存するには適している。
メインテーブル
ID | 社員名 | 所属部署ID |
---|---|---|
1 | 山田太郎 | 01 |
2 | 佐藤花子 | 02 |
部署テーブル
ID | 所属部署 |
---|---|
01 | 営業部 |
02 | 総務部 |
ちなみにRDBMSとはRelational DataBase Management Systemの略で
リレーショナルデータベース型データベースを管理するシステムのことを指す。
NoSQL
NoSQLには以下の3つのパターンが存在する
- key-value型
- カラム指向型
- ドキュメント型
今回key-value型についてのみ言及する
NoSQLの一つであるkey-value型とは
- 一つのkeyに対して複数のデータ(value)を保持する
- 大量のデータの蓄積に向いている
- 他のテーブルと拡張しやすい
- 大量の読み書きは向いてない
- データの検索や結合処理には向いてない
- トランザクションができない?
key | Value |
---|---|
1 | 山田太郎, 営業部 |
2 | 佐藤花子, 総務部 |