10 GB per partition. If table size or Read capacity or Writ capacity (for example 10000 Unit) exceeds 10 GB, it creates another partition.
one write = minimum one WCU even if it is less than 4 KB
one strongly consistent read = one RCU
two eventually read = one RCU
Recommendation is to have 1000 WCU and 3000 RCU per partition. Distribute read and write in such a way that it is equally distributed among all partition and any partition should not cross recommended WCU and RCU.
Table can be scanned or query. Scanned is inefficient
Query can be done on Partition Key alone or combination of Partition Key and Sort key.
Query can be done on Local Index and Global index as well
Local Index can be defined using same Partition Key and different Sort key. It can be defined only at the time of table creation.
Global Index can be defined using different Partition Key and different Sort key. It can be defined at any time.
Filter functionality on dynamo db doesn't reduce the read capacity.
When you create a DynamoDB table, auto scaling is the default capacity setting, but you can also enable auto scaling on any table that does not have it active. Behind the scenes, DynamoDB auto scaling uses a scaling policy in Application Auto Scaling. To configure auto scaling in DynamoDB, you set the minimum and maximum levels of read and write capacity in addition to the target utilization percentage. Auto scaling uses Amazon CloudWatch to monitor a table’s read and write capacity metrics. To do so, it creates CloudWatch alarms that track consumed capacity. The upper threshold alarm is triggered when consumed reads or writes breach the target utilization percent for two consecutive minutes. The lower threshold alarm is triggered after traffic falls below the target utilization minus 20 percent for 15 consecutive minutes. When an alarm is triggered, CloudWatch initiates auto scaling activity, which checks the consumed capacity and updates the provisioned capacity of the table. For example, if you set the read capacity units (RCUs) at 100 and the target utilization to 80 percent, auto scaling increases the provisioned capacity when utilization exceeds 80 RCUs for two consecutive minutes, or decreases capacity when consumption falls below 60 RCUs (80 percent minus 20 percent) for fifteen minutes.
The following steps summarize the auto scaling process as shown:
You create an Application Auto Scaling policy for your DynamoDB table.
DynamoDB publishes consumed capacity metrics to Amazon CloudWatch.
If the table's consumed capacity exceeds your target utilization (or falls below the target) for a specific length of time, Amazon CloudWatch triggers an alarm. You can view the alarm on the console and receive notifications using Amazon Simple Notification Service (Amazon SNS).
The CloudWatch alarm invokes Application Auto Scaling to evaluate your scaling policy.
Application Auto Scaling issues an UpdateTable request to adjust your table's provisioned throughput.
DynamoDB processes the UpdateTable request, dynamically increasing (or decreasing) the table's provisioned throughput capacity so that it approaches your target utilization.
Global tables build on the global Amazon DynamoDB footprint to provide you with a fully managed, multi-region, and multi-active database that delivers fast, local, read and write performance for massively scaled, global applications. Global tables replicate your DynamoDB tables automatically across your choice of AWS Regions.
DynamoDB global tables are ideal for massively scaled applications with globally dispersed users. In such an environment, users expect very fast application performance. Global tables provide automatic multi-active replication to AWS Regions worldwide. They enable you to deliver low-latency data access to your users no matter where they are located.