Kopieer data van of naar MongoDB met behulp van Azure Data Factory of Synapse Analytics

Van toepassing op: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory in Microsoft Fabric is de volgende generatie van Azure Data Factory, met een eenvoudigere architectuur, ingebouwde AI en nieuwe functies. Als u nieuw bent in gegevensintegratie, begint u met Fabric Data Factory. Bestaande ADF-workloads kunnen upgraden naar Fabric om toegang te krijgen tot nieuwe mogelijkheden voor gegevenswetenschap, realtime analyses en rapportage.

Dit artikel beschrijft hoe je de Copy Activity in Azure Data Factory en Synapse Analytics pijplijnen kunt gebruiken om data te kopiëren van en naar een MongoDB-database. Het is gebaseerd op het artikel 'Overzicht kopieeractiviteit', waarin een algemeen overzicht van de kopieeractiviteit wordt gegeven.

Note

Deze connector is ook beschikbaar in Data Factory in Microsoft Fabric. Zie de documentatie over de Fabric MongoDB-connector voor Fabric-specifieke configuratie en functies.

Belangrijk

De nieuwe MongoDB-connector biedt verbeterde systeemeigen MongoDB-ondersteuning. Als je de verouderde MongoDB-connector in je oplossing gebruikt, die alleen in de huidige staat wordt ondersteund voor achterwaartse compatibiliteit, raadpleeg je MongoDB-connector (legacy). Je kunt deze connector gebruiken om data te kopiëren van en naar een Azure DocumentDB (met MongoDB-compatibiliteit).

Ondersteunde mogelijkheden

Deze MongoDB-connector ondersteunt de volgende mogelijkheden:

Ondersteunde mogelijkheden IR
Copy-activiteit (bron/sink) (1) (2)

(1) Azure Integration Runtime (2) Zelf-gehoste Integration Runtime

Voor een lijst met gegevensopslaglocaties die als bronnen en doelen worden ondersteund, raadpleegt u de tabel Ondersteunde gegevensopslaglocaties.

Deze MongoDB-connector ondersteunt versies tot en met 4.2. Als voor uw werk nieuwere versies dan 4.2 zijn vereist, kunt u MongoDB Atlas gebruiken met de MongoDB Atlas-connector, die uitgebreidere ondersteuning en functies biedt.

Vereisten

Als uw gegevensarchief zich in een on-premises netwerk, een Azure virtueel netwerk of Amazon Virtual Private Cloud bevindt, moet u een zelf-hostende Integration Runtime configureren om er verbinding mee te maken.

Als uw gegevensarchief een beheerde cloudgegevensservice is, kunt u de Azure Integration Runtime gebruiken. Als de toegang is beperkt tot IP-adressen die zijn goedgekeurd in de firewallregels, kunt u Azure Integration Runtime IP-adressen toevoegen aan de acceptatielijst.

U kunt ook de functie beheerde integratieruntime voor virtuele netwerken in Azure Data Factory gebruiken om toegang te krijgen tot het on-premises netwerk zonder een zelf-hostende Integration Runtime te installeren en te configureren.

Zie Strategieën voor gegevenstoegang voor meer informatie over de netwerkbeveiligingsmechanismen en -opties die door Data Factory worden ondersteund.

Aan de slag

Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:

Maak een gekoppelde service aan naar MongoDB door de UI te gebruiken

Gebruik de volgende stappen om een gekoppelde service te maken voor MongoDB in de gebruikersinterface van de Azure-portal.

  1. Ga naar het tabblad Beheren in je Azure Data Factory of Synapse-werkruimte en selecteer Linked Services. Selecteer dan Nieuw:

  2. Zoek naar MongoDB en selecteer de MongoDB-connector.

    Selecteer de MongoDB-connector.

  3. Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.

    Configureer een gekoppelde service voor MongoDB.

De configuratiedetails van de connector

De volgende secties bevatten details over eigenschappen die worden gebruikt om Data Factory-entiteiten te definiëren die specifiek zijn voor MongoDB-connector.

Eigenschappen van gekoppelde service

De volgende tabel geeft een overzicht van de ondersteunde eigenschappen voor een MongoDB-gekoppelde dienst:

Eigenschap Beschrijving Vereist
type Stel de type-eigenschap in op: MongoDbV2 Ja
connectionString Specificeer de MongoDB-verbindingsreeks, zoals mongodb://[username:password@]host[:port][/[database][?options]]. Voor meer details, zie de MongoDB-handleiding over verbindingsreeks.

U kunt ook een verbindingsreeks in Azure Key Vault plaatsen. Voor meer details, zie Opslaggegevens in Azure Key Vault.
Ja
database De naam van de database waartoe u toegang wilt hebben. Ja
connectVia De Integration Runtime die wordt gebruikt om verbinding te maken met de gegevensopslagplaats. Zie de sectie Vereisten voor meer informatie. Als je deze eigenschap niet specificeert, wordt de standaard Azure Integration Runtime gebruikt. Nee

Voorbeeld:

{
    "name": "MongoDBLinkedService",
    "properties": {
        "type": "MongoDbV2",
        "typeProperties": {
            "connectionString": "mongodb://[username:password@]host[:port][/[database][?options]]",
            "database": "myDatabase"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Eigenschappen van gegevensset

Voor een volledige lijst van secties en eigenschappen die je kunt gebruiken om datasets te definiëren, zie Datasets en gekoppelde services. De volgende tabel geeft een overzicht van de ondersteunde eigenschappen voor een MongoDB-dataset:

Eigenschap Beschrijving Vereist
type Stel de type-eigenschap van de dataset in als: MongoDbV2Collection Ja
collectienaam De naam van de verzameling in de MongoDB-database. Ja

Voorbeeld:

{
    "name": "MongoDbDataset",
    "properties": {
        "type": "MongoDbV2Collection",
        "typeProperties": {
            "collectionName": "<Collection name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<MongoDB linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Copy-activiteit eigenschappen

Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door mongoDB-bron en -sink.

MongoDB als bron

De sectie bron van de kopieeractiviteit ondersteunt de volgende eigenschappen:

Eigenschap Beschrijving Vereist
type Stel de type-eigenschap van de kopieeractiviteitsbron in op: MongoDbV2Source Ja
filter Definieert selectiefiltercriteria met behulp van query-operatoren. Als u alle documenten in een verzameling wilt retourneren, laat u deze parameter weg of geeft u een leeg document ({}) door. Nee
cursorMethods.project Geeft aan welke velden moeten worden geretourneerd in de documenten voor gegevensprojectie. Als u alle velden in de overeenkomende documenten wilt retourneren, laat u deze parameter weg. Nee
cursorMethods.sort Hiermee geeft u de volgorde op waarin de query overeenkomende documenten retourneert. Raadpleeg cursor.sort(). Nee
cursorMethods.limit Hiermee geeft u het maximum aantal documenten dat de server retourneert. Raadpleeg cursor.limit(). Nee
cursorMethods.skip Hiermee geeft u het aantal documenten dat moet worden overgeslagen en van waaruit MongoDB begint met het retourneren van resultaten. Raadpleeg cursor.skip(). Nee
batchgrootte Hiermee geeft u het aantal documenten op dat moet worden geretourneerd in elke batch van het antwoord van het MongoDB-exemplaar. In de meeste gevallen heeft het aanpassen van de batchgrootte geen invloed op de gebruiker of de applicatie. Azure Cosmos DB stelt een limiet van 40 MB per batch; dit is de totale grootte van het aantal documenten dat is opgegeven met `batchSize`. Verlaag deze waarde dus als uw documenten groot zijn. Nee
(de standaardwaarde is 100)

Tip

De service biedt ondersteuning voor de verwerking van BSON-documenten in Strict mode. Zorg ervoor dat je filterquery in Strict-modus staat in plaats van Shell-modus. Voor meer informatie, zie de handleiding van MongoDB.

Voorbeeld:

"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 als sink

De sectie sink van de Copy Activity ondersteunt de volgende eigenschappen:

Eigenschap Beschrijving Vereist
type Stel de type-eigenschap van de copy activity sink in op MongoDbV2Sink. Ja
schrijfgedrag Hierin wordt beschreven hoe u gegevens naar MongoDB schrijft. Toegestane waarden: invoegen en upsert.

Het gedrag van upsert is om het document te vervangen als er al een document met dezelfde _id bestaat; anders wordt het document ingevoegd.

Opmerking: De service genereert automatisch een _id voor een document als een _id niet is opgegeven in het oorspronkelijke document of door kolomtoewijzing. Dit betekent dat u ervoor moet zorgen dat uw document een id heeft, zodat upsert werkt zoals verwacht.
Nee
(de standaardwaarde is invoegen)
writeBatchSize De writeBatchSize-eigenschap bepaalt het aantal documenten dat in elke batch moet worden geschreven. Om de prestaties te verbeteren, probeer de waarde te verhogen. Als je documentformaat groot is, probeer dan de waarde te verlagen. Nee
(de standaardwaarde is 10.000)
writeBatchTimeout De wachttijd voordat de batchinvoegbewerking is voltooid voordat er een time-out optreedt. De toegestane waarde is tijdspanne. Nee
(de standaardwaarde is 00:30:00 - 30 minuten)

Tip

Om JSON-documenten ongewijzigd te importeren, zie de sectie JSON-documenten importeren of exporteren. Om te kopiëren van tabelvormige gegevens, zie Schema mapping.

Voorbeeld

"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"
            }
        }
    }
]

JSON-documenten importeren en exporteren

Gebruik deze MongoDB-connector om eenvoudig het volgende te doen:

  • Documenten ongewijzigd kopiëren tussen twee MongoDB-collecties.
  • Importeer JSON-documenten uit verschillende bronnen naar MongoDB, waaronder van Azure Cosmos DB, Azure Blob Storage, Azure Data Lake Store en andere ondersteunde archiefbestanden.
  • Exporteer JSON-documenten uit een MongoDB-verzameling naar verschillende bestandsarchieven.

Als u een dergelijke schemaagnostische kopie wilt bereiken, slaat u de sectie 'structuur' (ook wel schema genoemd) over in de gegevensset en schematoewijzing in de kopieeractiviteit.

Toewijzing van gegevenstypen voor MongoDB

Wanneer je data kopieert van MongoDB, gebruikt de service de volgende mappings van MongoDB-datatypes naar tussentijdse datatypes. Voor meer informatie over hoe kopieeractiviteit het bronschema en datatype aan de sink koppelt, zie Schema en datatype-mappingen.

MongoDB-gegevenstype Tussentijdse servicegegevenstype
Datum Int64
ObjectId String
Decimaal128 String
Tijdstempel De belangrijkste 32 bits -> Int64
De minst significante 32 bits -> Int64
String String
Double String
Int32 Int64
Int64 Int64
Booleaan Booleaan
Null Null
JavaScript String
Reguliere expressie String
Min.sleutel Int64
Maximale sleutel Int64
Binary String

Levenscyclus en upgrade van MongoDB-connector

In de volgende tabel ziet u de releasefase en wijzigingslogboeken voor verschillende versies van de MongoDB-connector:

Versie Releasefase Wijzigingslogboek
MongoDB (verouderd) Removed Niet van toepassing.
MongoDB GA-versie beschikbaar • Ondersteunt alleen de equivalente MongoDB-query's.

• Dubbel wordt gelezen als tekenreeksgegevenstype.

De gekoppelde MongoDB-service upgraden

Maak een nieuwe gekoppelde MongoDB-service en configureer deze door te verwijzen naar de eigenschappen van de gekoppelde service.

Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.