Reference

Domain 4: NoSQL Database Service (20%)

Domain 4 of the 1Z0-1093-25 Oracle AI Cloud Database Services 2025 Professional exam covers Oracle NoSQL Database Cloud Service (NDCS). At 20% of the exam this is one of the heaviest domains, translating to roughly 10 questions out of 50. You must understand the data models, capacity model, security, multi-region replication, query language, and SDK ecosystem.


1. Service Overview and Architecture

Oracle NoSQL Database Cloud Service is a fully managed, serverless NoSQL database running on Gen 2 OCI infrastructure. It provides predictable single-digit millisecond latency at any scale with zero administration of servers, patching, or upgrades. (NDCS Features)

Architecture

NDCS uses a sharded (shared-nothing) architecture that distributes data uniformly across multiple shards in a cluster. Within each shard, storage nodes are replicated across multiple Availability Domains (ADs) or Fault Domains (FDs) to provide high availability, rapid failover, and load balancing. There is zero single point of failure. (Oracle NoSQL Technologies)

Key architectural points:

  • Data is automatically partitioned across shards using the shard key portion of the primary key
  • Rows sharing the same shard key are co-located on the same physical shard
  • Replication across ADs/FDs is transparent; failover is automatic
  • Oracle handles all infrastructure: hardware, software, security patching, monitoring, and upgrades

Responsibility Model

Responsibility Owner
Provisioning, patching, upgrading Oracle
Scaling execution Oracle (customer initiates)
Service health monitoring Oracle
Application health monitoring Customer
Backups and restores Customer
Application-level security Customer
Data encryption (at rest and in transit) Oracle

Source: NDCS Features

Exam trap: Backups are the customer's responsibility. Oracle provides the NoSQL Migrator tool to export data to OCI Object Storage, but scheduling and executing backups is not automatic. This contrasts with Autonomous Database where automatic backups are Oracle-managed.


2. Data Models and Table Types

NDCS supports three data models through a unified table API. (NDCS Features)

Model Description Schema Use Case
Fixed-Schema (Table) Traditional structured tables with predefined column types Rigid; schema changes require ALTER TABLE Relational-like data with known structure
JSON (Document) Schema-less JSON documents stored in a JSON column Flexible; fields can vary per row Semi-structured or evolving data
Key-Value Simple key-value pairs via primary key + single value column Minimal Caching, session stores, simple lookups

Table Types

Type Description
Singleton Table Default. Standard table within a single region. Can be converted to Global Active Table by adding replicas.
Global Active Table Multi-region replicated table with active-active configuration. Created by adding regional replicas to a singleton.
Child Table Hierarchical table declared as child of a parent. Inherits shard key and capacity from parent. Enables ACID transactions across parent-child with writeMultiple API.
Always Free Table Singleton table with fixed capacity (50 RU, 50 WU, 25 GB). Cannot be Global Active. Up to 3 per region. Phoenix region only.

Source: Console Table Creation, NDCS Features

Table Hierarchies (Parent-Child)

Child tables enable data normalization with co-located access:

  • Child rows are stored on the same shard as their parent (inherited shard key)
  • Enables efficient left outer joins between parent and child
  • writeMultiple API provides ACID transactions across parent and child tables
  • Child inherits capacity and pricing model from the top-level parent
  • Child tables count against the tenancy table limit
  • Metrics are aggregated at the parent level only

Source: Console Table Creation

Exam trap: To access a child table, you need privileges on both the child AND the parent. Having INSERT on the child but no privilege on the parent will fail.


3. Supported Data Types

NDCS supports a rich set of data types for fixed-schema columns. (NDCS Reference)

Data Type Description Storage Size (Index) Primary Key Size
STRING Unicode (UTF-8) UTF-8 bytes + 1-4 length bytes UTF-8 bytes + 1 null byte
INTEGER 32-bit integer, variable encoding 1-4 bytes 5 bytes
LONG 64-bit integer, variable encoding 1-8 bytes 10 bytes
FLOAT 32-bit IEEE floating point 4 bytes 5 bytes
DOUBLE 64-bit IEEE floating point 8 bytes 10 bytes
NUMBER Arbitrary-precision signed decimal Variable (expensive) Variable
BINARY Variable-length byte array Number of bytes + size encoding N/A
FIXED_BINARY Fixed-size byte array Exact byte count (no overhead) N/A
BOOLEAN TRUE or FALSE 1 byte N/A
TIMESTAMP UTC point in time (precision 0-9) 3-9 bytes 3-9 bytes
UUID Universally unique identifier (STRING subtype) 16 bytes 19 bytes
ENUM Symbolic tokens from a defined set Small integer (positional) N/A
ARRAY Ordered collection of typed items Variable N/A
MAP Unordered string-keyed pairs Variable (no NULL values) N/A
RECORD Fixed collection of key-value pairs Variable N/A
JSON Any valid JSON data Variable (with metadata overhead) N/A

Source: NDCS Reference

Best practice from Oracle: Use data types in this order of preference: INTEGER, LONG, FLOAT, DOUBLE, NUMBER. Avoid NUMBER unless necessary because it is the most expensive in both storage and processing.

Exam trap: JSON columns carry self-describing metadata overhead per document. Fixed-schema tables add exactly 1 byte overhead per record. If a question asks about storage efficiency, fixed-schema wins over JSON.


4. Table Design: Primary Keys, Shard Keys, and TTL

Primary Key Design

Every table requires a primary key. The primary key uniquely identifies each row and determines how data is distributed across shards.

CREATE TABLE IF NOT EXISTS products (
    product_id STRING,
    category STRING,
    details JSON,
    PRIMARY KEY(SHARD(category), product_id)
)
  • Maximum primary key size: 64 bytes (NDCS Limits)
  • Composite primary keys supported (multiple columns)
  • Primary key columns are ordered; order matters for queries

Shard Key Design

The shard key is a subset of the primary key columns that determines which shard stores a row. Rows with the same shard key value are co-located.

PRIMARY KEY(SHARD(category), product_id)
-- 'category' is the shard key
-- Rows with same category value are co-located

Key shard key principles:

  • Shard key determines data distribution across the cluster
  • Co-located data enables efficient single-partition queries and ACID transactions
  • A query that includes the complete shard key in the WHERE clause executes on a single partition (cheapest query type)
  • Without the shard key, queries fan out to all partitions or all shards (expensive)

Source: Console Table Creation, Capacity Estimation

Exam trap: Choosing a shard key with low cardinality (few distinct values) creates hot spots. Choosing a shard key with extremely high cardinality (e.g., UUID) spreads data evenly but prevents co-located queries. The exam tests understanding of this trade-off.

Time-to-Live (TTL)

TTL specifies how long rows remain accessible before automatic expiration.

CREATE TABLE sensor_data (...) USING TTL 7 days
ALTER TABLE sensor_data USING TTL 30 days
  • Set at table level or overridden per row
  • Units: hours or days
  • Default: 0 (no expiration)
  • Updating table-level TTL does NOT retroactively affect existing rows; applies only to new rows or rows without a row-level override
  • In Global Active Tables, expiration is replicated as an absolute timestamp, so rows expire simultaneously across all regions

Source: NDCS Reference, Global Active Tables


5. Capacity Model: Read Units, Write Units, and Storage

This is the most exam-critical section. Oracle tests capacity calculation knowledge heavily.

Unit Definitions

Unit Definition Rounding
Read Unit (RU) 1 KB of data read per second (eventually consistent) Round up to next KB
Write Unit (WU) 1 KB of data written per second Round up to next KB
Storage 1 GB of stored data Per GB

Source: NDCS Limits, Capacity Estimation

Consistency and Cost

Consistency Model Read Cost Guarantee
Eventual Consistency 1 RU per 1 KB Data may not reflect the most recent write
Absolute Consistency 2 RU per 1 KB (2x cost) Data guaranteed to reflect the most recent write

Exam trap: Absolute consistency reads cost exactly 2x eventual consistency. A 1.5 KB record costs 2 RU (eventual) or 4 RU (absolute). The rounding happens first (1.5 KB rounds to 2 KB = 2 RU), then the consistency multiplier applies (2 RU x 2 = 4 RU for absolute).

Write Cost with Indexes

Secondary indexes add write overhead. When a record is modified:

Write Units = record_size + (1 KB x number_of_indexes_affected)

Example: Updating a 1 KB record in a table with 1 secondary index costs:

  • Old record (1 KB) + New record (1 KB) + Index update (1 KB) = 3 WU for the update
  • Delete operations also consume WU for index cleanup

Source: Capacity Estimation

Additional Cost Factors

Operation Additional Cost
IfAbsent / IfPresent conditional writes +2 RU for the read check
setReturnRow() on write +2x record_size in RU
Batch query overhead ~1 KB per batch boundary (key read)

Provisioned vs. On-Demand Capacity

Aspect Provisioned On-Demand
How it works You set fixed RU, WU, and storage per table Service auto-scales to workload
Max RU per table 40,000 (non-hosted) 10,000 (non-hosted)
Max WU per table 20,000 (non-hosted) 5,000 (non-hosted)
Table limit No special limit Max 3 On-Demand tables per region
Billing Reserved capacity (lower per-unit cost) Pay-per-use (higher per-unit cost)
Use case Predictable, steady workloads Unpredictable or bursty workloads
Mode change Can switch to On-Demand once per day Can switch to Provisioned once per day

Source: NDCS Limits, NDCS Features

Throughput Change Limits

  • Increases: Unlimited per day
  • Decreases: Up to 4 per 24-hour period
  • Mode change (Provisioned to/from On-Demand): Once per day

Exam trap: You can increase provisioned capacity unlimited times, but decreases are limited to 4 per day. This is a common trick question.


6. Service Limits

Limit Non-Hosted Hosted
Max tables per region 30 30 (customizable)
Max columns per table 50 50 (customizable)
Max indexes per table 5 5 (customizable)
Max row size 512 KB 512 KB (customizable)
Max primary key size 64 bytes 64 bytes (customizable)
Max secondary index key size 64 bytes 64 bytes (customizable)
Max table storage 5 TB/tenant 17.5 TB/tenant
Max regional RU (total) 100,000 280,000
Max regional WU (total) 40,000 420,000
Max DDL operations rate 4 per minute 4 per minute
Max WriteMultiple ops 50 per request 50 (customizable)
Max WriteMultiple data 25 MB 25 MB (customizable)
Max query string length 10 KB 10 KB (customizable)
Max table name length 256 characters 256 characters
Max column/index name 64 characters 64 characters
Max schema updates 100 per table 100 per table

Source: NDCS Limits

Most limits are customizable via a Service Limits Update request in the OCI Console.

Exam trap: The default batch limit for query execution is 2,000 read units (~2 MB of data). This can only be decreased, not increased, via query-level options.


7. Always Free Tier

Property Value
Max tables 3 per region
Read capacity 50 RU (fixed, non-changeable)
Write capacity 50 WU (fixed, non-changeable)
Storage 25 GB (fixed, non-changeable)
Capacity mode Provisioned only
Region availability Phoenix only
Global Active Tables Not supported
Conversion Cannot convert to/from regular tables

Inactivity Deletion Policy

Days Inactive Action
30 days Table moves to inactive state; admin notification sent
75 days Reminder notification sent
90 days Table automatically deleted

Reactivation: Any DML operation (get, put, delete on rows) reactivates the table. DDL operations (ALTER TABLE, CREATE INDEX) do NOT count as activity.

Source: NDCS Features

Exam trap: Always Free tables are singleton only (no Global Active Tables), capacity is fixed (cannot be changed), and they are auto-deleted after 90 days of inactivity. DDL operations do not count as activity for preventing deletion.


8. Security Model

Encryption

Layer Method
At rest AES-256 encryption
In transit TLS 1.2 (HTTPS)
Customer-managed keys (CMEK) Supported in Dedicated/Hosted environments only

Source: NDCS Features

IAM Policies

NDCS uses OCI IAM for all access control. Three resource types are controlled independently. (Access Management)

Resource Type Controls
nosql-tables Table DDL: CREATE, ALTER, DROP, MOVE
nosql-rows Data DML: GET, PUT, DELETE, QUERY
nosql-indexes Index DDL: CREATE INDEX, DROP INDEX
nosql-family Umbrella covering all three above

Verbs and Permissions

Verb nosql-tables nosql-rows nosql-indexes
inspect List tables N/A List indexes
read Get table metadata Read rows Get index metadata
use Alter table limits Read/write rows N/A
manage Full DDL control Full DML control Full index control

Policy Syntax Examples

-- Tenancy-wide full access
allow group Admins to manage nosql-family in tenancy

-- Compartment-scoped read access
allow group Analytics to read nosql-rows in compartment Production

-- Table-specific row access (row-level security)
allow group DevTeam to manage nosql-rows in compartment Dev
    where target.nosql-table.name = 'customer'

-- Specific permission control
allow group Ops to manage nosql-tables in compartment Dev
    where any {request.permission = 'NOSQL_TABLE_CREATE',
               request.permission = 'NOSQL_TABLE_DROP'}

Cross-Tenancy Access

NDCS supports cross-tenancy access using three policy verbs:

Verb Tenancy Purpose
Endorse Source Declares what source group can do in other tenancies
Admit Destination Grants access to groups from other tenancies
Define Both Assigns aliases to tenancy/group OCIDs

Source: Access Management

Auditing

Oracle logs all DDL API calls to NoSQL Database tables. Logs are available to customers for audit purposes. (NDCS Features)

Exam trap: Row-level security is implemented via IAM policy conditions (e.g., where target.nosql-table.name = 'tablename'), not through a separate row-level security mechanism inside the database. This is fundamentally different from relational database row-level security (VPD/FGAC).


9. Secondary Indexes

NDCS supports up to 5 secondary indexes per table (customizable). (NDCS Limits)

-- Index on a fixed-schema column
CREATE INDEX IF NOT EXISTS idx_category ON products (category)

-- Index on a JSON field (must specify type)
CREATE INDEX IF NOT EXISTS idx_screen ON products
    (details.display.screenSize AS STRING)

Index Characteristics

Property Detail
Max per table 5 (customizable)
Max index key size 64 bytes (customizable)
JSON field indexing Supported; must cast with AS type
Index name max length 64 characters
Write cost impact Each affected index adds ~1 KB WU per write
Covering index Query answered entirely from index without table row fetch
Creation rate Subject to DDL rate limit (4 per minute per region)

Query Distribution with Indexes

Scenario Distribution Cost
Query includes complete shard key SINGLE_PARTITION Lowest cost
Query uses primary key index, no shard key ALL_PARTITIONS Medium cost
Query uses secondary index, no shard key ALL_SHARDS Higher cost
Full table scan ALL_PARTITIONS Highest cost

Source: NDCS Reference, Capacity Estimation

Exam trap: Index lookups themselves are free (no separate RU charge for the index scan), but reading the resulting rows consumes RU normally. A "covering index" query avoids the row fetch entirely, making it the cheapest indexed query.


10. Query Language

NDCS uses a SQL-like query language (not full SQL). (NDCS Reference)

Supported Syntax

SELECT <expression>
FROM <table_name>
[WHERE <expression>]
[GROUP BY <expression>]
[ORDER BY <expression> [ASC|DESC]]
[LIMIT <number>]
[OFFSET <number>]

Supported Aggregate Functions

  • count(*), count(expr)
  • sum(expr)
  • avg(expr)
  • min(expr)
  • max(expr)

Built-in Functions

  • modification_time($row) -- row modification timestamp
  • expiration_time($row) -- row TTL expiration time
  • creation_time($row) -- row creation timestamp
  • remaining_days($row) -- days until TTL expiration

UPDATE Syntax

UPDATE products $p
    SET TTL 30 DAYS
    WHERE id = 'prod_123'
    RETURNING remaining_days($p) AS Expires

What is NOT Supported

  • JOINs (except parent-child left outer joins via table hierarchies)
  • Subqueries
  • CASE expressions in SELECT clause
  • Nested aggregate functions
  • DESCRIBE / SHOW TABLE statements
  • Full-text indexes
  • User/role management within the database

Source: NDCS Reference

Exam trap: NDCS query language looks like SQL but has significant limitations. No JOINs between unrelated tables, no subqueries, no CASE in SELECT. The only join type is a left outer join between parent and child tables in a hierarchy.


11. Global Active Tables (Multi-Region Replication)

Global Active Tables provide active-active multi-region replication. Any singleton table can become a Global Active Table by adding a regional replica. (Global Active Tables)

How It Works

  1. Create a singleton table in a region
  2. Freeze the table schema (change state from Mutable to Frozen)
  3. Add a regional table replica in another region
  4. Existing data is copied to the new replica (tracked as initialization percentage)
  5. Once initialization reaches 100%, DML is allowed on the new replica
  6. All subsequent writes replicate asynchronously across all regions

What Gets Replicated

  • Table schema and secondary indexes
  • All row data
  • Storage capacity (identical across all replicas)
  • Table default TTL (replicated as absolute timestamp)
  • Read and write capacity defaults (can be customized per region)

Conflict Resolution

Last-writer-wins based on timestamp: When multiple regions update the same primary key, the write with the latest timestamp wins. Same rule applies to TTL updates.

Scope of Operations

Operation Scope Propagation
Add/Drop Index Global All replicas
Change storage capacity Global All replicas
Change table TTL Global All replicas
Change read units Local Only target region
Change write units Local Only target region
Change capacity mode Local Only target region
OCI tags Local Not replicated

Schema Changes on Global Active Tables

To modify the schema of a Global Active Table:

  1. Drop ALL regional replicas
  2. Alter the table schema
  3. Re-add regional replicas (data automatically re-populated)

Best practice: Include at least one JSON column to allow schema flexibility without needing to drop replicas.

Identity Columns and Global Active Tables

  • Standard GENERATED ALWAYS AS IDENTITY is NOT suitable for Global Active Tables (not guaranteed unique across regions)
  • Use UUID as primary key instead for global uniqueness

Required IAM Permissions

Action Sender Region Existing Receiver Regions New Receiver Region
Add replica NOSQL_TABLE_ALTER NOSQL_TABLE_ALTER NOSQL_TABLE_CREATE
Drop replica NOSQL_TABLE_ALTER NOSQL_TABLE_ALTER NOSQL_TABLE_DROP
Create index NOSQL_INDEX_CREATE in all regions -- --
Update limits/TTL NOSQL_TABLE_ALTER in all regions -- --

Limitations

  • Schema must be frozen before adding replicas
  • Storage capacity must be identical across all regions
  • ACID transactions are local to the region where the write occurred
  • Eventual consistency for cross-region reads
  • Always Free tables cannot be Global Active Tables
  • Dedicated/Hosted environments do not support Global Active Tables
  • Compartment with the same name must exist in the receiver region

Source: Global Active Tables

Exam trap: Schema must be FROZEN before adding replicas. To change the schema, you must drop ALL replicas first, alter the table, then re-add replicas. This is a disruptive operation. The exam will test whether you know this requirement.

Exam trap: ACID transactions in Global Active Tables are local to one region only. Cross-region consistency is eventual. If a question asks about transaction guarantees in multi-region, the answer is "local ACID, eventual cross-region."


12. Table States and Lifecycle

State Description
CREATING Table being provisioned; not ready
ACTIVE Stable, ready for use
UPDATING Schema evolution, limit changes, or index operations in progress
DROPPING Table being deleted; inaccessible
DROPPED Deleted; name can be reused

Source: NDCS Reference


13. SDK and Development Ecosystem

NoSQL Database SDKs

NDCS provides dedicated SDKs in six languages. These are distinct from the general OCI SDKs and provide richer NoSQL-specific functionality. (NoSQL SDK Drivers)

Language Package Repository
Java com.oracle.nosql.sdk:nosqldriver (Maven) GitHub
Python borneo (PyPI), requires oci for cloud auth GitHub
Node.js oracle-nosqldb (npm) GitHub
Go github.com/oracle/nosql-go-sdk/nosqldb GitHub
C# / .NET Oracle.NoSQL.SDK (NuGet) GitHub
Rust oracle-nosql-rust-sdk (crates.io) GitHub

Framework Integration

  • Spring Data: Jakarta NoSQL and Eclipse TopLink compatibility
  • OCI SDKs: REST-based alternative (Java, Python, JS, .NET, Go, Ruby, PL/SQL) with more limited NoSQL features

Key Advantage of NoSQL SDKs over OCI SDKs

NoSQL SDKs work with all three deployment targets using the same API:

  1. Oracle NoSQL Database Cloud Service (production)
  2. Oracle NoSQL Database on-premises (Enterprise/Community Edition)
  3. Oracle NoSQL Cloud Simulator (local development)

Oracle NoSQL Cloud Simulator

The Cloud Simulator is a locally deployable instance that emulates the full NDCS API for development and testing:

  • Requires Java 8 or higher
  • Runs on localhost (default port 8080)
  • Downloaded separately from the Oracle NoSQL OTN download page
  • All SDKs can connect to it with simple configuration changes
  • Ideal for CI/CD pipelines and local development without cloud costs

Source: NoSQL SDK Drivers

OCI Management Interfaces

Interface Capabilities
OCI Console Create/manage tables, view metrics, run queries, manage indexes
OCI CLI oci nosql commands for all table and data operations
REST API Full programmatic access to NDCS control and data planes
Terraform OCI provider supports NoSQL table provisioning
Cloud Shell Browser-based CLI with pre-configured OCI credentials

Authentication Methods

Method Use Case
OCI Configuration File (~/.oci/config) Developer workstations, CI/CD
Instance Principal Applications running on OCI Compute
Delegation Token Delegated access scenarios
Session Token Temporary sessions
OKE Workload Identity Applications in Oracle Kubernetes Engine

Source: NDCS Overview


14. Backup and Restore

NDCS does not provide automatic backups. Backup and restore are customer responsibilities.

Approach

  • Use the NoSQL Database Migrator tool to export table data to JSON or Parquet format
  • Export targets: local files, OCI Object Storage, or AWS S3
  • Import from: JSON, Parquet, CSV, MongoDB-formatted JSON, DynamoDB-formatted JSON
  • The migrator operates at table granularity (one table per migration task)
  • readUnitsPercent and writeUnitsPercent parameters control what percentage of provisioned capacity the migration uses (default: 90%)

Constraints During Migration

  • NoSQL Migrator does not lock tables
  • Avoid DML/DDL operations on the table during migration
  • Avoid topology changes during migration

Source: NDCS Overview

Exam trap: Unlike Autonomous Database, NDCS has no automatic backup. You must implement your own backup strategy using the Migrator tool. This is a key differentiator the exam may test.


15. Integration with OCI Services

OCI Service Integration
OCI Functions Serverless compute triggered by events; SDKs connect to NDCS
OCI Streaming Real-time data ingestion pipelines feeding into NDCS
OCI Events Event rules can trigger actions when NDCS DDL operations occur
OCI Object Storage Export/import target for Migrator tool backups
API Gateway Front NoSQL operations with REST endpoints
GoldenGate Real-time replication to/from NoSQL
Terraform/Resource Manager Infrastructure-as-code provisioning

Oracle logs all DDL API calls for audit purposes, which integrates with OCI Audit service.


16. Dedicated (Hosted) Environment

For demanding workloads, NDCS offers a dedicated per-customer environment with higher limits. (NDCS Features)

Property Non-Hosted (Standard) Hosted (Dedicated)
Max RU (all tables) 100,000 per region 280,000
Max WU (all tables) 40,000 per region 420,000
Max storage 5 TB per tenant 17.5 TB
Max RU per table 40,000 100,000
Max WU per table 20,000 40,000
Max storage per table 5 TB 5 TB
Pricing Per-unit (RU/WU/GB) Fixed monthly cost
CMEK support No Yes
Global Active Tables Yes No
Endpoint format Standard OCI <tenancyName>.nosql.<region>.<realm>

Exam trap: Dedicated/Hosted environments do NOT support Global Active Tables. If a question combines "dedicated" and "multi-region replication," the answer involves this limitation.


17. Comparison with Other NoSQL Services (Context Only)

Feature Oracle NDCS AWS DynamoDB Azure Cosmos DB
Data models Fixed-schema, JSON, Key-Value Key-Value, Document Multi-model (SQL, MongoDB, Cassandra, Gremlin, Table)
Capacity model RU/WU/GB RCU/WCU/GB RU/s
Consistency Eventual, Absolute Eventual, Strong 5 levels (Strong, Bounded Staleness, Session, Consistent Prefix, Eventual)
Multi-region Global Active Tables Global Tables Multi-region writes
SQL support SQL-like (limited) PartiQL Full SQL API
Free tier 50 RU, 50 WU, 25 GB (Phoenix) 25 RCU, 25 WCU, 25 GB 1000 RU/s, 25 GB
Parent-child tables Yes (table hierarchies) No No
Max item size 512 KB 400 KB 2 MB

Exam trap: Oracle NDCS absolute consistency is roughly equivalent to DynamoDB strong consistency (both 2x read cost). But Cosmos DB has five consistency levels, which Oracle does not match. The exam will not test other cloud providers directly, but understanding the terminology helps eliminate wrong answers.


18. Quick-Reference: Key Numbers to Memorize

Metric Value
Absolute consistency read cost 2x eventual
Max tables per region 30
Max indexes per table 5
Max primary key size 64 bytes
Max row size 512 KB
Max columns per table 50
Max WriteMultiple operations 50 per request
Max DDL operations 4 per minute per region
Throughput decreases per day 4
Throughput increases per day Unlimited
Mode change (Provisioned/On-Demand) Once per day
On-Demand max RU per table 10,000
On-Demand max WU per table 5,000
On-Demand max tables per region 3
Always Free RU/WU/Storage 50 / 50 / 25 GB
Always Free max tables 3 (Phoenix only)
Always Free inactivity deletion 90 days
Fixed-schema overhead per record 1 byte
Query batch default limit 2,000 RU

References