Amazon Quantum Ledger Database (QLDB) 透過的でイミュータブル、かつ暗号的に検証可能なトランザクションログを提供するフルマネージド型台帳データベース。ログは信頼された中央機関が所有。
https://aws.amazon.com/jp/qldb/ https://ap-northeast-1.console.aws.amazon.com/qldb/home?region=ap-northeast-1#getting-started
-
アプリケーションデータの各変更を追跡し、完全で順番に並んだ変更履歴を長期間維持するジャーナルを使用
- ジャーナルなので追記型(削除、変更はできない)
- RDBやブロックチェーンではない
-
高い性能とスケーラビリティ
- QLDB は集中型の設計(BCと違い分散させない)
- 一般的なブロックチェーンフレームワークの台帳よりも 2~3 倍多くのトランザクションを実行可能
- 複数の関係者の合意を得なくてもトランザクションを実行可能(BCではない)
- 信頼されない複数の関係者がアクセスするようなアプリはBCのほうが良い
- QLDB は集中型の設計(BCと違い分散させない)
-
サーバーレス
-
可用性
- AZ内および リージョン内の 3 つの AZ 内で、データの複数のコピーをレプリケート
-
暗号的に改ざんの検証可能
- QLDB Data Verification
-
PartiQL
- 新しいオープンソースの SQL 互換クエリ言語
-
ストリーミング機能
- Kinesis Data Streamsにストリーミングできる→イベント駆動型のワークフローが採用可能
ジャーナルに変更を「追記」してから、状態の変化をステートデータベースに書き込んでおく。 さらに、ステートデータベースは現在の状態情報と過去のバージョン情報を保持している
↓
ある時点でのデータを簡単に取得できる
- 銀行取引の貸方と借方の履歴追跡
- 保険金請求のデータ来歴の検証
- サプライチェーンネットワークの商品移動の追跡
- ・・・
参照
SELECT v.VIN, r.LicensePlateNumber, r.State, r.City, r.Owners
FROM Vehicle AS v, VehicleRegistration AS r
WHERE v.VIN = '1N4AL11D75C109151'
AND v.VIN = r.VIN
更新
UPDATE VehicleRegistration AS r
SET r.Owners.PrimaryOwner.PersonId = '294jJ3YUoH1IEEm8GSabOs'
WHERE r.VIN = '1N4AL11D75C109151'
履歴の参照
SELECT h.data.VIN, h.data.City, h.data.Owners
FROM history(VehicleRegistration) AS h
WHERE h.metadata.id = 'ADR2LQq48kB9neZDupQrMm'