Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S'APPLIQUE À :
Azure Data Factory
Azure Synapse Analytics
Conseil
Data Factory dans Microsoft Fabric est la prochaine génération de Azure Data Factory, avec une architecture plus simple, une IA intégrée et de nouvelles fonctionnalités. Si vous débutez avec l'intégration des données, commencez par Fabric Data Factory. Les charges de travail ADF existantes peuvent être mises à niveau vers Fabric pour accéder à de nouvelles fonctionnalités dans la science des données, l’analytique en temps réel et la création de rapports.
Cet article explique comment utiliser l’activité de copie dans les pipelines Azure Data Factory et Synapse Analytics pour copier des données depuis et vers une base de données MongoDB. Il s’appuie sur l’article Vue d’ensemble de l’activité de copie.
Note
Ce connecteur est également disponible dans Data Factory dans Microsoft Fabric. Pour plus d’informations sur la configuration et les fonctionnalités spécifiques à Fabric, consultez la documentation Fabric connecteur MongoDB.
Important
Le nouveau connecteur MongoDB fournit une prise en charge native améliorée de MongoDB. Si vous utilisez le connecteur MongoDB hérité dans votre solution, pris en charge en l’état uniquement à des fins de compatibilité descendante, consultez Connecteur MongoDB (hérité). Vous pouvez utiliser ce connecteur pour copier des données depuis et vers une DocumentDB Azure (compatible avec MongoDB).
Fonctionnalités prises en charge
Ce connecteur MongoDB prend en charge les capacités suivantes :
| Fonctionnalités prises en charge | IR |
|---|---|
| Activité Copy (source/récepteur) | (1) (2) |
(1) Moteur d'intégration Azure (2) Moteur d'intégration auto-hébergé
Pour obtenir la liste des magasins de données pris en charge comme sources et récepteurs, consultez le tableau Magasins de données pris en charge.
Plus précisément, ce connecteur MongoDB prend en charge les versions jusqu’à 4.2. Si votre travail nécessite des versions plus récentes que 4.2, envisagez d’utiliser MongoDB Atlas avec le connecteur MongoDB Atlas qui fournit des fonctionnalités et une prise en charge plus complètes.
Prérequis
Si votre magasin de données se trouve à l’intérieur d’un réseau local, d’un réseau virtuel Azure ou d’Amazon Virtual Private Cloud, vous devez configurer un runtime d’intégration auto-hébergé
Si votre magasin de données est un service de données cloud managé, vous pouvez utiliser le Azure Integration Runtime. Si l’accès est limité aux adresses IP approuvées dans les règles de pare-feu, vous pouvez ajouter adresses IP d'Azure Integration Runtime à la liste autorisée.
Vous pouvez également utiliser la fonctionnalité runtime d’intégration de réseau virtuel managé dans Azure Data Factory pour accéder au réseau local sans installer et configurer un runtime d’intégration auto-hébergé.
Pour plus d’informations sur les mécanismes de sécurité réseau et les options pris en charge par Data Factory, consultez Stratégies d’accès aux données.
Prise en main
Pour effectuer l’activité de copie avec un pipeline, vous pouvez utiliser l’un des outils ou kits sdk suivants :
- Outil Copier des données
- portail Azure
- Kit de développement logiciel (SDK) .NET
- sdk Python
- Azure PowerShell
- REST API
- modèle Azure Resource Manager
Créez un service lié à MongoDB en utilisant l’interface utilisateur
Utilisez les étapes suivantes pour créer un service lié à MongoDB dans l’interface utilisateur du portail Azure.
Parcourez l’onglet Gérer dans votre espace de travail Azure Data Factory ou Synapse et sélectionnez Services liés. Ensuite, sélectionnez Neuf :
Recherchez Mongo et sélectionnez le connecteur MongoDB.
Configurez les informations du service, testez la connexion et créez le nouveau service lié.
Détails de configuration du connecteur
Les sections suivantes fournissent des informations sur les propriétés utilisées pour définir les entités Data Factory spécifiques du connecteur MongoDB.
Propriétés du service lié
Le tableau suivant liste les propriétés prises en charge pour un service lié à MongoDB :
| Propriété | Description | Obligatoire |
|---|---|---|
| type | Définir la propriété type à : MongoDbV2 | Oui |
| connectionString | Spécifier la chaîne de connexion MongoDB, telle que mongodb://[username:password@]host[:port][/[database][?options]]. Pour plus de détails, consultez le manuel MongoDB sur la chaîne de connexion.Vous pouvez également placer une chaîne de connexion dans Azure Key Vault. Pour plus de détails, voir Archiver les identifiants dans Azure Key Vault. |
Oui |
| database | Nom de la base de données à laquelle vous souhaitez accéder. | Oui |
| connectVia | Runtime d’intégration à utiliser pour la connexion au magasin de données. Pour en savoir plus, consultez la section Conditions préalables. Si vous ne spécifiez pas cette propriété, le Azure Integration Runtime par défaut est utilisé. | Non |
Exemple :
{
"name": "MongoDBLinkedService",
"properties": {
"type": "MongoDbV2",
"typeProperties": {
"connectionString": "mongodb://[username:password@]host[:port][/[database][?options]]",
"database": "myDatabase"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Propriétés du jeu de données
Pour une liste complète des sections et propriétés que vous pouvez utiliser pour définir des ensembles de données, voir Ensembles de données et services liés. Le tableau suivant liste les propriétés prises en charge pour un jeu de données MongoDB :
| Propriété | Description | Obligatoire |
|---|---|---|
| type | Définissez la propriété de type de l’ensemble de données à : MongoDbV2Collection | Oui |
| collectionName | Nom de la collection dans la base de données MongoDB. | Oui |
Exemple :
{
"name": "MongoDbDataset",
"properties": {
"type": "MongoDbV2Collection",
"typeProperties": {
"collectionName": "<Collection name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<MongoDB linked service name>",
"type": "LinkedServiceReference"
}
}
}
Propriétés de l'activité de copie
Pour obtenir la liste complète des sections et des propriétés disponibles pour la définition des activités, consultez l’article Pipelines. Cette section fournit la liste des propriétés prises en charge par la source et le récepteur MongoDB.
MongoDB en tant que source
La section source de l’activité de copie prend en charge les propriétés suivantes :
| Propriété | Description | Obligatoire |
|---|---|---|
| type | Définissez la propriété type de la source d’activité de copie à : MongoDbV2Source | Oui |
| Filter | Spécifie le filtre de sélection à l’aide d’opérateurs de requête. Pour retourner tous les documents dans une collection, omettez ce paramètre ou passez un document vide ({}). | Non |
| cursorMethods.project | Spécifie les champs à retourner dans les documents pour la projection. Pour retourner tous les champs dans les documents correspondants, omettez ce paramètre. | Non |
| cursorMethods.sort | Spécifie l’ordre dans lequel la requête retourne les documents correspondants. Voir cursor.sort(). | Non |
| cursorMethods.limit | Spécifie le nombre maximal de documents retournés par le serveur. Voir cursor.limit(). | Non |
| cursorMethods.skip | Spécifie le nombre de documents à ignorer, et à partir de quel endroit MongoDB commence à retourner des résultats. Voir cursor.skip(). | Non |
| batchSize | Spécifie le nombre de documents à retourner dans chaque lot de la réponse renvoyée par l’instance MongoDB. Dans la plupart des cas, modifier la taille du lot n’affecte ni l’utilisateur ni l’application. Azure Cosmos DB limite la taille de chaque lot à 40 Mo maximum, ce qui correspond à la somme des tailles des documents inclus dans batchSize ; réduisez donc cette valeur si vos documents sont volumineux. | Non (la valeur par défaut est 100) |
Conseil
Le service prend en charge la consommation de document BSON en mode Strict. Assurez-vous que votre requête de filtre est en mode Strict au lieu du mode Shell. Pour plus d’informations, consultez le manuel MongoDB.
Exemple :
"activities":[
{
"name": "CopyFromMongoDB",
"type": "Copy",
"inputs": [
{
"referenceName": "<MongoDB input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MongoDbV2Source",
"filter": "{datetimeData: {$gte: ISODate(\"2018-12-11T00:00:00.000Z\"),$lt: ISODate(\"2018-12-12T00:00:00.000Z\")}, _id: ObjectId(\"5acd7c3d0000000000000000\") }",
"cursorMethods": {
"project": "{ _id : 1, name : 1, age: 1, datetimeData: 1 }",
"sort": "{ age : 1 }",
"skip": 3,
"limit": 3
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
MongoDB en tant que récepteur
La section récepteur de l’activité de copie prend en charge les propriétés suivantes :
| Propriété | Description | Obligatoire |
|---|---|---|
| type | Définissez la propriété type du dissipateur d’activité de copie sur MongoDbV2Sink. | Oui |
| writeBehavior | Décrit comment écrire des données dans MongoDB. Les valeurs autorisées sont insert et upsert. Le comportement de la valeur upsert consiste à remplacer le document si un document portant le même _id existe déjà ; sinon, le document est inséré.Remarque : le service génère automatiquement un _id pour un document si aucun _id n’est spécifié ni dans le document d’origine ni par le mappage de colonnes. Cela signifie que vous devez vérifier que votre document comporte un ID afin qu’upsert fonctionne comme prévu. |
Non (la valeur par défaut est insert) |
| writeBatchSize | La propriété writeBatchSize contrôle le nombre de documents à écrire dans chaque lot. Pour améliorer la performance, essayez d’augmenter la valeur. Si la taille de votre document est grande, essayez de diminuer la valeur. | Non (la valeur par défaut est 10 000) |
| writeBatchTimeout | Temps d’attente pour que l’opération d’insertion par lot soit terminée avant d’expirer. La valeur autorisée est timespan. | Non (la valeur par défaut est 00:30:00 – 30 minutes) |
Conseil
Pour importer des documents JSON as-is, voir la section Importer ou exporter des documents JSON . Pour copier à partir de données en forme de tableau, voir Mappage de schéma.
Exemple
"activities":[
{
"name": "CopyToMongoDB",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Document DB output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "MongoDbV2Sink",
"writeBehavior": "upsert"
}
}
}
]
Importer et exporter des documents JSON
Utilisez ce connecteur MongoDB pour facilement :
- Copier des documents entre deux collections MongoDB en l’état.
- Importez des documents JSON à partir de différentes sources vers MongoDB, notamment depuis Azure Cosmos DB, Azure Blob Storage, Azure Data Lake Store, et d'autres magasins de fichiers pris en charge.
- Exporter des documents JSON d’une collection MongoDB vers différentes banques basées sur des fichiers.
Pour obtenir une telle copie indépendante du schéma, ignorez la section « structure » (également appelée schéma) dans le mappage de schéma et de jeu de données dans l’activité de copie.
Mappage de type de données pour MongoDB
Lorsque vous copiez des données depuis MongoDB, le service utilise les mappages suivants des types de données MongoDB vers des types de données intermédiaires. Pour plus d’informations sur la façon dont l’activité de copie mappe le schéma source et le type de données au récepteur, consultez Mappages de schéma et de type de données.
| Type de données MongoDB | Type de données de service intermédiaire |
|---|---|
| Date | Int64 |
| Identifiant d'objet (ObjectId) | Chaîne |
| Decimal128 | Chaîne |
| Horodatage | Les 32 bits les plus significatifs -> Int64 Les 32 bits les moins significatifs -> Int64 |
| Chaîne | Chaîne |
| Double | Chaîne |
| Int32 | Int64 |
| Int64 | Int64 |
| Booléen | Booléen |
| Null | Null |
| JavaScript | Chaîne |
| Expression régulière | Chaîne |
| Touche min | Int64 |
| Clé maximale | Int64 |
| Binary | Chaîne |
Cycle de vie et mise à niveau du connecteur MongoDB
Le tableau suivant présente l’étape de mise en production et les journaux des modifications pour différentes versions du connecteur MongoDB :
| Version | Phase de mise en production | Journal des modifications |
|---|---|---|
| MongoDB (hérité) | Removed | Non applicable. |
| MongoDB | Version en disponibilité générale disponible | • Prise en charge des requêtes MongoDB équivalentes uniquement. • Le double est lu en tant que type de données String. |
Mettre à niveau le service lié MongoDB
Créez un service lié MongoDB et configurez-le en vous référant aux propriétés du service lié.
Contenu connexe
Consultez les banques de données prises en charge pour obtenir la liste des banques de données prises en charge en tant que sources et récepteurs par l’activité de copie.