💨

AWSを触ってみる【DynamoDB】

に公開

はじめに

DynamoDBとは

Amazon DynamoDB は、 NoSQL データベースサービスです。
フルマネージドデータベースであり、ドキュメントデータモデルとキーバリューデータモデルの両方をサポートしています。

DynamoDBの特徴

RDB とは違い、カラム(列)の定義が不要 です。
項目ごとに異なる属性(列)を持つことができるため、柔軟なデータ構造 が可能です。

用語 意味(RDB との比較)
テーブル RDB と同じ概念
項目(Item) 行(Row)に相当
属性(Attribute) カラム(Column)に相当
値(Value) 属性の値(文字列、数値、ブール、配列など)
パーティションキー 必須のキー。Item を一意に特定するためのキー
ソートキー 任意のキー。パーティション内で並び替え・絞り込みに使用できる

クエリ

パーティションキーを指定して検索。最速でコストも安い。

スキャン

テーブル全件を読み込み、条件に一致する項目を探す。遅くてコストが高い。

DynamoDBの用途

DynamoDBを触る

新しいテーブルを作成する

  1. マネジメントコンソールで「DynamoDB」を選択>「テーブルを作成」

  2. テーブル作成オプションの入力

  • テーブル名
  • パーティションキー(テーブルのプライマリーキー)
  • ソートキー
  1. 「テーブルの作成」
    新しいテーブルを作成できました。

データを追加する

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

  1. 「項目を探索」>作成したテーブルを選択>「項目を作成」

  2. 属性名に対する値を入力

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

  4. 追加の項目を作成

3つの項目を作成

テーブルに対してクエリを実行する

DynamoDB テーブルに対してクエリを実行する方法には、クエリとスキャンの 2 つがあります。

  1. 「項目を探索」>該当のテーブルを選択>「クエリ」選択
  2. パーティションキーとソートキーを入力>「実行する」

クエリは、DynamoDB テーブルからデータを取得するための最も効率的な方法です。

スキャンを実行する

スキャンで項目を検索することもできます。スキャンでは、テーブル内の項目をすべて検索するため、効率が悪く、大きなテーブルの場合はかなりの時間がかかることがあります。

  1. 「項目を探索」>該当のテーブルを選択>「スキャン」選択
  2. フィルターオプション>属性名、条件、値入力>「実行する」

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

まとめ

Discussion