a. Design and implement a non-relational data model for Azure Cosmos DB for NoSQL
- Develop a design by storing multiple entity types in the same container
- Develop a design by storing multiple related entities in the same document
- Develop a model that denormalizes data across documents
- Develop a design by referencing between documents
- Identify primary and unique keys
- Identify data and associated access patterns
- Specify a default time to live (TTL) on a container for a transactional store
- Develop a design for versioning documents
- Develop a design for document schema versioning
b. Design a data partitioning strategy for Azure Cosmos DB for NoSQL
- Choose a partitioning strategy based on a specific workload
- Choose a partition key
- Plan for transactions when choosing a partition key
- Evaluate the cost of using a cross-partition query
- Calculate and evaluate data distribution based on partition key selection
- Calculate and evaluate throughput distribution based on partition key selection
- Construct and implement a synthetic partition key
- Design and implement a hierarchical partition key
- Design partitioning for workloads that require multiple partition keys
c. Plan and implement sizing and scaling for a database created with Azure Cosmos DB
- Evaluate the throughput and data storage requirements for a specific workload
- Choose between serverless, provisioned and free models
- Choose when to use database-level provisioned throughput
- Design for granular scale units and resource governance
- Evaluate the cost of the global distribution of data
- Configure throughput for Azure Cosmos DB by using the Azure portal
d. Implement client connectivity options in the Azure Cosmos DB SDK
- Choose a connectivity mode (gateway versus direct)
- Implement a connectivity mode
- Create a connection to a database
- Enable offline development by using the Azure Cosmos DB emulator
- Handle connection errors
- Implement a singleton for the client
- Specify a region for global distribution
- Configure client-side threading and parallelism options
- Enable SDK logging
e. Implement data access by using the SQL language for Azure Cosmos DB for NoSQL
- Implement queries that use arrays, nested objects, aggregation, and ordering
- Implement a correlated subquery
- Implement queries that use array and type-checking functions
- Implement queries that use mathematical, string, and date functions
- Implement queries based on variable data
f. Implement data access by using Azure Cosmos DB for NoSQL SDKs
- Choose when to use a point operation versus a query operation
- Implement a point operation that creates, updates, and deletes documents
- Implement an update by using a patch operation
- Manage multi-document transactions using SDK Transactional Batch
- Perform a multi-document load using Bulk Support in the SDK
- Implement optimistic concurrency control using ETags
- Override default consistency by using query request options
- Implement session consistency by using session tokens
- Implement a query operation that includes pagination
- Implement a query operation by using a continuation token
- Handle transient errors and 429s
- Specify TTL for a document
- Retrieve and use query metrics
g. Implement server-side programming in Azure Cosmos DB for NoSQL by using JavaScript
- Write, deploy, and call a stored procedure
- Design stored procedures to work with multiple documents transactionally
- Implement and call triggers
- Implement a user-defined function