DynamoDB 項目のサイズと形式 - Amazon DynamoDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

DynamoDB 項目のサイズと形式

DynamoDB テーブルはプライマリキーを除いてスキーマレスです。そのため、テーブルの項目の属性、サイズ、データ型はすべて異なる場合があります。

項目の合計サイズは、属性名と属性値の文字列の長さの合計、および以下に説明するように該当するオーバーヘッドが追加されます。次のガイドラインを使用して属性サイズを予測することができます。

  • 文字列は、UTF-8 バイナリエンコードの Unicode です。文字列のサイズは、(UTF-8-encoded属性名のバイト数) + (UTF-8-encodedバイト数) です

  • 数値は、有効桁数が最大 38 の可変長です。先頭と末尾の 0 は切り捨てられます。数値のサイズは約 (UTF-8-encoded属性名のバイト数) + (有効桁数 2 桁あたり 1 バイト) + (1 バイト) です。

  • バイナリ値を DynamoDB に送信するには base64 形式でエンコードする必要がありますが、サイズの計算には値の実際のバイト長が使用されます。バイナリ属性のサイズは、(UTF-8-encoded属性名のバイト数) + (raw バイト数) です。

  • null 属性またはブール属性のサイズは、(UTF-8-encoded属性名のバイト数) + (1 バイト) です。

  • List 型または Map 型の属性は、その内容にかかわらず、余分な 3 バイトが必要です。List または のサイズMapは、(UTF-8-encoded属性名のバイト数) + 合計 (ネストされた要素のサイズ) + (3 バイト) です。空の Listまたは のサイズMapは、 (属性名の UTF-8-encodedされたバイト数) + (3 バイト) です

  • List または Map の各要素には、余分な 1 バイトが必要です。

注記

属性名は長いものよりも短いものにすることをお勧めします。これにより、必要なストレージの量を減らすことができ、使用する RCU/WCU の量を減らすこともできます。

ストレージの請求において、各項目には、有効にした機能に応じて、項目あたりのストレージオーバーヘッドが含まれます。

  • DynamoDB のすべての項目は、インデックス作成に 100 バイトのストレージオーバーヘッドを必要とします。

  • 一部の DynamoDB 機能 (グローバルテーブル、トランザクション、DynamoDB を使用した Kinesis Data Streams の変更データキャプチャ) では、これらの機能を有効にすることでシステムが作成した属性を考慮するために、追加のストレージオーバーヘッドが必要になります。例えば、グローバルテーブルでは、48 バイトのストレージオーバーヘッドがさらに必要になります。