cloud:aws:dynamodb
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| cloud:aws:dynamodb [2023/11/01 07:13] – removed - external edit (Unknown date) 127.0.0.1 | cloud:aws:dynamodb [2023/11/01 07:13] (current) – ↷ Page moved from business_process_management:camunda:cloud:aws:dynamodb to cloud:aws:dynamodb skipidar | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ===== Dynamo DB ===== | ||
| + | |||
| + | === Data === | ||
| + | |||
| + | The following table lists the data types you can use with PartiQL for DynamoDB. | ||
| + | |||
| + | | Boolean | '' | ||
| + | | Binary | '' | ||
| + | | List | '' | ||
| + | | Map | '' | ||
| + | | Null | '' | ||
| + | | Number | '' | ||
| + | | Number Set | ''<< | ||
| + | | String Set | ''<<' | ||
| + | | String | ''' | ||
| + | |||
| + | < | ||
| + | INSERT INTO TypesTable value {' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Indexing === | ||
| + | |||
| + | | Partition Key \\ \\ (alias "Hash Key" | A column, chosen to be hashed, to distribute data on DB-nodes. \\ \\ This is part of the reason DynamoDB is so scalable. Because it can hash your data inputs into an arbitrary number of storage nodes \\ \\ https:// | ||
| + | | Sort Key \\ \\ (alias "Range Key") |< | ||
| + | |||
| + | By using a Sort key, we’re also able to perform what I call “range-like” queries on our Sort Key values. | ||
| + | |||
| + | * = (equal to) | ||
| + | * <= (less than equal to) | ||
| + | * >= (greater than equal to) | ||
| + | * > (greater than) | ||
| + | * between | ||
| + | * begins with | ||
| + | * sort ascending / descending | ||
| + | </ | ||
| + | | Composite primary Key | Partition key + Sort Key | | ||
| + | | Local Secondary Indexes \\ \\(LSI) |< | ||
| + | Local Secondary Index is like an **additional sort-key**. \\ | ||
| + | **Relies on Partition Key**. \\ | ||
| + | You can have **max. 5 of LSI**. | ||
| + | |||
| + | * partitionKey+sortKey1 | ||
| + | * partitionKey+sortKey2 | ||
| + | * .. partitionKey+sortKey6. | ||
| + | |||
| + | https:// | ||
| + | |||
| + | Facts: | ||
| + | * Limit you to only **10GB of data per Partition Key**. | ||
| + | * Unlike GSIs, they **share throughput with base table**. \\ \\ If you query for data using LSI, the usage will be calculated against capacity of the underlying table and its base index. | ||
| + | * They have to be **specified at table creation**. you can't add or remove them after provisioning the table | ||
| + | |||
| + | </ | ||
| + | | Global Secondary Indexes \\ \\ (GSI) |< | ||
| + | DynamoDB global secondary index is a type of index containing a **partition key** and a **sort key different from the base table' | ||
| + | |||
| + | It is known as the **" | ||
| + | |||
| + | {{https:// | ||
| + | </ | ||
| + | | Sparse index |< | ||
| + | Sparse Index is a **special type of GSI** that allows you to **index only a subset of the collection** by **indexing an attribute that is not present on all** the items. | ||
| + | |||
| + | This technique is useful to **quickly query for a set of items that have a specific attribute value**, e.g. only rows that have an attribute deletedAt defined. | ||
| + | |||
| + | To create a sparse index, make sure that **only items that should be in that index** - **have a value** of that index-sort-key | ||
| + | |||
| + | {{https:// | ||
| + | </ | ||
| + | | Inverted index |< | ||
| + | Inverted Index is a GSI that is basically a primary key but inversed - table' | ||
| + | |||
| + | {{https:// | ||
| + | </ | ||
| + | |||
| + | === QA === | ||
| + | |||
| + | **Question: | ||
| + | When to use this one, when to use a relational DB? | ||
| + | |||
| + | |||
| + | **Answer:** | ||
| + | The Dynamo DB has a limited indexing-ability | ||
| + | |||
| + | |||
| + | Glossary: | ||
| + | |||
| + | |Term|Value| | ||
| + | |Term|Value| | ||
| + | |primary key|Value| | ||
| + | |sort key|Value| | ||
| + | |Global secondary index|Value| | ||
| + | |Local secondary index|Value| | ||
| + | |Term|Value| | ||
| + | |||
| + | |||
| + | === Query vs Scan === | ||
| + | |||
| + | https:// | ||
| + | |||
| + | {{https:// | ||
