DynamoDB のチートシート - Amazon DynamoDB

DynamoDB のチートシート

このチートシートは、Amazon DynamoDB とそのさまざまな AWS SDK を操作するためのクイックリファレンスを提供します。

初期セットアップ

  1. AWS にサインアップします

  2. プログラムで DynamoDB にアクセスするための AWS アクセスキーを取得します。

  3. DynamoDB 認証情報を設定します

以下も参照してください。

SDK または CLI

任意の SDK を選択するか、AWS CLI を設定します。

注記

Windows で AWS CLI を使用すると、引用符の中にないバックスラッシュ (\) はキャリッジリターンとして扱われます。また、他の引用符の中にある引用符や中かっこはエスケープする必要があります。例については、次のセクションの「テーブルの作成」の [Windows] タブを参照してください。

以下も参照してください。

基本アクション

このセクションでは、基本的な DynamoDB タスクのコードを提供します。これらのタスクの詳細については、「DynamoDB とAWS SDK の使用開始」を参照してください。

テーブルを作成する

Default
aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5
Windows
aws dynamodb create-table ^ --table-name Music ^ --attribute-definitions ^ AttributeName=Artist,AttributeType=S ^ AttributeName=SongTitle,AttributeType=S ^ --key-schema ^ AttributeName=Artist,KeyType=HASH ^ AttributeName=SongTitle,KeyType=RANGE ^ --provisioned-throughput ^ ReadCapacityUnits=10,WriteCapacityUnits=5

テーブルへの項目の書き込み

aws dynamodb put-item \ --table-name Music \ --item file://item.json

テーブルから項目の読み込み

aws dynamodb get-item \ --table-name Music \ --item file://item.json

テーブルから項目の削除

aws dynamodb delete-item --table-name Music --key file://key.json

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

aws dynamodb query --table-name Music --key-condition-expression "ArtistName=:Artist and SongName=:Songtitle"

テーブルを削除する

aws dynamodb delete-table --table-name Music

テーブル名のリスト化

aws dynamodb list-tables

名前付けルール

  • すべての名前は UTF-8 を使用してエンコードする必要があり、大文字と小文字が区別されます。

  • テーブル名とインデックス名の長さは 3~255 文字で、次の文字のみを含めることができます。

    • a-z

    • A-Z

    • 0-9

    • _ (下線)

    • - (ダッシュ)

    • . (ドット)

  • 属性名は 1 文字以上、64 KB 未満のサイズである必要があります。

詳細については、「命名規則」を参照してください。

サービスクォータの基本

読み込みユニットと書き込みユニット

  • 読み込みキャパシティユニット (RCU) – 最大サイズが 4 KB の項目について、読み込みキャパシティユニット = 1 秒あたり 1 回の強力な整合性のある読み込み、あるいは 1 秒あたり 2 回の結果整合性のある読み込み。

  • 書き込みキャパシティユニット (WCU) – 最大サイズが 1 KB の項目について、書き込みキャパシティユニット = 1 秒あたり 1 回の書き込み。

テーブルリミット

  • テーブルサイズ – テーブルのサイズには実用的な制限はありません。テーブルは項目数やバイト数について制限がありません。

  • テーブルの数 – AWS アカウントについては、AWS リージョンごとに 2,500 個のテーブルという初期クォータがあります。

  • クエリとスキャンのページサイズの制限 – クエリまたはスキャンごとに、1 ページあたり 1 MB に制限されています。クエリパラメータまたはテーブルでのスキャン操作の結果データが 1 MB を超える場合、DynamoDB は最初に一致した項目を返します。また、新しいリクエストで次のページを読むときに使用できる LastEvaluatedKey プロパティも返されます。

インデックス

  • ローカルセカンダリインデックス (LSI) – 最大 5 つのローカルセカンダリインデックスを定義できます。LSI は主に、インデックスがベーステーブルと強い一貫性を持たなければならない場合に役立ちます。

  • グローバルセカンダリインデックス (GSI) – デフォルトクォータとして、テーブルごとに 20 個のグローバルセカンダリインデックスがあります。

  • テーブル毎のセカンダリインデックス属性の射影 – 合計最大 100 の属性を、1 つのテーブルのすべてのグローバルセカンダリインデックスに射影することができます。これは、ユーザー指定の射影された属性だけに適用されます。

パーティションキー

  • パーティションキーと値の最小長は 1 バイトです。最大長は 2048 バイトです

  • テーブルまたはセカンダリインデックスについて、パーティションキー値の明確な数に関する実質的な制限はありません。

  • ソートキーと値の最小長は 1 バイトです。最大長は 1024 バイトです

  • 一般的に、パーティションキーの値ごとのソートキーの値の数について、実質的に制限はありません。セカンダリインデックスを持つテーブルは例外です。

セカンダリインデックス、パーティションキー設計、ソートキー設計の詳細については、「ベストプラクティス」を参照してください。

一般的に使用されるデータ型の制限

  • 文字列 – 文字列の長さは、項目の最大サイズである 400 KB に制約されます。文字列は、UTF-8 バイナリエンコードの Unicode です。

  • 数値 – 数値は、最大 38 桁の精度であり、正、負、または 0 のいずれかです。

  • バイナリ – バイナリの長さは、項目の最大サイズである 400 KB に制約されます。バイナリ属性を操作するアプリケーションは、データを DynamoDB に送信する前に、base64 でエンコードする必要があります。

サポートされているデータ型のリストについては、「データ型」を参照してください。詳細については、「Service Quotas」(サービスクォータ) を参照してください。

項目、属性、式パラメータ

DynamoDB の項目の最大サイズは 400 KB で、属性名のバイナリの長さ (UTF-8 の長さ) と属性値の長さ (UTF-8 の長さ) を含みます。属性名はサイズ制限に反映されます。

値を含む項目が 400 KB の制限内である限り、リスト、マップ、またはセットにおける値の最大数の制限はありません。

式パラメータでは、式文字列の最大長は 4 KB です。

項目サイズ、属性、および式パラメータの詳細については、「Service Quotas」(サービスクォータ) を参照してください。

詳細情報