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:// | ||