【aws cli】dynamodbテーブルの作成とクエリ

こんにちは。今回は、aws cliについて初心者エンジニアに向けて、dynamodbテーブルの作成とクエリについて解説します。

aws cliを使用したdynamodbテーブルの作成手順

まずは、aws cliを使用してdynamodbテーブルを作成する手順を紹介します。

  1. dynamodbテーブルの作成コマンドを実行します。
    aws dynamodb create-table \
    --table-name mytable \
    --attribute-definitions \
    attributename=id,attributetype=s \
    attributename=timestamp,attributetype=n \
    --key-schema \
    attributename=id,keytype=hash \
    attributename=timestamp,keytype=range \
    --provisioned-throughput \
    readcapacityunits=5,writecapacityunits=5
  2. dynamodbテーブルの作成が成功した場合、以下のようなレスポンスが返されます。
    {
    "tabledescription": {
        "tablename": "mytable",
        "tablestatus": "creating",
        ...
    }
    }

以上で、dynamodbテーブルの作成手順は完了です。

dynamodbテーブルの属性とキーの設定方法

次に、dynamodbテーブルの属性とキーの設定方法について解説します。

  • 属性の設定
    dynamodbテーブルの属性は、--attribute-definitionsオプションを使用して定義します。

    aws dynamodb create-table \
    --table-name mytable \
    --attribute-definitions \
    attributename=id,attributetype=s \
    attributename=timestamp,attributetype=n \
    ...
  • キーの設定
    dynamodbテーブルのキーは、--key-schemaオプションを使用して定義します。

    aws dynamodb create-table \
    --table-name mytable \
    --key-schema \
    attributename=id,keytype=hash \
    attributename=timestamp,keytype=range \
    ...
  • 参考ブログ記事2: aws advent calendar 2017 – aws cliでdynamodbを使う時の基礎

aws cliでのdynamodbテーブルへのデータの挿入と更新

aws cliを使用してdynamodbテーブルへのデータの挿入と更新方法を解説します。

  • データの挿入
    dynamodbテーブルにデータを挿入するには、put-itemコマンドを使用します。

    aws dynamodb put-item \
    --table-name mytable \
    --item '{
    "id": {"s": "123"},
    "timestamp": {"n": "1609459200"},
    "title": {"s": "hello world"},
    "content": {"s": "this is a sample blog post"}
    }'
  • データの更新
    dynamodbテーブルのデータを更新するには、update-itemコマンドを使用します。

    aws dynamodb update-item \
    --table-name mytable \
    --key '{
    "id": {"s": "123"},
    "timestamp": {"n": "1609459200"}
    }' \
    --update-expression 'set content = :content' \
    --expression-attribute-values '{":content":{"s":"updated content"}}'
  • 参考ブログ記事3: scalable web architecture and distributed systems – dynamodb and aws cli: a story of two friends

dynamodbテーブルのスキャンとクエリの基本的な使い方

dynamodbテーブルのスキャンとクエリの基本的な使い方を解説します。

  • テーブルのスキャン
    テーブル全体をスキャンするには、scanコマンドを使用します。

    aws dynamodb scan \
    --table-name mytable
  • クエリの実行
    クエリを実行するには、queryコマンドを使用します。

    aws dynamodb query \
    --table-name mytable \
    --key-condition-expression 'id = :id' \
    --expression-attribute-values '{":id":{"s":"123"}}'
  • 参考ブログ記事4: aws公式ドキュメント – querying tables with the aws cli

aws cliを使ったdynamodbテーブルのインデックスとパーティションキーの設定

最後に、aws cliを使用してdynamodbテーブルのインデックスとパーティションキーを設定する方法を解説します。

  • グローバルセカンダリインデックスの追加
    グローバルセカンダリインデックスを追加するには、update-tableコマンドを使用します。

    aws dynamodb update-table \
    --table-name mytable \
    --attribute-definitions \
    attributename=category,attributetype=s \
    --global-secondary-index-updates \
    '[{
      "create": {
        "indexname": "categoryindex",
        "keyschema": [
          {"attributename": "category","keytype": "hash"}
        ],
        "projection": {
          "projectiontype": "all"
        },
        "provisionedthroughput": {
          "readcapacityunits": 5,
          "writecapacityunits": 5
        }
      }
    }]'
  • ローカルセカンダリインデックスの追加
    ローカルセカンダリインデックスを追加するには、update-tableコマンドを使用します。

    aws dynamodb update-table \
    --table-name mytable \
    --attribute-definitions \
    attributename=userid,attributetype=n \
    attributename=timestamp,attributetype=n \
    --local-secondary-index-updates \
    '[{
      "create": {
        "indexname": "useridindex",
        "keyschema": [
          {"attributename": "id","keytype": "hash"},
          {"attributename": "timestamp","keytype": "range"}
        ],
        "projection": {
          "projectiontype": "all"
        }
      }
    }]'

以上で、dynamodbテーブルのインデックスとパーティションキーの設定方法の解説は完了です。

以上で、aws cliを使用したdynamodbテーブルの作成とクエリについての解説を終わります。初心者エンジニアの皆さんが、aws cliを使ってdynamodbを効果的に活用できるようになることを願っています。

 

【aws cli】関連のまとめ

【AWS CLI】関連のまとめ
【aws cli】基本コマンドと使い方   【AWS CLI】アクセスキーとシークレットアクセスキーの設定   【aws cli】s3バケットの作成と管理   【aws cli】ec2インスタンスの起動と停止   【aws cli】セキュリ...

 

オンラインスクールを講師として活用する!

【完全無料】使えるプログラミングスクール体験セミナー
【完全無料】使えるプログラミングスクール体験セミナー WEB制作の無料教材がここにきてどんどん増えてきてるので、使えるものをまとめようと思います。 TecAcademy(テックアカデミー) TechAcademyの無料体験 Samurai ...

 

0円でプログラミングを学ぶという選択

タイトルとURLをコピーしました