Configurer et utiliser Azure Synapse Link pour Azure Cosmos DB
S’APPLIQUE À : NoSQL MongoDB Gremlin
Azure Synapse Link pour Azure Cosmos DB est une fonctionnalité de traitement transactionnel et analytique (HTAP) hybride et native Cloud qui vous permet d’exécuter des analyses en quasi-temps réel sur les données opérationnelles dans Azure Cosmos DB. Synapse Link crée une intégration transparente entre Azure Cosmos DB et Azure Synapse Analytics.
Important
La mise en miroir dans Microsoft Fabric est désormais disponible en préversion pour l’API NoSql. Cette fonctionnalité permet de bénéficier de toutes les capacités d’Azure Synapse Link avec de meilleures performances analytiques, la possibilité d’unifier votre patrimoine de données avec Fabric OneLake et d’ouvrir l’accès à vos données dans OneLake avec le format Delta Parquet. Si vous envisagez d’utiliser Azure Synapse Link, nous vous recommandons d’essayer la mise en miroir pour évaluer la compatibilité globale avec votre organisation. Pour bien démarrer avec la mise en miroir, cliquez ici.
Azure Synapse Link est disponible pour les comptes d'API SQL Azure Cosmos DB ou d'API Azure Cosmos DB pour Mongo DB. Et il est en préversion pour l’API Gremlin, avec activation via des commandes CLI. Si vous souhaitez exécuter des requêtes analytiques avec Azure Synapse Link pour Azure Cosmos DB, vous devez :
- Activer Azure Synapse Link pour vos comptes Azure Cosmos DB
- Activer Azure Synapse Link pour vos conteneurs
- Connecter votre base de données Azure Cosmos DB à un espace de travail Azure Synapse
- Interroger un magasin analytique avec Azure Synapse Analytics
- Améliorer les performances avec les meilleures pratiques
- Utiliser un pool SQL serverless Azure Synapse pour analyser et visualiser les données dans Power BI
Vous pouvez également consulter le module de formation sur la façon de configurer Azure Synapse Link pour Azure Cosmos DB.
Activer les comptes Azure Synapse Link pour Azure Cosmos DB
La première étape à utiliser Synapse Link consiste à l’activer pour votre compte de base de données Azure Cosmos DB.
Notes
Si vous souhaitez utiliser des clés gérées par le client avec Azure Synapse Link, vous devez configurer l’identité managée de votre compte dans votre stratégie d’accès Azure Key Vault avant d’activer Synapse Link sur votre compte. Pour en savoir plus, consultez l’article Configurer des clés gérées par le client en utilisant les identités managées des comptes Azure Cosmos DB.
Notes
Si vous souhaitez utiliser le schéma de fidélité complet pour les comptes API pour NoSQL, vous ne pouvez pas utiliser le Portail Azure pour activer Synapse Link. Cette option ne peut pas être modifiée après l’activation de Synapse Link dans votre compte et pour le configurer, vous devez utiliser Azure CLI ou PowerShell. Pour plus d’informations, consultez la documentation sur la représentation du schéma du magasin analytique.
Notes
Vous avez besoin du rôle Contributeur pour activer Synapse Link au niveau du compte. Vous avez au moins besoin d’Opérateur pour activer Synapse Link dans vos conteneurs ou collections.
Portail Azure
Connectez-vous au portail Azure.
Créez un compte Azure ou sélectionnez un compte Azure Cosmos DB existant.
Accédez à votre compte Azure Cosmos DB et ouvrez Azure Synapse Link sous Intégrations dans le volet de gauche.
Sélectionnez Activer. Ce processus peut prendre de 1 à 5 minutes.
Votre compte est désormais activé pour l’utilisation de Synapse Link. Ensuite, découvrez comment créer des conteneurs activés pour le magasin analytique afin de démarrer automatiquement la réplication de vos données opérationnelles entre le magasin transactionnel et le magasin analytique.
Notes
L’activation de Synapse Link n’active pas automatiquement le magasin analytique. Une fois que vous avez activé Synapse Link sur le compte Cosmos DB, activez le magasin analytique sur les conteneurs pour commencer à utiliser Synapse Link.
Notes
Vous pouvez également activer Synapse Link pour votre compte à l’aide de Power BI et du volet Synapse Link, dans la section Intégrations du menu de navigation de gauche.
Outils en ligne de commande
Activez Synapse Link sur votre compte d'API Azure Cosmos DB pour NoSQL ou MongoDB à l'aide d'Azure CLI ou de PowerShell.
Azure CLI
Utilisez --enable-analytical-storage true
pour les opérations de création ou de mise à jour. Vous devez également choisir le type de schéma de représentation. Pour les comptes API SQL, vous pouvez utiliser --analytical-storage-schema-type
avec les valeurs FullFidelity
ou WellDefined
. Pour les comptes d’API pour MongoDB, utilisez toujours --analytical-storage-schema-type FullFidelity
.
- Créer un nouveau compte Azure Cosmos DB avec Synapse Link activé
- Mettre à jour un compte Azure Cosmos DB existant pour activer Synapse Link
Utilisez Azure CLI pour activer Synapse Link pour Azure Synapse Lien pour le compte d’API Gremlin.
Synapse Link pour l’API Gremlin est désormais en préversion. Vous pouvez activer Synapse Link dans vos graphiques nouveaux ou existants à l’aide d’Azure CLI. Utilisez la commande CLI ci-dessous pour activer Synapse Link pour votre compte API Gremlin :
az cosmosdb create --capabilities EnableGremlin --name MyCosmosDBGremlinDatabaseAccount --resource-group MyResourceGroup --enable-analytical-storage true
Pour les comptes API Gremlin existants, remplacez create
par update
.
PowerShell
Utilisez EnableAnalyticalStorage true
pour les opérations de création ou de mise à jour. Vous devez également choisir le type de schéma de représentation. Pour les comptes API SQL, vous pouvez utiliser --analytical-storage-schema-type
avec les valeurs FullFidelity
ou WellDefined
. Pour les comptes d’API pour MongoDB, utilisez toujours -AnalyticalStorageSchemaType FullFidelity
.
- Créer un nouveau compte Azure Cosmos DB avec Synapse Link activé
- Mettre à jour un compte Azure Cosmos DB existant pour activer Synapse Link
Modèle Azure Resource Manager
Ce modèle Azure Resource Manager crée un compte Azure Cosmos DB dans lequel est activé Synapse Link pour l’API SQL. Ce modèle crée un compte d’API Core (SQL) dans une région avec un conteneur configuré avec une durée de vie analytique activée et une option d’utilisation de débit manuel ou de mise à l’échelle automatique. Pour déployer ce modèle, cliquez sur Déployer sur Azure dans la page lisezmoi (readme).
Activer Azure Synapse Link pour vos conteneurs
La deuxième étape consiste à activer Synapse Link pour vos conteneurs ou collections. Pour ce faire, définissez la propriété analytical TTL
sur -1
pour une rétention infinie ou sur un entier positif, c’est-à-dire le nombre de secondes que vous souhaitez conserver dans le magasin analytique. Ce paramètre peut être modifié ultérieurement. Pour plus d’informations, consultez l’article sur les valeurs de durée de vie analytique prises en charge.
Veuillez noter les détails suivants lors de l'activation d’Azure Synapse Link sur vos conteneurs API SQL existants :
- La même isolation des performances du processus de synchronisation automatique du magasin analytique s’applique à la synchronisation initiale et il n’y a aucun impact sur les performances de votre charge de travail OLTP.
- La durée totale de la synchronisation initiale d'un conteneur avec le magasin analytique varie en fonction du volume de données et de la complexité des documents. Ce processus peut aller de quelques secondes à plusieurs jours. Utilisez le portail Azure pour suivre la progression de la migration.
- Le débit de votre conteneur, ou compte de base de données, influence également la durée totale de la synchronisation initiale. Bien que le nombre de RU/s ne soit pas utilisé dans cette migration, le nombre total des RU/s disponibles peut avoir une incidence sur les performances du processus. Vous pouvez temporairement augmenter le nombre de RU disponibles dans votre environnement pour accélérer le processus.
- Vous ne pouvez pas interroger le magasin analytique d’un conteneur existant lorsque Synapse Link est activé sur ce conteneur. Votre charge de travail OLTP n’est pas affectée et vous pouvez continuer à lire les données normalement. Les données ingérées après le début de la synchronisation initiale sont fusionnées dans le magasin analytique par le processus de synchronisation automatique du magasin analytique standard.
Remarque
Vous pouvez désormais activer Synapse Link sur vos collections d’API MongoDB existantes, à l’aide d’Azure CLI ou de PowerShell.
Portail Azure
Nouveau conteneur
Connectez-vous au Portail Azure ou à l’Explorateur Azure Cosmos DB.
Accédez à votre compte Azure Cosmos DB et ouvrez l’onglet Explorateur de données.
Sélectionnez Nouveau conteneur, puis entrez un nom pour la base de données, le conteneur, la clé de partition et les détails du débit. Activez l’option Magasin analytique. Une fois que vous avez activé le magasin analytique, il crée un conteneur avec la propriété
analytical TTL
définie sur la valeur par défaut -1 (rétention infinie). Ce magasin analytique conserve toutes les versions historiques des enregistrements et peut être modifié ultérieurement.Si vous n’avez pas encore activé Synapse Link sur ce compte, vous êtes invité à le faire parce qu’il s’agit d’une condition préalable à la création d’un conteneur pour lequel le magasin analytique est activé. Si vous y êtes invité, sélectionnez Activer Synapse Link. Ce processus peut prendre de 1 à 5 minutes.
Sélectionnez OK pour créer un conteneur Azure Cosmos DB activé pour le magasin analytique.
Une fois le conteneur créé, vérifiez que le magasin analytique a été activé en cliquant sur Paramètres à droite sous Documents dans l’Explorateur de données, puis vérifiez que l’option Durée de vie du magasin analytique est activée.
Conteneur existant
Connectez-vous au Portail Azure ou à l’Explorateur Azure Cosmos DB.
Accédez à votre compte Azure Cosmos DB et ouvrez l’onglet Azure Synapse Link.
Sous la section Activer le lien Azure Synapse pour vos conteneurs, sélectionnez le conteneur.
Une fois le conteneur activé, vérifiez que le magasin analytique a été activé en cliquant sur Paramètres à droite sous Documents dans l’Explorateur de données, puis vérifiez que l’option Durée de vie du magasin analytique est activée.
Notes
Vous pouvez également activer Synapse Link pour votre compte à l’aide de Power BI et du volet Synapse Link, dans la section Intégrations du menu de navigation de gauche.
Outils en ligne de commande
Azure CLI
Les options suivantes activent Synapse Link dans un conteneur à l’aide d’Azure CLI en définissant la propriété --analytical-storage-ttl
.
- Créer ou mettre à jour une collection MongoDB Azure Cosmos DB
- Créer ou mettre à jour un conteneur d’API SQL Azure Cosmos DB
Utiliser Azure CLI pour activer Synapse Link pour Azure Synapse Lien pour les graphes d’API Gremlin
Synapse Link pour l’API Gremlin est désormais en préversion. Vous pouvez activer Synapse Link dans vos graphes nouveaux ou existants à l’aide d’Azure CLI. Utilisez la commande CLI ci-dessous pour activer Synapse Link pour vos graphiques d’API Gremlin :
az cosmosdb gremlin graph create --g MyResourceGroup --a MyCosmosDBGremlinDatabaseAccount --d MyGremlinDB --n MyGraph --analytical-storage-ttl –1
Pour les graphiques existants, remplacez create
par update
.
PowerShell
Les options suivantes activent Synapse Link dans un conteneur à l’aide d’Azure CLI en définissant la propriété -AnalyticalStorageTtl
.
- Créer ou mettre à jour une collection MongoDB Azure Cosmos DB
- Créer ou mettre à jour un conteneur d’API SQL Azure Cosmos DB
SDK Azure Cosmos DB - API SQL uniquement
Kit de développement logiciel (SDK) .NET
Le code .NET suivant crée un conteneur Synapse Link activé en définissant la propriété AnalyticalStoreTimeToLiveInSeconds
. Pour mettre à jour un conteneur existant, utilisez la méthode Container.ReplaceContainerAsync
.
CosmosClient cosmosClient = new CosmosClient(
accountEndpoint: "<nosql-account-endpoint>",
tokenCredential: new DefaultAzureCredential()
);
// Create a container with a partition key, and analytical TTL configured to -1 (infinite retention)
ContainerProperties properties = new ContainerProperties()
{
Id = "myContainerId",
PartitionKeyPath = "/id",
AnalyticalStoreTimeToLiveInSeconds = -1,
};
await cosmosClient.GetDatabase("myDatabase").CreateContainerAsync(properties);
SDK Java V4
Le code Java suivant crée un conteneur Synapse Link activé en définissant la propriété setAnalyticalStoreTimeToLiveInSeconds
. Pour mettre à jour un groupe de conteneurs existant, utilisez la classe container.replace
.
// Create a container with a partition key and analytical TTL configured to -1 (infinite retention)
CosmosContainerProperties containerProperties = new CosmosContainerProperties("myContainer", "/myPartitionKey");
containerProperties.setAnalyticalStoreTimeToLiveInSeconds(-1);
container = database.createContainerIfNotExists(containerProperties, 400).block().getContainer();
Kit SDK Python V4
Le code Python suivant crée un conteneur Synapse Link activé en définissant la propriété analytical_storage_ttl
. Pour mettre à jour un conteneur existant, utilisez la méthode replace_container
.
# Client
client = cosmos_client.CosmosClient(HOST, KEY )
# Database client
try:
db = client.create_database(DATABASE)
except exceptions.CosmosResourceExistsError:
db = client.get_database_client(DATABASE)
# Creating the container with analytical store enabled
try:
container = db.create_container(
id=CONTAINER,
partition_key=PartitionKey(path='/id', kind='Hash'),analytical_storage_ttl=-1
)
properties = container.read()
print('Container with id \'{0}\' created'.format(container.id))
print('Partition Key - \'{0}\''.format(properties['partitionKey']))
except exceptions.CosmosResourceExistsError:
print('A container with already exists')
Se connecter à un espace de travail Synapse
Suivez les instructions de Se connecter à Azure Synapse Link sur la façon d’accéder à une base de données Azure Cosmos DB à partir d’Azure Synapse Analytics Studio avec Azure Synapse Link.
Interroger un magasin analytique avec Azure Synapse Analytics
Interroger un magasin analytique avec Apache Spark pour Azure Synapse Analytics
Suivez les instructions de l’article Interroger le magasin analytique Azure Cosmos DB à l’aide de Spark 3 sur la procédure d’interrogation avec Synapse Spark 3. Cet article donne des exemples sur la façon dont vous pouvez interagir avec le magasin analytique à partir de mouvements Synapse. Ces mouvements sont visibles lorsque vous cliquez avec le bouton droit sur un conteneur. Avec les mouvements, vous pouvez rapidement générer du code et l’adapter à vos besoins. Ils sont également bien adaptés pour découvrir des données en un seul clic.
Pour l’intégration Spark 2, utilisez l’instruction de l’article Interroger le magasin analytique Azure Cosmos DB à l’aide de Spark 2.
Interroger le magasin analytique à l’aide d’un pool SQL serverless dans Azure Synapse Analytics
Le pool SQL serverless vous permet d’interroger et d’analyser les données de vos conteneurs Azure Cosmos DB compatibles avec Azure Synapse Link. Vous pouvez analyser les données en quasi-temps réel sans affecter les performances de vos charges de travail transactionnelles. Il offre une syntaxe T-SQL familière pour interroger les données du magasin analytique et la connectivité intégrée à un large éventail d’outils décisionnels et d’interrogation ad hoc via l’interface T-SQL. Pour plus d’informations, consultez l’article Interrogation du magasin analytique avec le pool SQL serverless.
Analyse et visualisation des données dans Power BI avec le pool SQL serverless
Vous pouvez utiliser l’expérience BI intégrée dans le portail Azure Cosmos DB pour créer des tableaux de bord BI à l’aide de Synapse Link en quelques clics. Pour plus d’informations, consultez Comment créer des tableaux de bord BI à l’aide de Synapse Link. Cette expérience intégrée créera des affichages T-SQL simples dans des pools SQL serverless Synapse, pour vos conteneurs Azure Cosmos DB. Vous pouvez créer sur ces affichages des tableaux de bord BI qui interrogeront vos conteneurs Azure Cosmos DB en temps réel, à l’aide d’une Requête directe reflétant les dernières modifications apportées à vos données. Il n’y a aucun impact sur les performances ou les coûts de vos charges de travail transactionnelles, ni de complexité liée à la gestion des pipelines ETL.
Si vous souhaitez utiliser des vues T-SQL avancées dans vos conteneurs ou créer des tableaux de bord Power BI en mode Importation, consultez Utiliser un pool SQL serverless pour analyser les données Azure Cosmos DB avec Synapse Link.
Améliorer les performances avec les meilleures pratiques
Partitionnement personnalisé
Le partitionnement personnalisé vous permet de partitionner des données de magasin analytique sur des champs couramment utilisés comme filtres dans des requêtes analytiques, ce qui améliore les performances des requêtes. Pour plus d’informations, consultez les articles Présentation du partitionnement personnalisé et Comment configurer un partitionnement personnalisé.
Meilleures pratiques Synapse SQL Serverless pour Azure Synapse Link pour Cosmos DB
Utilisez ces bonnes pratiques obligatoires pour vos requêtes SQL serverless.
Bien démarrer avec Azure Synapse Link - Exemples
Vous trouverez des exemples de prise en main d’Azure Synapse Link sur GitHub. Ils mettent en avant des solutions de bout en bout pour des scénarios IoT et de vente au détail. Vous pouvez également trouver les exemples correspondant à Azure Cosmos DB for MongoDB dans le même référentiel sous le dossier MongoDB.
Étapes suivantes
Pour en savoir plus, consultez les documents suivants :
- Consultez le module d’apprentissage sur la façon de configurer Azure Synapse Link pour Azure Cosmos DB.
- Vue d’ensemble du magasin analytique Azure Cosmos DB.
- Forum aux questions sur Azure Synapse Link pour Azure Cosmos DB.
- Apache Spark dans Azure Synapse Analytics.
- Prise en charge du runtime de pool SQL serverless dans Azure Synapse Analytics