However, understanding what it implies and how it can be used to your advantage requires a deeper understanding. The Analytical Store is a fully isolated column store for enabling large-scale analytics against operational data, without impacting your transactional workload.
Primarily, Cosmos DB’s Analytical Store aims to enable no-ETL (Extract, Transform, Load) analytics directly on the operational data. This significantly simplifies the architecture and reduces the time needed to obtain insights from your data.
Steps to Enable Analytical Store on a Container
To enable the Analytical Store, you’ll need to navigate to the Azure Portal, select Azure Cosmos DB, and follow these steps:
- Select Your Database Account: Go to your Azure Cosmos DB account, navigate to ‘Data Explorer’, and choose the database where your container resides.
- Choose the Container: Select the container on which you want to enable the Analytical Store.
- Enable Analytical Store: Look for the setting ‘Analytical Store’. Toggle the status to ‘On’ to enable the Analytical Store.
It’s essential to point out that the Analytical Store can only be enabled when the container is created. If you want to enable it on an existing container, you must recreate the container.
Understanding the Benefits of Analytical Store
Notably, enabling the Analytical Store on a Container has several advantages, including:
- Large-Scale Analytics: The columnar nature of the Analytical Store allows for efficient analytical processing over large amounts of data.
- No-ETL Analytics: You can perform analytics directly on your operational data without having to extract, transform, or load the data first.
- Isolation of Workloads: Your transactional workload is not affected when running analytics on the Analytical Store as it is fully isolated.
- Integration with Azure Synapse Analytics: The Analytical Store can be directly accessed from Azure Synapse Analytics’ serverless SQL pool, allowing you to run complex queries on your data.
- Automated Data Refresh: The Analytical Store is automatically synchronized with your transactional data in near real-time, which means your analytical insights will always be up-to-date.
Example
Now, suppose you have created an Azure Cosmos DB account and a database named ‘TestDB’. You want to create a new container named ‘TestContainer’ with Analytical Store enabled. You can achieve this using the Azure Cosmos DB .NET SDK as follows:
CosmosClient client = new CosmosClient("your-connection-string");
Database database = await client.CreateDatabaseIfNotExistsAsync("TestDB");
ContainerProperties containerProperties = new ContainerProperties("TestContainer", "/partitionKeyPath");
// Enable Analytical Store
containerProperties.AnalyticalStoreTimeToLiveInSeconds = -1;
ContainerResponse containerResponse = await database.CreateContainerIfNotExistsAsync(containerProperties, throughput: 400);
In the code snippet above, we use the AnalyticalStoreTimeToLiveInSeconds
property to enable the Analytical Store on the container. Setting this property to -1 means the data in the Analytical Store doesn’t expire.
To conclude, enabling the Analytical Store on a container in Azure Cosmos DB opens up opportunities for large-scale analytical processing. When prepping for the DP-420 examination, take the time to experiment with this functionality to understand its impact better and how best it can be implemented in designing and implementing Azure Cosmos DB’s native applications.
Practice Test
True or False: Analytical Store in Azure Cosmos DB is a fully isolated column store for enabling large scale analytics against operational data.
Answer: True
Explanation: The Analytical Store in Azure Cosmos DB is indeed a fully isolated column store that allows you to perform large scale analytics against operational data.
Does enabling the analytical store on a container in Azure Cosmos DB incur extra costs?
- a) Yes
- b) No
Answer: a) Yes
Explanation: Enabling the analytical store on a container in Azure Cosmos DB does incur extra costs. You pay for the total amount of data that is stored in the Analytical Store.
Can you perform query operations on the Analytical Store within Azure Cosmos DB?
- a) Yes
- b) No
Answer: a) Yes
Explanation: Analytical Store is read-optimized and you can perform large scale analytics with Synapse Spark and Synapse SQL Serverless.
True or False: You can enable or disable the Analytical store on a container in Azure Cosmos DB at any time.
Answer: False
Explanation: After you’ve enabled the Analytical store on a container, you cannot disable it.
Which of the following can be used to run analytics on the Analytical store of Azure Cosmos DB?
- a) Synapse SQL Serverless
- b) Synapse Spark
- c) Azure Databricks
- d) All of the above
Answer: d) All of the above
Explanation: All listed options are capable of running analytics on Azure Cosmos DB’s Analytical store.
True or False: Updating data in the transactional store of Azure Cosmos DB will automatically update the data in the Analytical store.
Answer: True
Explanation: When data is updated in the transactional store, those changes propagate to the Analytical store.
Is it required to enable Azure Synapse Link to work with the Analytical Store?
- a) Yes
- b) No
Answer: a) Yes
Explanation: Azure Synapse Link is required to connect to the Analytical store and run analytics on it.
Select the correct statement:
- a) Enabling Analytical Store creates a separate, but associated, column store from the transactional store data.
- b) Enabling Analytical Store doubles the throughput capacity of the container.
- c) The Analytical Store is another name for the Transactional Store in Azure Cosmos DB.
Answer: a) Enabling Analytical Store creates a separate, but associated, column store from the transactional store data.
Explanation: The Analytical Store is a completely separate column store that runs in parallel with the row-oriented transactional store.
Can a container in Azure Cosmos DB without partition key support Analytical store?
- a) Yes
- b) No
Answer: b) No
Explanation: A partition key is required for a container to support the Analytical store.
True or False: The Analytical Store of Azure Cosmos DB is designed for write-heavy workloads.
Answer: False
Explanation: The Analytical Store is a read-optimized store and does not support write operations. It’s intended for large analytics workloads.
Interview Questions
What is the purpose of enabling the analytical store on a container in Azure Cosmos DB?
The analytical store feature in Azure Cosmos DB is designed to provide large scale analytics and AI workloads without any impact on the transactional workloads. It allows you to perform analytics on your operational data in real-time.
How can the analytical store be enabled in Azure Cosmos DB?
The Analytical Store can be enabled for a new container via the Azure portal. This is done through the configuration settings, under the “Advanced” option when creating a new container.
Can the analytical store be enabled on an existing Cosmos DB container?
No, the analytical store feature cannot be enabled on an existing Cosmos DB container. It must be enabled at the time of container creation.
Is it possible to disable the analytical store on a container once it is enabled?
No, once the analytical store is enabled on a container you cannot disable it.
What are the charges for using the analytical store in Azure Cosmos DB?
In Azure Cosmos DB, charges for analytical store usage are based on the amount of data stored in it. Additionally, data transfer costs are applicable for the analytical store.
How is the data in the analytical store kept in sync with the operational data in Azure Cosmos DB?
The data in the analytical store is automatically synchronized with the data in the transactional store in near real-time to maintain a current copy of your operational data.
What tools can be used to query the data in the analytical store?
Data in the analytical store can be queried using Azure Synapse Analytics and Azure Synapse Studio.
Can analytical queries impact the performance of transactional workloads in Cosmos DB?
No, analytical queries run against the analytical store, which is separated from the transactional store and therefore do not impact the performance of transactional workloads.
Does enabling the analytical store on a container affect the provisioned throughput for a Cosmos DB account?
No, enabling the analytical store does not affect the provisioned throughput. The provisioning of throughput is done separately for the transactional store and the analytical store.
Which APIs support enabling the analytical store in Azure Cosmos DB?
The analytical store can be enabled using SQL API and MongoDB API in Azure Cosmos DB.
Is it possible to perform write operations in the analytical store of Azure Cosmos DB?
No, you cannot perform write operations in the Analytical Store. It is a read-only store, designed for large scale analytical processing.
Does the Analytical Store maintain the same data model as the transactional data in Cosmos DB?
The Analytical Store in Cosmos DB transforms the transactional data into a columnar format for optimized analytical query execution, so the data model is not exactly the same.
How can you manage the data lifecycle in Cosmos DB’s analytical store?
You can manage the data lifecycle in Cosmos DB’s analytical store using Time to Live (TTL) settings.
Can you use Analytical Store for real-time analytics on data in Cosmos DB?
Yes, Analytical Store can be used for near real-time analytics on operational data in Cosmos DB.
What is the impact on the data in the Analytical Store if the corresponding transactional data in Cosmos DB is deleted?
If the transactional data in Cosmos DB is deleted, the corresponding data in the Analytical Store will also be deleted through synchronization.