Skip to content

DynamoDB

DynamoDB / Aurora: sparse and partial indexes

By Franck Pachot . In a previous post I tried to build a glossary about Amazon DynamoDB terms that look like relational database terms, but with a different technical meaning. Here is more about it. If you work with AWS Databases and frequently switch between DynamoDB and Aurora, or other RDS databases, you may be confused by the same terms… 

DynamoDB Scan: the most efficient operation 😉

By Franck Pachot . The title is provocative on purpose because you can read in many places that you should avoid scans, and that Scan operations are less efficient than other operations in DynamoDB. I think that there is a risk, reading those message without understanding what is behind, that people will actually avoid Scans and replace them by something… 

DynamoDB Scan (and why 128.5 RCU?)

By Franck Pachot . In the previous post I described the PartiSQL SELECT for DynamoDB and mentioned that a SELECT without a WHERE clause on the partition key may result in a Scan, but the result is automatically paginated. This pagination, and the cost of a Scan, is something that may not be very clear from the documentation and I’ll… 

DynamoDB PartiQL – part II: SELECT

By Franck Pachot . In the previous post I insertd a few rows in a Demo table using the SQL-like new API on DynamoDB. I checked my items with a SELECT but was limited in the ORDER BY clause. Here is the most important to understand: there are no additional data processing engine here. PartiQL (pronounce it like ‘particle’ and… 

DynamoDB PartiQL – part I: INSERT

By Franck Pachot . This sounds paradoxical to execute SQL statements on a NoSQL database, but we have now a new API to interact with DynamoDB, which looks like SQL. AWS data services is a collection of purpose-built database services that have their own API. The relational databases in RDS all share a similar API thanks to the SQL standard.… 

AWS DynamoDB -> S3 -> OCI Autonomous Database

By Franck Pachot . I contribute to multiple technologies communities. I’m an Oracle ACE Director for many years, and I also became an AWS Data Hero recently 🎉. I got asked if there’s no conflict with that, as Amazon and Oracle are two competitors. Actually, there’s no conflict at all. Those advocacy programs are not about sales, but technology. Many… 

Amazon DynamoDB: a r(el)ational Glossary

By Franck Pachot . There are many NoSQL databases. And, because SQL is an ISO standard, “No SQL” also means “No Standard”. Many have a similar API and similar objects, but with completely different names. Today, NoSQL databases are used as an additional datastore for some well-defined use cases for which a hashed key-value store fits better than a relational… 

Amazon DynamoDB: the cost of indexes

By Franck Pachot . That’s common to any data structure, whether it is RDBMS or NoSQL, indexes are good to accelerate reads but slow the writes. This post explains the consequences of adding indexes in DynamoDB. Secondary Indexes What we call an index in DynamoDB is different from an index in RDBMS. They have the same goal: store your data… 

Amazon DynamoDB Local: running NoSQL on SQLite

By Franck Pachot . DynamoDB is a cloud-native, managed, key-value proprietary database designed by AWS to handle massive throughput for large volume and high concurrency with a simple API. simple API: Get, Put, Query, Scan on a table without joins, optimizer, transparent indexes,… high concurrency: queries are directed to one shard with a hash function massive throughput: you can just… 

RDBMS (vs. NoSQL) scales the algorithm before the hardware

By Franck Pachot . In The myth of NoSQL (vs. RDBMS) “joins dont scale” I explained that joins actually scale very well with an O(logN) on the input tables size, thanks to B*Tree index access, and can even be bounded by hash partitioning with local index, like in DynamoDB single-table design. Jonathan Lewis added a comment that, given the name… 

DynamoDB: adding a Local covering index to reduce the cost

By Franck Pachot . This is a continuation on the previous post on DynamoDB: adding a Global Covering Index to reduce the cost. I have a DynamoDB partitioned on “MyKeyPart”,”MyKeySort” and I have many queries that retrieve a small “MyIndo001” attribute. And less frequent ones needing the large “MyData001” attribute. I have created a Global Secondary Index (GSI) that covers… 

DynamoDB: adding a Global covering index to reduce the cost

By Franck Pachot . People often think of indexes as a way to optimize row filtering (“get item” faster and cheaper). But indexes are also about columns (“attribute projection”) like some kind of vertical partitioning. In relational (“SQL”) databases we often add more columns to the indexed key. This is called “covering” or “including” indexes, to avoid reading the whole…