Monday, August 22, 2016

Install a Local Instance of AWS DynamoDB

STEP 1:  Press Command+Space and type Terminal and press enter/return key.
STEP 2:  Install Brew(If you don't already have it installed.)  Run this command in the Terminal app.

ruby -e "$(curl -fsSL" < /dev/null 2> /dev/null
and press enter/return key.
Wait for the command to finish.
STEP 3:  Use Brew to install and download dynamoDB so that you can run it locally.
brew install dynamodb-local

Launch your DynamoDB local instance like this:
To have start dynamodb-local now and restart at login as a background service using brew services:
  brew services start dynamodb-local
Or, if you don't want/need a background service you can just run:

You can then access a JS Shell in a browser such as Chrome:
URL to hit the Javascript shell for your locally running DynamoDB instance:

This is what you will see what you load up your DynamoDB Shell.  If you see this, then you are successfully running a local instance of DynamoDB!

AWS Local DynamoDB Javascript Shell in Browser
AWS Local DynamoDB Javascript Shell in Browser

Common DynamoDB Concepts
  • Table:  A collection of data
  • Items: An item is a group of attributes that is uniquely identifiable among all of the other items.
  • Attributes: An attribute is a fundamental data element, something that does not need to be broken down any further.
  • Primary Key
    • Partition Key:  Composed of one attribute known as the partition key
    • Partition Key and Sort Key: Composite primary key, composed of two attributes.

  • Number:  String
    • Example:  "N": "123.45"
  • String:  String
    • Example:  "S": "Hello"
  • Binary:  Base64-encoded binary data
    • Example:  "B": "dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk"
  • Boolean:  Boolean
    • Example:  "BOOL": true
  • Null:  Boolean
    • Example:  "NULL": true
  • String Set:  Array of Strings
    • Example:  "SS": ["Giraffe", "Hippo" ,"Zebra"]
  • Number Set:  Array of Strings
    • Example:  "NS": ["42.2", "-19", "7.5", "3.14"]
  • Binary Set:  Array of Base64-encoded binary data
    • Example:  "BS": ["U3Vubnk=", "UmFpbnk=", "U25vd3k="]

  • List: array of AttributeValue objects
    • Example:  "L": ["Cookies", "Coffee", 3.14159]
  • Map:  String to AttributeValue object map
    • Example:  "M": {"Name": {"S": "Joe"}, "Age": {"N": "35"}}