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.

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 :

Vous pouvez également consulter le module de formation sur la façon de configurer 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 du rôle Opérateur pour activer Synapse Link dans vos conteneurs ou collections.

Portail Azure

  1. Connectez-vous au portail Azure.

  2. Créez un compte Azure ou sélectionnez un compte Azure Cosmos DB existant.

  3. Accédez à votre compte Azure Cosmos DB et ouvrez Azure Synapse Link sous Intégrations dans le volet de gauche.

  4. Sélectionnez Activer. Ce processus peut prendre de 1 à 5 minutes.

    Screenshot showing how to enable Synapse Link feature.

  5. 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.

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.

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

  1. Connectez-vous au Portail Azure ou à l’Explorateur Azure Cosmos DB.

  2. Accédez à votre compte Azure Cosmos DB et ouvrez l’onglet Explorateur de données.

  3. 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.

    Turn on analytical store for Azure Cosmos DB container

  4. 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.

  5. Sélectionnez OK pour créer un conteneur Azure Cosmos DB activé pour le magasin analytique.

  6. 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

  1. Connectez-vous au Portail Azure ou à l’Explorateur Azure Cosmos DB.

  2. Accédez à votre compte Azure Cosmos DB et ouvrez l’onglet Azure Synapse Link.

  3. Sous la section Activer le lien Azure Synapse pour vos conteneurs, sélectionnez le conteneur.

    Screenshot showing how to turn on analytical store for an Azure Cosmos DB existing container.

  4. 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.

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.

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.

// 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,
};
CosmosClient cosmosClient = new CosmosClient("myConnectionString");
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é.

Utilisez ces bonnes pratiques obligatoires pour vos requêtes SQL serverless.

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 :