Bird
Raised Fist0
DynamoDBquery~10 mins

First table creation in DynamoDB - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - First table creation
Start
Define Table Name
Define Primary Key
Set Read/Write Capacity
Send CreateTable Request
Wait for Table Creation
Table Ready
End
This flow shows the steps to create a DynamoDB table: naming it, defining keys, setting capacity, sending the request, and waiting until the table is ready.
Execution Sample
DynamoDB
aws dynamodb create-table \
  --table-name Music \
  --attribute-definitions AttributeName=Artist,AttributeType=S \
  --key-schema AttributeName=Artist,KeyType=HASH \
  --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
This command creates a DynamoDB table named 'Music' with 'Artist' as the primary key and sets read/write capacity.
Execution Table
StepActionInput/ParameterResult/State
1Define Table NameMusicTable name set to 'Music'
2Define AttributeArtist (String)Attribute 'Artist' defined as String
3Define Key SchemaArtist as HASH keyPrimary key set to 'Artist'
4Set Provisioned ThroughputRead=5, Write=5Capacity set to 5 read and 5 write units
5Send CreateTable RequestAll parametersRequest sent to DynamoDB service
6Wait for Table CreationN/ATable status: CREATING
7Table ReadyN/ATable status: ACTIVE
8EndN/ATable 'Music' is ready to use
💡 Table creation completes when status changes to ACTIVE
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4After Step 7
TableNameundefinedMusicMusicMusicMusicMusic
Attributesemptyempty[Artist: String][Artist: String][Artist: String][Artist: String]
KeySchemaemptyemptyempty[Artist: HASH][Artist: HASH][Artist: HASH]
ProvisionedThroughputundefinedundefinedundefinedRead=5, Write=5Read=5, Write=5Read=5, Write=5
TableStatusundefinedundefinedundefinedundefinedCREATINGACTIVE
Key Moments - 3 Insights
Why do we need to define the primary key before creating the table?
The primary key uniquely identifies each item in the table. Without it, DynamoDB cannot organize or retrieve data efficiently. See execution_table step 3 where the key schema is set.
What does 'Provisioned Throughput' mean and why is it important?
Provisioned throughput sets how many reads and writes per second the table can handle. It affects performance and cost. Step 4 in the execution_table shows setting these values.
Why do we wait after sending the create request?
Table creation is asynchronous. DynamoDB needs time to allocate resources. Step 6 and 7 show waiting until the table status becomes ACTIVE.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the table status right after sending the create request?
ACREATING
BACTIVE
CDELETING
DUPDATING
💡 Hint
Check the 'TableStatus' column in variable_tracker after Step 5 and Step 6
At which step is the primary key defined in the execution_table?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look for 'Define Key Schema' action in the execution_table
If we change the read capacity units from 5 to 10, which step in the execution_table changes?
AStep 3
BStep 4
CStep 2
DStep 6
💡 Hint
Provisioned throughput is set in Step 4
Concept Snapshot
Create a DynamoDB table by:
- Naming the table
- Defining attributes and primary key
- Setting read/write capacity
- Sending create request
- Waiting until status is ACTIVE
Use AWS CLI or SDK commands.
Full Transcript
To create your first DynamoDB table, start by choosing a name for your table. Then define the attributes, especially the primary key which uniquely identifies each item. Next, set the read and write capacity units to control performance and cost. Send the create table request to DynamoDB. The table creation happens asynchronously, so wait until the table status changes from CREATING to ACTIVE. Once active, your table is ready to store data. This process ensures your table is properly set up and ready for use.

Practice

(1/5)
1. What is the minimum required element when creating a DynamoDB table?
easy
A. Table name and global secondary index
B. Table name and secondary index
C. Table name and primary key
D. Provisioned throughput only

Solution

  1. Step 1: Understand DynamoDB table basics

    Every DynamoDB table must have a unique name and a primary key to identify items.
  2. Step 2: Identify required elements for creation

    Secondary indexes and throughput settings are optional or have defaults, but primary key and table name are mandatory.
  3. Final Answer:

    Table name and primary key -> Option C
  4. Quick Check:

    Minimum required = Table name + primary key [OK]
Hint: Always specify table name and primary key first [OK]
Common Mistakes:
  • Forgetting to define the primary key
  • Confusing secondary index as mandatory
  • Omitting the table name
2. Which AWS CLI command correctly creates a DynamoDB table named Users with a primary key UserId of type string?
easy
A. aws dynamodb create-table --table-name Users --attribute-definitions AttributeName=UserId,AttributeType=S --key-schema AttributeName=UserId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
B. aws dynamodb create-table --name Users --key UserId --type S
C. aws dynamodb create-table --table Users --primary-key UserId String
D. aws dynamodb make-table --table-name Users --key UserId --attribute-type S

Solution

  1. Step 1: Check AWS CLI syntax for create-table

    The correct command uses 'aws dynamodb create-table' with options: --table-name, --attribute-definitions, --key-schema, and --provisioned-throughput.
  2. Step 2: Verify option correctness

    aws dynamodb create-table --table-name Users --attribute-definitions AttributeName=UserId,AttributeType=S --key-schema AttributeName=UserId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 correctly specifies attribute name and type, key schema with HASH key, and provisioned throughput. Others use invalid or incomplete syntax.
  3. Final Answer:

    aws dynamodb create-table --table-name Users --attribute-definitions AttributeName=UserId,AttributeType=S --key-schema AttributeName=UserId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 -> Option A
  4. Quick Check:

    Correct CLI syntax = aws dynamodb create-table --table-name Users --attribute-definitions AttributeName=UserId,AttributeType=S --key-schema AttributeName=UserId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 [OK]
Hint: Use full AWS CLI syntax with attribute-definitions and key-schema [OK]
Common Mistakes:
  • Using wrong command name like make-table
  • Missing attribute-definitions or key-schema
  • Incorrect option names like --name instead of --table-name
3. Given this AWS CLI command, what will be the primary key type of the table?
aws dynamodb create-table --table-name Products --attribute-definitions AttributeName=ProductId,AttributeType=N --key-schema AttributeName=ProductId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
medium
A. String
B. Binary
C. Boolean
D. Number

Solution

  1. Step 1: Identify attribute type in attribute-definitions

    The attribute ProductId is defined with AttributeType=N, which means Number.
  2. Step 2: Confirm key schema uses ProductId as HASH key

    The key schema uses ProductId as the partition key, so its type is Number.
  3. Final Answer:

    Number -> Option D
  4. Quick Check:

    AttributeType=N means Number [OK]
Hint: AttributeType=N means Number, S means String [OK]
Common Mistakes:
  • Confusing N with String type
  • Ignoring attribute-definitions
  • Assuming default type is String
4. You run this command but get an error:
aws dynamodb create-table --table-name Orders --attribute-definitions AttributeName=OrderId --key-schema AttributeName=OrderId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1

What is the likely cause?
medium
A. Missing KeyType in key-schema
B. Missing AttributeType in attribute-definitions
C. Provisioned throughput values are too low
D. Table name is invalid

Solution

  1. Step 1: Check attribute-definitions syntax

    The attribute-definitions must include AttributeType (S, N, or B). Here, AttributeType is missing.
  2. Step 2: Verify other parts

    KeyType is present, throughput values are valid, and table name is valid. So the error is due to missing AttributeType.
  3. Final Answer:

    Missing AttributeType in attribute-definitions -> Option B
  4. Quick Check:

    AttributeType required in attribute-definitions [OK]
Hint: Always specify AttributeType with AttributeName [OK]
Common Mistakes:
  • Omitting AttributeType in attribute-definitions
  • Confusing KeyType with AttributeType
  • Assuming throughput values cause error
5. You want to create a DynamoDB table named Employees with a composite primary key: EmployeeId (string) as partition key and Department (string) as sort key. Which command correctly creates this table?
hard
A. aws dynamodb create-table --table-name Employees --attribute-definitions AttributeName=EmployeeId,AttributeType=S AttributeName=Department,AttributeType=S --key-schema AttributeName=EmployeeId,KeyType=HASH AttributeName=Department,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
B. aws dynamodb create-table --table-name Employees --attribute-definitions EmployeeId=S Department=S --key-schema EmployeeId=HASH Department=RANGE --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
C. aws dynamodb create-table --table Employees --attributes EmployeeId:string Department:string --keys EmployeeId:partition Department:sort --throughput 5 5
D. aws dynamodb create-table --table-name Employees --attribute-definitions AttributeName=EmployeeId,AttributeType=S --key-schema AttributeName=EmployeeId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5

Solution

  1. Step 1: Define attribute-definitions for both keys

    Both EmployeeId and Department must be defined with AttributeType=S.
  2. Step 2: Define key-schema with HASH and RANGE keys

    EmployeeId is partition key (HASH), Department is sort key (RANGE).
  3. Step 3: Check command syntax

    aws dynamodb create-table --table-name Employees --attribute-definitions AttributeName=EmployeeId,AttributeType=S AttributeName=Department,AttributeType=S --key-schema AttributeName=EmployeeId,KeyType=HASH AttributeName=Department,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 correctly uses --attribute-definitions and --key-schema with proper syntax and throughput.
  4. Final Answer:

    aws dynamodb create-table --table-name Employees --attribute-definitions AttributeName=EmployeeId,AttributeType=S AttributeName=Department,AttributeType=S --key-schema AttributeName=EmployeeId,KeyType=HASH AttributeName=Department,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 -> Option A
  5. Quick Check:

    Composite key needs both keys in attribute-definitions and key-schema [OK]
Hint: List all keys in attribute-definitions and key-schema [OK]
Common Mistakes:
  • Defining only partition key without sort key
  • Incorrect key-schema syntax
  • Missing attribute definition for sort key