Utility tool to calculate the size of DynamoDB items.
Utility tool to gain item size information in Bytes for DynamoDB JSON items. This allows us to understand capacity consumption and ensure items are under the 400KB DynamoDB item size limit.
DynamoDB SDKs cater for both DDB-JSON and Native JSON. This package can be used to calculate both. By default, it uses DDB-JSON but you can alter methods to take Native JSON by passing boolean value true
as a parameter to the method:
CalculateSize(item, true)
OS X & Linux:
npm install ddb-calc --save
const CALC = require('ddb-calc')
const item = {
"Id": {
"N": "101"
},
"Title": {
"S": "Book 101 Title"
},
"ISBN": {
"S": "111-1111111111"
},
"Authors": {
"L": [
{
"S": "Author1"
}
]
},
"Price": {
"N": "2"
},
"Dimensions": {
"S": "8.5 x 11.0 x 0.5"
},
"PageCount": {
"N": "500"
},
"InPublication": {
"BOOL": true
},
"ProductCategory": {
"S": "Book"
}
}
const size = CALC.CalculateSize(item);
{
rcu: 1,
wcu: 1,
size: 137 // in Bytes
}
const isValid = CALC.IsUnderLimit(item);
const item = {
"Id": 101,
"Title": "Book 101 Title",
"ISBN": "111-1111111111",
"Authors": [
"Author1"
],
"Price": 2,
"Dimensions": "8.5 x 11.0 x 0.5",
"PageCount": 500,
"InPublication": true,
"ProductCategory": "Book"
}
const size = CALC.CalculateSize(item, true);
{
rcu: 1,
wcu: 1,
size: 137 // in Bytes
}
const isValid = CALC.IsUnderLimit(item, true);
- 0.0.4
- Alter: Native JSON now supported by bool value:
CalculateSizeJson(item, true)
- Alter: Native JSON now supported by bool value:
- 0.0.3
- ADD: Added native JSON functions
CalculateSizeJson()
andIsUnderLimitJson()
- ADD: Added native JSON functions
- 0.0.2
- ADD: Added
marshalling
capability for native JSON
- ADD: Added
- 0.0.1
- The first proper release
- ADD: Added
isUnderLimit()
function
- 0.0.0
- Work in progress
- Fork it (https://github.com/awslabs/amazon-dynamodb-tools/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request