Azure Developer Associate (YT) - Storagen & CosmosDB Flashcards

1
Q

Wat zijn de 5 Core storage services?

A
  • 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wat zijn de performance Tiers voor storage accounts?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Voordelen Cosmos DB

A
  • multiregion replication
  • 5 consistency levels
  • low latency <10ms read/write op 99%
  • elastic scale out over meerdere regions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wat zijn de verschillende Database API’s?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welke opties heb je om Cosmos op te schalen?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wat is een Cosmos logical partition?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wat is een Cosmos physical partition?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wat is een partition key?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wat is een Partition Set?

A

Group van dezelfde Physical partitions in meerdere Regio’s.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hoe kies je het beste een partition key uit?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wat is een unique key?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Waar moet je rekening mee houden als je een read-heavy container hebt?

A

De Partition key moet dan zoveel mogelijk gebruikt worden in de query

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wat is de Cosmos DB hierarchy binnen Azure?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wat zijn de 2 throughput strategies bij het aanmaken van een database-container?

A
  • 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wat zijn de consistency Models/Levels?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welke Azure Blob storage client lib ken je?

A
  • blobclient > voor het manipuleren van blobs
  • ClientOptions > voor de options voor het connecten met de Blob storage
  • ContainerClient > voor het manipuleren van de container en blobs
  • ServiceClient > Voor het manipuleren van Service resources an blob containers > Geef ook de toplevel namespace
  • UriBuilder > voor het manipuleren van de Uri van account, container of blob
17
Q

Wat voor properties en metadata heeft een Blob?

A

System properties > bestaat op elk Blob storage resource. Sommige readonly. Sommige komen overeen met standaard HTTP Headers.
> GetProperties & SetHttpHeaders
> Met REST
» GET/HEAD <url>?restype=container
>> PUT <url>?restype=container</url></url>

User defined metadata > name-value pairs die op een blobresource gezet kan worden. Dit is custom een heeft geen effect op de resource zelf.
> GetProperties & SetMetaData
> Met REST
» GET/HEAD <url>?comp=metadata
>> PUT <url>?comp=metadata</url></url>

18
Q

Wat zijn de verschillende Storage lifecycles of Blob storage Access Tiers?

A

HOT
* data veel gebruikt
COOL
* data minder gebruikt > weinig gebruikte media of recover data
* accessed and stored at least 30 days
ARCHIVE
* data weinig gebruikt
* long term backup
* accessed and stored at least 180 days

19
Q

Kun je de Storage lifecycle (access tiers) aanpassen?

A

ja, je kunt
* een blob verplaatsen naar een betere tier
* blob verwijderen
* regels opstellen die 1x per dag de blobs naloopt
* regels op een container of subset aan blobs instellen. Met prefixes of filters
* rehydrating uit archive naar andere Tier. Duurt uren

20
Q

Wat is een storage lifecycle policy?

A

Een policy is een collectie van regels.
Elke regels heeft een name/enabled/type/definition
> definition zijn de regels wat en wanneer er iets gedaan moet worden.

  • Elke regel heeft een filter en action set.
  • De filter is een limit op de actions for een set aan objects in een container of objects names
  • ?
21
Q

BSON vs JSON

A

Binary JSON is sneller en compacter.
Het heeft dezelfde structuur als een JSON met meer data-type zoals > Datetime, byte array, regulat expressions, js code

22
Q

Waar kun je binnen MongoDb op zoeken?

A
  • fields
  • ranged queries
  • regular expressions
    Mongodb heeft een primary en secondary index
23
Q

Wat zijn de scale options voor Mongodb?

A
  • replica set > copy met dezelfde data voor failovers > kan met een loadbalancer
  • horizontaal dmv sharding
24
Q

de 3 opties voor dataaggregatie binnen Mongodb?

A
  • aggregation pipeline
  • map-reduce
  • single-purpose aggregation
25
Q

Wat is een Graph database?

A

database wat bestaat uit vertices (node, dots) die de relatie aangeeft. De connectie tussen een vertives heet een edge(arc, lines)

26
Q

Waar kun je Graph database voor gebruiken?

A
  • Master data management
  • Network and IT operations
  • Social media graphing
  • Feature engineering
27
Q

Wat is Gremlin en Apache Tinkerpop?

A

Gremlin (WORA: Write onze, run anywhere) is de taal voor Tinkerpop. Tinkerpop is een adapter voor andere Graph Database. Daarmee is de taal niet meer afhankelijk van de database Vendor
Gremlin werkt op realtime database query (OLTP) en batch analytics query (OLAP)

28
Q

Wat is Azure Table?

A

NoSql - schemaloos

29
Q

Wat zijn de 2 capacity opties voor CosmosDB (NoSql engines)?

CoreSQL/MongoDB/AzureTable/Gremlin

A

Provisioned
* garantie voor een bepaalde capaciteit in RU’s
* Unlimted storage & Regions
* Billing amount of provisioned RU’s per hour

Serverless
* pay what you use > goed voor kleine workloads
* 50Gb storage & 1 region
* Billing amount of RU’s per hour

30
Q

Voordelen van CosmosDB?

A
  • werkt samen met AzureServices, functions, kubernetes, App services
  • DB opties: Core SQL, MongoDB, Cassandra, Gremlin
  • SDK’s in de talen: .Net, Java, Pythin, Nodejs
  • Schemaless en automatische indexes
  • SLA voor 99.99%
  • Automatische Data replication in Azure Regions
  • Encryption-at-rest en roles-based Data bescherming
  • Autoscale om de workload aan te kunnen
31
Q

Wat is een CosmosDb container?

A

Container die je opzet om een SQL, Cassandra, MongoDb, Gremlin of Table Api op te draaien. Instellingen zijn afhankelijk van de API type

32
Q

Wat zijn de twee opties om data in CosmosDb te lezen?

A

Point reads
* key/value en gebruikt 1 RU’s
* geeft altijd 1 item terug
* partition key in request: verplicht

Queries
* geeft unlimited items terug voor minimaal 2,3 RU’s
* partition key in request: aanbevolen

33
Q

Wat zijn Request Unit?

A

RU’s is aan abstracte voor de gebruikte Memory, CPU, IOPS right-sizing
* read > 1KB = 1 RU, 100KB=10RU
* insert > 1KB zonder index = ~5,5RU
* Upsert > 2x de kosten van een insert
* Delete > !
* Query > size van de items

34
Q

Wat is een change feed?

A

Is een CosmosDB service wat een monitor is op alle containers en event kan triggeren. Het is een persistent record of changes in de juiste volgorde

SDK voor: .Net, Java, Python, NodeJs
Supports: SQLAPI, Cassandra, MongoDB, Gremlin

35
Q

Wat zijn de 4 change feed componenten?

A
  • Monitor container > waar de insert of update worden uitgevoerd
  • Lease container > opslaan van states en coordineren met change feed processer
  • Host > application instance dat luistert naar de change-feed-processor
  • Delegate > code binnen de host die runned obv de change-feed-notification trigger
36
Q

Welke Storage Account heb je en wat doen ze?

A

Het type storage account geeft aan welke features je wilt gebruiken. Je hebt:
* General-purpose V1&V2
* Blobstorage(legacy) & BlockBlobstorage
* FileStorage

GeneralV2 is de beste optie: Meeste services, standard&premium,accesstiers, replication

37
Q

Hoe kies je een storage account?

A

Hangt af van je behoefte:
* Supported Services > blob, file, table etc
* Performance > Standard en Premium
* Access Tiers > Hoe snel wil ik het? Hot/Cool/Archive
* Replication > hoeveel copieen wil ik?
* Deployment Model > Resource Manager of Classic

38
Q

Toevoegen van Storage Container Properties met Azure CLI

A

Tonen:
* az storage container show
* az storage container metadata show
* az storage blob metadata show

Update:
* az storage container/blob metadata update

–account-name$name –name$name –account-key$key