Data Modeling and Partitioning in Azure Cosmos DB - Mark Brown - NDC Oslo 2021
Vložit
- čas přidán 28. 08. 2024
- The era of cloud computing has ushered in a new era where applications now demand unprecedented levels of scale and size. Relational databases which have been with us for 50 years are often not able to handle ingesting hundreds of MB a second or growing to PB in size. Enter NoSQL databases which were designed specifically to deal with these unique challenges.
In this session we will take a simple e-commerce application and migrate it from a relational database to a partitioned, NoSQL database. Along the way you will learn how to analyze you application to uncover how to design you data model and how to measure your application's performance as you iterate and test your designs. You will learn the tips, tricks and techniques for modeling and partitioning data that will allow your application to grow to unlimited scale and size with millisecond response times.
Check out more of our featured speakers and talks at
ndcconferences...
ndcoslo.com/
Dear Sir, Very nice video !!! I have one question Can we create partition key on high cardinality column (id) like you discussed on the customer container. Please share your thoughts.
Embedding tags inside the product document. What if the same tags will be used for multiple other products and we won't to update the tag name ?
Something I don't understand about "No-SQL" databases is you model your database in this way on a regular SQL database will there be any performance improvements at all. On TechEmpower mongoDB is below postgresql because you run simple queries like get by indexed id. If you denormalize, don't guarantee acid, can't do joins, have to correctly partition before you start working, can't do partial entity updates why use a database a database at all. In fact if you store dynamic objects and not strongly defined structures it can theoretically only be slower because you need more pointer jumps.
NoSQL databases can scale basically infinite, because they are able to scale horizontally too, not only vertically. SQL databases normally only scale vertically (there are solutions for them to scale horizontally, but these are much more difficult. scaling NoSQL is kinda trivial)
Also this enables replication as well built in, so you can span your databases across the word and get low latency anywhere.
@@hupett That's just not true horizontal scaling is not only possible but used in every commercial sql server. The real problem is that with sql you expect ACID so it's not possible to do it in parallel. NoSQL is just a meaning less buzzword and I am highly sceptical about most of the preference gains. Cosmosdb uses sql just a really really small subset.
@@FilipCordasWith every commercial sql system, there are always limitations amd little gotchas when scaling horizontally. As I said, you can do it, but it's always easier/better with nosql systems because of the architecture of these systems.