49

dynamoDB で項目のサイズを計算しようとしていますが、定義を理解できません。

私が見つけた定義:アイテムのサイズは、その属性名と値の長さの合計です(バイナリとUTF-8の長さ)。そのため、属性名を短くすると役立ちます。

データベースに数値を入力すると、たとえば 1 のように int のサイズになるということですか? 平行?ダブル?100 または 1000000 と同じ量のスペースが必要ですか、それとも対応するバイナリのサイズだけが必要ですか?

そして、文字列の計算は何ですか?

それを計算する方法を知っている人はいますか?

ありがとうございました

4

7 に答える 7

39

それは確かに重要なトピックです - Amazon DynamoDB Data Modelからのややずさんな定義をすでに引用しました:

アイテムのサイズは、その属性名と値の長さ (バイナリと UTF-8 の長さ) の合計です。

これについては、 Amazon DynamoDB データ型内のページの下の方に少し詳しく説明されています。

  • 文字列-文字列は、UTF8 バイナリ エンコーディングの Unicode です。
  • 数値-数値は、正または負の正確な値の小数および整数です。数値は、小数点以下 38 桁までの精度を持つことができ、10^-128 から 10^+126 の間であることができます。Amazon DynamoDB での表現は可変長です。先頭と末尾のゼロは削除されます。

あなたと同様の質問がAmazon DynamoDB フォーラムでも尋ねられており ( 「数値」タイプの好奇心旺盛な性質を参照)、Stefano@AWS からの回答がこの問題をより明確にしています。

  • 「数値」タイプの精度は 38 桁です。これらは実際の 10 進数です。したがって、かなり大きな数を表すことができ、精度の低下はありません。
  • 数値はどのくらいのスペースを占有しますか? 多すぎない程度に。内部表現は可変長であるため、サイズは値の実際の (対最大) 桁数に相関しています。先頭と末尾のゼロは削除されます。[鉱山を強調]

Christopher Smith のフォローアップ投稿では、ストレージの消費とその計算に関する結果の影響について、より多くの洞察を示しています。彼は次のように結論付けています。

既存の API は、請求の一部 (確かにそれほど重要ではない) であるにもかかわらず、ストレージの消費に関する洞察をほとんど提供しません。唯一の情報は集計テーブル サイズであり、そのデータでさえ何時間も同期していない可能性があります。

Amazonはまだ API を介して請求データを公開していませんが、Christopher が提案したように、ある時点で商品サイズに関する情報を取得するオプションを DynamoDB API に追加することを期待しています。

于 2012-01-26T12:19:11.293 に答える
12

Clarence@AWS が回答した Amazon 開発者フォーラムでこの回答を見つけました。

例えば:-

"Item":{
"time":{"N":"300"},
"feeling":{"S":"not surprised"},
"user":{"S":"Riley"}
}

上記のオブジェクトのサイズを計算するには:

アイテムのサイズは、属性名と値の長さの合計であり、UTF-8 文字として解釈されます。したがって、この例では、項目のバイト数は次の合計になります。

Time : 4 + 3 
Feeling : 7 + 13 
User : 4 + 5          

どれが36

正式な定義については、http: //docs.amazonwebservices.com/amazondynamodb/latest/developerguide/WorkingWithDDItems.htmlを参照してください。

于 2015-09-29T05:10:22.313 に答える
4

DynamoDB Storage Backend for Titan DynamoDBDelegateクラスで DynamoDB 項目サイズを計算するためのアルゴリズムを使用できます。

于 2015-08-20T20:38:28.997 に答える