AWSを触ってみる【DynamoDB】
はじめに
DynamoDBとは
Amazon DynamoDB は、 NoSQL データベースサービスです。
フルマネージドデータベースであり、ドキュメントデータモデルとキーバリューデータモデルの両方をサポートしています。
DynamoDBの特徴
RDB とは違い、カラム(列)の定義が不要 です。
項目ごとに異なる属性(列)を持つことができるため、柔軟なデータ構造 が可能です。
| 用語 | 意味(RDB との比較) |
|---|---|
| テーブル | RDB と同じ概念 |
| 項目(Item) | 行(Row)に相当 |
| 属性(Attribute) | カラム(Column)に相当 |
| 値(Value) | 属性の値(文字列、数値、ブール、配列など) |
| パーティションキー | 必須のキー。Item を一意に特定するためのキー |
| ソートキー | 任意のキー。パーティション内で並び替え・絞り込みに使用できる |
クエリ
パーティションキーを指定して検索。最速でコストも安い。
スキャン
テーブル全件を読み込み、条件に一致する項目を探す。遅くてコストが高い。
DynamoDBの用途
DynamoDBを触る
新しいテーブルを作成する
-
マネジメントコンソールで「DynamoDB」を選択>「テーブルを作成」

-
テーブル作成オプションの入力
- テーブル名
- パーティションキー(テーブルのプライマリーキー)
- ソートキー
- 「テーブルの作成」
新しいテーブルを作成できました。
データを追加する
各テーブルには複数の項目があります。項目は、他のすべての項目に対して一意に識別できる属性のグループです。DynamoDB の項目は、他のデータベースシステムの行によく似ています。DynamoDB では、テーブルに保存できる項目の数に制限はありません。
各項目は、1 つ以上の属性で構成されます。属性は、基本的なデータ要素であり、それ以上分割する必要がないものです。例えば Music テーブルの項目には、Song や Artist などの属性があります。DynamoDB の属性は他のデータベースシステムの列に似ていますが、各項目 (行) に異なる属性 (列) を設定できる点が異なります。
項目を DynamoDB テーブルに書き込む際に必要なのは、プライマリキーとソートキー (使用している場合) のみです。これらのフィールド以外に、テーブルに必要なスキーマはありません。つまり、各項目には、他の項目で使用されていない属性を追加できます。
-
「項目を探索」>作成したテーブルを選択>「項目を作成」

-
属性名に対する値を入力

-
新しい属性も追加する>「項目を作成」

-
追加の項目を作成


3つの項目を作成

テーブルに対してクエリを実行する
DynamoDB テーブルに対してクエリを実行する方法には、クエリとスキャンの 2 つがあります。
- 「項目を探索」>該当のテーブルを選択>「クエリ」選択
- パーティションキーとソートキーを入力>「実行する」

クエリは、DynamoDB テーブルからデータを取得するための最も効率的な方法です。
スキャンを実行する
スキャンで項目を検索することもできます。スキャンでは、テーブル内の項目をすべて検索するため、効率が悪く、大きなテーブルの場合はかなりの時間がかかることがあります。
- 「項目を探索」>該当のテーブルを選択>「スキャン」選択
- フィルターオプション>属性名、条件、値入力>「実行する」

スキャン の操作を使用して、Music テーブルに対してクエリを実行できました。
Discussion