Azure Developer Associate (YT) - Storagen & CosmosDB Flashcards
Wat zijn de 5 Core storage services?
- Blob > object store for text en binary data
- Files > gedeelde files voor cloud on-premise deployments
- Queus > NoSql voor schemaloze storage
- Tables > Messaging store voor betrouwbare berichten tussen applicaties
- Azure Disk > Block-level storage volumes?
1-4 onder storage accounts te vinden, 5 onder disks
Wat zijn de performance Tiers voor storage accounts?
Standard
* HDD opslag
* Performance obv Hot/Cool/Archive
* UseCases: Backup, media, bulk data processing
Premium
* SSD opslag
* low-latency & higher throughput
IOPS > Input/Output Per Second
Voordelen Cosmos DB
- multiregion replication
- 5 consistency levels
- low latency <10ms read/write op 99%
- elastic scale out over meerdere regions
Wat zijn de verschillende Database API’s?
Azure tables > Key/Value datastore > beschikbaar in Account Storage (single region&table) en CosmosDb (multi regions)
CosmosDb
* Core(SQL) > document based met de beste end-to-end ervaring omdat we fullcontrol hebben over de interface, service en SDK
* Graph API> Graph queries en opslag in edges en relaties in vertices
- MongoDb > BSON format en compatible met MongoDB Wire protocol
- Table API > Key/value format
- Cassandra > Column-oriented schema en compatible met Apache Cassandra
Welke opties heb je om Cosmos op te schalen?
Verticaal of Horizontaal
Verticaal > Upgrade wat de machine zwaarder maakt > heeft een limit.
Horizontaal > extra machine erbij. Data en operaties worden verdeeld. Sharding het is proces dat de data opsplitst. Azure regelt sharding.
Horizontaal is beter omdat het geen limit heeft.
Cosmos schaalt door sharding en/of partitioning van de data.
Bij het aanmaken van de database maak je logical en physical partitions aan.
Kleine db’s zullen vele logical en 1 physical hebben.
Wat is een Cosmos logical partition?
- Set of items met dezelfde partition key > OrderItem > key:”OrderId”
- defines the scope of db transactions
- No limit of logical partition in a container
- Each logical can store up to 20gb
Wat is een Cosmos physical partition?
- bestaat uit 1 of meer logical partitions > Users/Orders/OrderItems
- Are internal implementation of the system entirely managed by Azure Cosmos DB
- container schaal je op door het verspreiden vd data over physical partitions.
- limit van 10.000 RU/s
- max storage van 50GB
Wat is een partition key?
Bij het aanmaken van een container geef je aan wat de key. Dit kan 1x. De key is een unieke waarde binnen de container. Bijv. bij Customers kan die een id of email zijn.
Path en value zijn de twee componenten van een key
Wat is een Partition Set?
Group van dezelfde Physical partitions in meerdere Regio’s.
Hoe kies je het beste een partition key uit?
- waarde mag niet veranderen
- wide range of values > firstname valt bijv. af omdat het niet uniek is en daarmee meerdere partitions gebruikt en de performance benadeeld
- string of number
- is niet meer aan te passen
Wat is een unique key?
Geeft een extra data integriteit laag.
Je zet een policy op wanneer je een container maakt
* 1:16 path values
* 1:10 unique key constraint/combination
* Niet meer aan te passen
* zijn case-sensitive
De Request Unit (RU) zijn iets duurder
vb: /first_name/address/zipcode
Waar moet je rekening mee houden als je een read-heavy container hebt?
De Partition key moet dan zoveel mogelijk gebruikt worden in de query
Wat is de Cosmos DB hierarchy binnen Azure?
- Account > uniek DNS naam
- database > meerdere onder 1 account > set containers
- Containers > unit of scalabilty for provisioned throughput and storage. Horizontally partitioned and replicated across multiple reqions
- items (data) > Hangt af vd API > document, table, node of edge in graph
Wat zijn de 2 throughput strategies bij het aanmaken van een database-container?
- Dedicated mode > gaat exclusief naar deze container. Heeft SLA ondersteuning
- Shared mode > throughput gaat door alle containers
Shared is minder voorspelbaar, maar beter voor de kosten
later niet aan te passen
Wat zijn de consistency Models/Levels?
Volgorde:
Stronger > Weaker
Higher > lower latency
Lower > High troughput (verwerken van data in RU/s)
- Strong > Write operarion op de primary DB. Daarna naar de replicas. Pas zichtbaar in de Primary als alle replicas het hebben.
- Bounded staleness > zelfde als Strong, met Staleness optie voor de replicas. Staleness is de tijd dat een replica kan achterlopen op de primary. Dit is per regions. Dus Asie kan hiermee qua tijd achterlopen op EU
- Session > Is clientcentric ipv datacentric > Data betekent dat de data in de region van de client bestaat.
- Consistent Prefix > Volgorde van de write staat voorop ongeacht de snelheid van de replicas
- Eventual > volgorde maakt niet uit