Skip to content

DynamoDB

Default profile points to staging account (468036072962, us-east-1).

Quick Reference

# List all tables
aws dynamodb list-tables --output table

# Describe a table (schema, GSIs, stream, item count)
aws dynamodb describe-table --table-name staging-EcomIndexSettingsTable

# Scan first N items
aws dynamodb scan --table-name staging-EcomIndexSettingsTable --max-items 5

# Query by partition key
aws dynamodb query --table-name staging-EcomIndexSettingsTable \
  --key-condition-expression "pk = :pk" \
  --expression-attribute-values '{":pk": {"S": "fnqm9psx"}}'

# Query with sort key prefix
aws dynamodb query --table-name staging-EcomIndexSettingsTable \
  --key-condition-expression "pk = :pk AND begins_with(sk, :skp)" \
  --expression-attribute-values '{":pk": {"S": "fnqm9psx"}, ":skp": {"S": "INDEX#"}}'

# Query a GSI
aws dynamodb query --table-name staging-EcomIndexerJobsTable \
  --index-name GSI_JobLookup \
  --key-condition-expression "job_id = :jid" \
  --expression-attribute-values '{":jid": {"S": "some-job-id"}}'

# Check DynamoDB Streams (for settings exporter issues)
aws dynamodbstreams list-streams --table-name staging-EcomIndexSettingsTable

Table Naming Convention

{env_prefix}-{TableName} where env_prefix is:

  • Dev: dev-{branch} (e.g., dev-oliver-EcomIndexSettingsTable)
  • Staging: staging
  • Preprod: preprod
  • Prod: prod (account 023568249301)

Exception: UsersAccountsTable has no prefix in staging (shared globally).

Parsing DynamoDB Output

# Human-readable scan output
aws dynamodb scan --table-name staging-ShopifyEntitiesTable --max-items 5 \
  --output json | python3 -c "
import sys, json
for i in json.load(sys.stdin).get('Items', []):
    print({k: list(v.values())[0] for k, v in i.items()})
"

What to Look For

Symptom Check
Missing index settings Scan EcomIndexSettingsTable for the account's pk
Stale KV data Check stream status on EcomIndexSettingsTable (settings exporter reads the stream)
Indexing job stuck Query EcomIndexerJobsTable GSI_JobsByStatus for the shop_id
Missing user/account Scan UsersAccountsTable for the pk
Fork not progressing Query IndexForksTable for the account pk
Merchandising not syncing Scan MerchandisingTable for the account pk