2016-12-06 93 views
2

DynamoDB中的數字類型的存儲空間是Number還是string類型?什麼是DynamoDB編號和字符串數據類型存儲空間

說我有一個號碼(1234789)。如果我將它存儲爲number類型,那麼它將只需要4個字節,而作爲string它將需要7個字節?

DynamoDB是否將所有數字存儲爲bigdecimal?

+0

[DynamoDB中的ItemSize]的可能重複(http://stackoverflow.com/questions/8988389/itemsize-in-dynamodb) – RomanMinkin

回答

0

DynamoDb是託管的雲服務,所以我認爲他們在內部存儲數據的方式並不清楚。

但是,他們將Numbers作爲字符串轉換爲語言兼容性支持,並且影響RCU/WCU的其中一個因素是傳輸數據大小。

因此,就您關心的是計算預配吞吐量和成本而言,Number大小應視爲String大小。

1

作爲每DynamoDB Documentation : Datatypes

字符串

字符串是Unicode的使用UTF-8二進制編碼。字符串 的長度必須大於零,並受最大DynamoDB 項目大小限制爲400 KB的限制。

如果定義一個主鍵屬性作爲字符串類型屬性,則 下列附加約束條件適用:

  1. 對於一個簡單的主鍵,第一屬性值的最大長度(分區鍵)是2048字節。
  2. 對於組合主鍵,第二個屬性值(排序鍵)的最大長度爲1024個字節。

編號

數字可以爲正,負或零。數字的精度可能高達38 - 超過這將導致例外。

  1. 正範圍:1E-130到9.9999999999999999999999999999999999999E + 125
  2. 負範圍:-9.9999999999999999999999999999999999999E + 125到-1E-130

在DynamoDB,數字表示爲可變長度。尾部零將被削減。

所有的數字都通過網絡發送到DynamoDB爲字符串,跨越語言和庫 最大化的兼容性。然而, DynamoDB將它們視爲數學 操作的數字類型屬性。

注意:如果數字精度很重要,您應該使用從數字類型轉換的字符串將數字傳遞給DynamoDB。

我希望,這可以幫助你得到你的答案。

+0

@ user1846749,這是否幫助您解決您的問題? – LuFFy

相關問題