Skip to content

Commit ebfb5b4

Browse files
authored
Merge pull request #213135 from Rodrigossz/main
SL for Gremlin API Preview
2 parents cea503d + 5eed7c7 commit ebfb5b4

9 files changed

+103
-25
lines changed

articles/cosmos-db/analytical-store-introduction.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ Azure Cosmos DB analytical store is a fully isolated column store for enabling l
1717

1818
Azure Cosmos DB transactional store is schema-agnostic, and it allows you to iterate on your transactional applications without having to deal with schema or index management. In contrast to this, Azure Cosmos DB analytical store is schematized to optimize for analytical query performance. This article describes in detailed about analytical storage.
1919

20+
> [!NOTE]
21+
> Synapse Link for Gremlin API is now in preview. You can enable Synapse Link in your new or existing graphs using Azure CLI. For more information on how to configure it, click [here](configure-synapse-link.md).
22+
23+
24+
2025
## Challenges with large-scale analytics on operational data
2126

2227
The multi-model operational data in an Azure Cosmos DB container is internally stored in an indexed row-based "transactional store". Row store format is designed to allow fast transactional reads and writes in the order-of-milliseconds response times, and operational queries. If your dataset grows large, complex analytical queries can be expensive in terms of provisioned throughput on the data stored in this format. High consumption of provisioned throughput in turn, impacts the performance of transactional workloads that are used by your real-time applications and services.
@@ -220,9 +225,10 @@ df = spark.read\
220225

221226
There are two types of schema representation in the analytical store. These types define the schema representation method for all containers in the database account and have tradeoffs between the simplicity of query experience versus the convenience of a more inclusive columnar representation for polymorphic schemas.
222227

223-
* Well-defined schema representation, default option for SQL (CORE) API accounts.
228+
* Well-defined schema representation, default option for SQL (CORE) and Gremlin API accounts.
224229
* Full fidelity schema representation, default option for Azure Cosmos DB API for MongoDB accounts.
225230

231+
226232
#### Well-defined schema representation
227233

228234
The well-defined schema representation creates a simple tabular representation of the schema-agnostic data in the transactional store. The well-defined schema representation has the following considerations:
@@ -325,7 +331,7 @@ Here's a map of all the property data types and their suffix representations in
325331

326332
##### Working with the MongoDB `_id` field
327333

328-
the MongoDB `_id` field is fundamental to every collection in MongoDB and originally has a hexadecimal representation. As you can see in the table above, `Full Fidelity Schema` will preserve its characteristics, creating a challenge for its vizualiation in Azure Synapse Analytics. For correct visualization, you must convert the `_id` datatype as below:
334+
the MongoDB `_id` field is fundamental to every collection in MongoDB and originally has a hexadecimal representation. As you can see in the table above, `Full Fidelity Schema` will preserve its characteristics, creating a challenge for its visualization in Azure Synapse Analytics. For correct visualization, you must convert the `_id` datatype as below:
329335

330336
###### Spark
331337

@@ -353,7 +359,7 @@ FROM OPENROWSET('CosmosDB',
353359
                HTAP) WITH (_id VARCHAR(1000)) as HTAP
354360
```
355361

356-
#### Full fidelity schema for SQL API accounts
362+
#### Full fidelity schema for SQL or Gremlin API accounts
357363

358364
It's possible to use full fidelity Schema for SQL (Core) API accounts, instead of the default option, by setting the schema type when enabling Synapse Link on a Cosmos DB account for the first time. Here are the considerations about changing the default schema representation type:
359365

@@ -447,7 +453,7 @@ Synapse Link, and analytical store by consequence, has different compatibility l
447453

448454
### Backup Polices
449455

450-
There two possible backup polices and to understand how to use them, two details about Cosmos DB backups are very important:
456+
There are two possible backup polices and to understand how to use them, the following details about Cosmos DB backups are very important:
451457

452458
* The original container is restored without analytical store in both backup modes.
453459
* Cosmos DB doesn't support containers overwrite from a restore.
@@ -462,7 +468,7 @@ Now let's see how to use backup and restores from the analytical store perspecti
462468

463469
#### Restoring a container with TTTL < ATTL
464470

465-
When `transactional TTL` is smaller than `analytical TTL`, some data only exists in analytical store and won't be in the restored container. Again your have two possible situations:
471+
When `transactional TTL` is smaller than `analytical TTL`, some data only exists in analytical store and won't be in the restored container. Again, you have two possible situations:
466472
* To use the restored container as a replacement for the original container. In this case, when you enable Synapse Link at container level, only the data that was in transactional store will be included in the new analytical store. But please note that the analytical store of the original container remains available for queries as long as the original container exists. You may want to change your application to query both.
467473
* To use the restored container as a data source to backfill or update the data in the original container:
468474
* Analytical store will automatically reflect the data operations for the data that is in transactional store.

articles/cosmos-db/analytical-store-private-endpoints.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to set up managed private endpoints for Azure Cosmos DB a
44
author: AnithaAdusumilli
55
ms.service: cosmos-db
66
ms.topic: how-to
7-
ms.date: 03/02/2021
7+
ms.date: 09/29/2022
88
ms.author: anithaa
99

1010
---
@@ -17,6 +17,11 @@ In this article, you will learn how to set up managed private endpoints for Azur
1717
> [!NOTE]
1818
> If you are using Private DNS Zones for Cosmos DB and wish to create a Synapse managed private endpoint to the analytical store sub-resource, you must first create a DNS zone for the analytical store (`privatelink.analytics.cosmos.azure.com`) linked to your Cosmos DB's virtual network.
1919
20+
21+
> [!NOTE]
22+
> Synapse Link for Gremlin API is now in preview. You can enable Synapse Link in your new or existing graphs using Azure CLI. For more information on how to configure it, click [here](configure-synapse-link.md).
23+
24+
2025
## Enable a private endpoint for the analytical store
2126

2227
### Set up Azure Synapse Analytics workspace with a managed virtual network and data-exfiltration

articles/cosmos-db/configure-custom-partitioning.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,34 @@
11
---
22
title: Configure custom partitioning to partition analytical store data (Preview)
3-
description: Learn how to trigger custom partitioning from Azure Synapse Spark notebook using Azure Synapse link for Azure Cosmos DB. It explains the configuration options.
3+
description: Learn how to trigger custom partitioning from Azure Synapse Spark notebook using Azure Synapse Link for Azure Cosmos DB. It explains the configuration options.
44
author: Rodrigossz
55
ms.service: cosmos-db
66
ms.topic: conceptual
7-
ms.date: 11/02/2021
7+
ms.date: 09/29/2022
88
ms.author: rosouz
99
ms.custom: ignite-fall-2021
1010
---
1111

1212
# Configure custom partitioning to partition analytical store data (Preview)
13-
[!INCLUDE[appliesto-sql-api](includes/appliesto-sql-api.md)]
13+
[!INCLUDE[appliesto-sql-mongodb-gremlin-api](includes/appliesto-sql-mongodb-gremlin-api.md)]
14+
1415

1516
Custom partitioning enables you to partition analytical store data, on fields that are commonly used as filters in analytical queries, resulting in improved query performance.
1617
To learn more about custom partitioning, see [what is custom partitioning](custom-partitioning-analytical-store.md) article.
1718

18-
To use custom partitioning, you must enable Azure Synapse Link on your Azure Cosmos DB account. To learn more, see [how to configure Azure Synapse Link](configure-synapse-link.md). Custom partitioning execution can be triggered from Azure Synapse Spark notebook using Azure Synapse link for Azure Cosmos DB.
19+
To use custom partitioning, you must enable Azure Synapse Link on your Azure Cosmos DB account. To learn more, see [how to configure Azure Synapse Link](configure-synapse-link.md). Custom partitioning execution can be triggered from Azure Synapse Spark notebook using Azure Synapse Link for Azure Cosmos DB.
1920

2021
> [!IMPORTANT]
2122
> Custom partitioning feature is currently in public preview. This preview version is provided without a service level agreement, and it's not recommended for production workloads. Certain features might not be supported or might have constrained capabilities. For more information, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
2223
2324
> [!NOTE]
2425
> Azure Cosmos DB accounts should have Azure Synapse Link enabled to take advantage of custom partitioning. Custom partitioning is currently supported for Azure Synapse Spark 2.0 only.
2526
27+
28+
> [!NOTE]
29+
> Synapse Link for Gremlin API is now in preview. You can enable Synapse Link in your new or existing graphs using Azure CLI. For more information on how to configure it, click [here](configure-synapse-link.md).
30+
31+
2632
## Trigger a custom partitioning job
2733

2834
Partitioning can be triggered from an Azure Synapse Spark notebook using Azure Synapse Link. You can schedule it to run as a background job, once or twice a day, or it can be executed more often if needed. You can also choose one or more fields from the dataset as the analytical store partition key.

articles/cosmos-db/configure-synapse-link.md

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ ms.custom: references_regions, synapse-cosmos-db, devx-track-azurepowershell
1414

1515
[Azure Synapse Link for Azure Cosmos DB](synapse-link.md) is a cloud-native hybrid transactional and analytical processing (HTAP) capability that enables you to run near real-time analytics over operational data in Azure Cosmos DB. Synapse Link creates a tight seamless integration between Azure Cosmos DB and Azure Synapse Analytics.
1616

17+
> [!NOTE]
18+
> Synapse Link for Gremlin API is now in preview. You can enable Synapse Link in your new or existing Graphs using Azure CLI.
19+
1720
Azure Synapse Link is available for Azure Cosmos DB SQL API or for Azure Cosmos DB API for Mongo DB accounts. Use the following steps to run analytical queries with the Azure Synapse Link for Azure Cosmos DB:
1821

1922
* [Enable Azure Synapse Link for your Azure Cosmos DB accounts](#enable-synapse-link)
@@ -23,11 +26,11 @@ Azure Synapse Link is available for Azure Cosmos DB SQL API or for Azure Cosmos
2326
* [Improve performance with Best Practices](#best)
2427
* [Use Azure Synapse serverless SQL pool to analyze and visualize data in Power BI](#analyze-with-powerbi)
2528

26-
You can also checkout the training module on how to [configure Azure Synapse Link for Azure Cosmos DB.](/training/modules/configure-azure-synapse-link-with-azure-cosmos-db/)
29+
You can also check the training module on how to [configure Azure Synapse Link for Azure Cosmos DB.](/training/modules/configure-azure-synapse-link-with-azure-cosmos-db/)
2730

2831
## <a id="enable-synapse-link"></a>Enable Azure Synapse Link for Azure Cosmos DB accounts
2932

30-
The first step to use Synapse Link is to enable it for your Azure Cosmos DB database account. This is an one time operation.
33+
The first step to use Synapse Link is to enable it for your Azure Cosmos DB database account.
3134

3235
> [!NOTE]
3336
> If you want to use customer-managed keys with Azure Synapse Link, you must configure your account's managed identity in your Azure Key Vault access policy before enabling Synapse Link on your account. To learn more, see how to [Configure customer-managed keys using Azure Cosmos DB accounts' managed identities](how-to-setup-cmk.md#using-managed-identity) article.
@@ -70,6 +73,15 @@ Use `--enable-analytical-storage true` for both **create** or **update** operati
7073
* [Create a new Azure Cosmos DB account with Synapse Link enabled](/cli/azure/cosmosdb#az-cosmosdb-create-optional-parameters)
7174
* [Update an existing Azure Cosmos DB account to enable Synapse Link](/cli/azure/cosmosdb#az-cosmosdb-update-optional-parameters)
7275

76+
##### Use Azure CLI to enable Synapse Link for Azure Synapse Link for Gremlin API account.
77+
Synapse Link for Gremlin API is now in preview. You can enable Synapse Link in your new or existing graphs using Azure CLI. Use the CLI command below to enable Synapse Link for your Gremlin API account:
78+
79+
```cli
80+
az cosmosdb create --capabilities EnableGremlin --name MyCosmosDBGremlinDatabaseAccount --resource-group MyResourceGroup --enable-analytical-storage true
81+
```
82+
83+
For existing Gremlin API accounts, replace `create` with `update`.
84+
7385
#### PowerShell
7486

7587
Use `EnableAnalyticalStorage true` for both **create** or **update** operations. You also need to choose the representation schema type. For SQL API accounts you can use `--analytical-storage-schema-type` with the values `FullFidelity` or `WellDefined`. For MongoDB API accounts, always use `-AnalyticalStorageSchemaType FullFidelity`.
@@ -124,6 +136,16 @@ The following options enable Synapse Link in a container by using Azure CLI by s
124136
* [Create an Azure Cosmos DB MongoDB collection](/cli/azure/cosmosdb/mongodb/collection#az-cosmosdb-mongodb-collection-create-examples)
125137
* [Create or update an Azure Cosmos DB SQL API container](/cli/azure/cosmosdb/sql/container#az-cosmosdb-sql-container-create)
126138

139+
##### Use Azure CLI to enable Synapse Link for Azure Synapse Link for Gremlin API Graphs
140+
141+
Synapse Link for Gremlin API is now in preview. You can enable Synapse Link in your new or existing Graphs using Azure CLI. Use the CLI command below to enable Synapse Link for your Gremlin API graphs:
142+
143+
```cli
144+
az cosmosdb gremlin graph create --g MyResourceGroup --a MyCosmosDBGremlinDatabaseAccount --d MyGremlinDB --n MyGraph --analytical-storage-ttl –1
145+
```
146+
147+
For existing graphs, replace `create` with `update`.
148+
127149
#### PowerShell
128150

129151
The following options enable Synapse Link in a container by using Azure CLI by setting the `-AnalyticalStorageTtl` property.
@@ -244,7 +266,7 @@ You can find samples to get started with Azure Synapse Link on [GitHub](https://
244266

245267
To learn more, see the following docs:
246268

247-
* Checkout the training module on how to [configure Azure Synapse Link for Azure Cosmos DB.](/training/modules/configure-azure-synapse-link-with-azure-cosmos-db/)
269+
* Check the training module on how to [configure Azure Synapse Link for Azure Cosmos DB.](/training/modules/configure-azure-synapse-link-with-azure-cosmos-db/)
248270

249271
* [Azure Cosmos DB analytical store overview.](analytical-store-introduction.md)
250272

articles/cosmos-db/graph/TOC.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,18 @@
139139
href: ../burst-capacity.md
140140
- name: Burst capacity FAQ
141141
href: ../burst-capacity-faq.yml
142+
- name: Analytics with Azure Synapse Link
143+
items:
144+
- name: Azure Synapse Link for Azure Cosmos DB
145+
href: ../synapse-link.md
146+
- name: Azure Synapse Link supported features
147+
href: ../../synapse-analytics/synapse-link/concept-synapse-link-cosmos-db-support.md?toc=/azure/cosmos-db/toc.json&bc=/azure/cosmos-db/breadcrumb/toc.json
148+
- name: Azure Synapse Link use cases
149+
href: ../synapse-link-use-cases.md
150+
- name: Azure Synapse Link FAQ
151+
href: ../synapse-link-frequently-asked-questions.yml
152+
- name: Analytical store - Overview
153+
href: ../analytical-store-introduction.md
142154
- name: Back up and restore
143155
items:
144156
- name: Back up and restore introduction
@@ -284,6 +296,24 @@
284296
href: ../tutorial-setup-ci-cd.md
285297
- name: Use Azure Cosmos DB Explorer
286298
href: ../data-explorer.md
299+
- name: Analytics and BI with Azure Synapse Link
300+
items:
301+
- name: Configure Azure Synapse Link
302+
href: ../configure-synapse-link.md
303+
- name: Connect to Azure Synapse Link
304+
href: ../../synapse-analytics/synapse-link/how-to-connect-synapse-link-cosmos-db.md?toc=/azure/cosmos-db/toc.json&bc=/azure/cosmos-db/breadcrumb/toc.json
305+
- name: Analytical store and private endpoints
306+
href: ../analytical-store-private-endpoints.md
307+
- name: Query with Azure Synapse Spark 3
308+
href: ../../synapse-analytics/synapse-link/how-to-query-analytical-store-spark-3.md?toc=/azure/cosmos-db/toc.json&bc=/azure/cosmos-db/breadcrumb/toc.json
309+
- name: Query with Azure Synapse Spark 2
310+
href: ../../synapse-analytics/synapse-link/how-to-query-analytical-store-spark.md?toc=/azure/cosmos-db/toc.json&bc=/azure/cosmos-db/breadcrumb/toc.json
311+
- name: Query with serverless SQL pool
312+
href: ../../synapse-analytics/sql/query-cosmos-db-analytical-store.md?toc=/azure/cosmos-db/toc.json&bc=/azure/cosmos-db/breadcrumb/toc.json
313+
- name: Use Power BI with Azure Synapse Link
314+
href: ../synapse-link-power-bi.md
315+
- name: Configure custom partitioning
316+
href: ../configure-custom-partitioning.md
287317
- name: Back up and restore
288318
items:
289319
- name: Manage continuous backup

articles/cosmos-db/synapse-link-frequently-asked-questions.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
ms.author: rosouz
77
ms.service: cosmos-db
88
ms.topic: faq
9-
ms.date: 04/06/2022
9+
ms.date: 09/29/2022
1010
ms.custom: synapse-cosmos-db
1111
title: Frequently asked questions about Azure Synapse Link for Azure Cosmos DB
1212
summary: |
@@ -21,7 +21,7 @@ sections:
2121
- question: |
2222
Is Azure Synapse Link supported for all Azure Cosmos DB APIs?
2323
answer: |
24-
Azure Synapse Link is supported for the Azure Cosmos DB SQL (Core) API and for the Azure Cosmos DB API for MongoDB.
24+
Azure Synapse Link is supported for the Azure Cosmos DB SQL (Core) API and for the Azure Cosmos DB API for MongoDB. The support for Gremlin API is in preview now.
2525
2626
- question: |
2727
Is Azure Synapse Link supported for multi-region Azure Cosmos DB accounts?
@@ -139,12 +139,12 @@ sections:
139139
- question: |
140140
Can I access analytical store with Azure Cosmos DB SDKs?
141141
answer: |
142-
No, you can't access analytical store with the Azure Cosmos DB SDKs. You need to use Azure Synapse analitics, Spark or SQL serverless pools.
142+
No, you can't access analytical store with the Azure Cosmos DB SDKs. You need to use Azure Synapse Analytics, Spark or SQL serverless pools.
143143
144144
- question: |
145145
Can I access analytical store with Azure Cosmos DB REST APIs?
146146
answer: |
147-
No, you can't access analytical store with the Azure Cosmos DB REST APIs. You need to use Azure Synapse analitics, Spark or SQL serverless pools.
147+
No, you can't access analytical store with the Azure Cosmos DB REST APIs. You need to use Azure Synapse Analytics, Spark or SQL serverless pools.
148148
149149
- question: |
150150
Is analytical store supported by Terraform?
@@ -196,7 +196,7 @@ sections:
196196
Yes, Azure Synapse Link supports configuring customer-managed keys using your Azure Cosmos DB account's managed identity. You can seamlessly encrypt the data across transactional and analytical stores using the same customer-managed keys in an automatic and transparent manner. To learn more, see [configuring customer-managed keys using Azure Cosmos DB accounts' managed identities](how-to-setup-cmk.md#using-managed-identity) article.
197197
198198
- question: |
199-
Does Azure Synapse link provide network isolation with Azure Synapse managed virtual networks?
199+
Does Azure Synapse Link provide network isolation with Azure Synapse managed virtual networks?
200200
answer: |
201201
Yes, You can control network access to the data in the transactional and analytical stores independently. Network isolation is done using separate managed private endpoints for each store, within managed virtual networks in Azure Synapse workspaces. To learn more, see how to [Configure private endpoints for analytical store](analytical-store-private-endpoints.md) article.
202202

0 commit comments

Comments
 (0)