キー・バリュー・ストア
キー値ストアは、効率的なアクセスと管理のために一意の識別子を対応する値に関連付ける最小限のデータストレージパラダイムです。
定義
キー値ストア(キー値データベースまたはKVストアとも呼ばれる)は、情報のコレクションとして一意のキーが関連する値にマッピングされる、ノーサクルデータストレージモデルの一種です。各キーは、複雑なクエリ言語や固定スキーマの必要なく、直接的に値を格納および取得するための一意の識別子として機能します。値自体はデータベースエンジンに対して透過的でなく、文字列などの単純な型やJSON、バイナリファイル、ドキュメントなどの複雑なオブジェクトであることができます。この単純さにより、高スループット、低レイテンシーの操作が可能となり、分散システム全体にわたる水平スケーラビリティが実現されます。キー値ストアは、迅速な直接的な検索と柔軟なデータ表現が優先されるアプリケーションで一般的に使用されます。
メリット
- キーによる非常にシンプルで高速な読み書きアクセス
- スキーマレスな設計により柔軟で多様なデータ型をサポート
- 分散インフラストラクチャにわたる水平スケーラビリティ
- キャッシュやリアルタイムワークロードに理想的な低レイテンシー
- リレーショナルシステムに比べて最小限の運用オーバーヘッド
デメリット
- キー検索を超えた複雑なクエリには組み込みのサポートがない
- 関係的なジョインや高度なインデックス機能が欠如している
- データベースに対して値が透過的でなく、内部情報の取得が制限される
- 一貫性モデルが異なるため、パフォーマンスのトレードオフが必要な場合がある
- より豊富なクエリセマンティクスを必要とするアプリケーションには適していない
使用ケース
- ウェブアプリケーションのセッション状態や頻繁にアクセスされるデータのキャッシュ
- 識別子でキー付けられた設定やユーザーの好みデータの保存
- 分散システムやマイクロサービスにおけるルックアップテーブルの管理
- オートメーションやスクレイピングワークフローでの結果やアーティファクトの永続化
- 簡単なキーアクセスを必要とするリアルタイム分析システムのバックエンド