Gegevens kopiëren naar of van Azure Cosmos DB voor MongoDB met behulp van Azure Data Factory of Synapse Analytics
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
In dit artikel wordt beschreven hoe u kopieeractiviteit gebruikt in Azure Data Factory- en Synapse Analytics-pijplijnen om gegevens van en naar Azure Cosmos DB voor MongoDB te kopiëren. Het artikel bouwt voort op kopieeractiviteit, waarin een algemeen overzicht van de kopieeractiviteit wordt weergegeven.
Notitie
Deze connector biedt alleen ondersteuning voor het kopiëren van gegevens naar/van Azure Cosmos DB voor MongoDB. Raadpleeg de Azure Cosmos DB for NoSQL-connector voor Azure Cosmos DB voor NoSQL voor Azure Cosmos DB. Andere API-typen worden momenteel niet ondersteund.
Ondersteunde mogelijkheden
Deze Azure Cosmos DB voor MongoDB-connector wordt ondersteund voor de volgende mogelijkheden:
Ondersteunde mogelijkheden | IR | Beheerd privé-eindpunt |
---|---|---|
Copy-activiteit (bron/sink) | (1) (2) | ✓ |
(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime
U kunt gegevens kopiëren van Azure Cosmos DB voor MongoDB naar een ondersteund sinkgegevensarchief of gegevens kopiëren uit een ondersteund brongegevensarchief naar Azure Cosmos DB voor MongoDB. Zie Ondersteunde gegevensarchieven en -indelingen voor een lijst met gegevensarchieven die door de kopieeractiviteit worden ondersteund als bronnen en sinks.
U kunt de Azure Cosmos DB for MongoDB-connector gebruiken voor het volgende:
- Gegevens kopiëren van en naar de Azure Cosmos DB voor MongoDB.
- Schrijf naar Azure Cosmos DB als insert of upsert.
- JSON-documenten als zodanig importeren en exporteren, of gegevens kopiëren van of naar een gegevensset in tabelvorm. Voorbeelden hiervan zijn een SQL-database en een CSV-bestand. Zie JSON-documenten importeren of exporteren als u documenten wilt kopiëren naar of van JSON-bestanden of van of naar een andere Azure Cosmos DB-verzameling.
Aan de slag
Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:
- Het hulpprogramma voor het kopiëren van gegevens
- Azure Portal
- De .NET-SDK
- De Python-SDK
- Azure PowerShell
- De REST API
- Een Azure Resource Manager-sjabloon
Een gekoppelde service maken met Azure Cosmos DB voor MongoDB met behulp van de gebruikersinterface
Gebruik de volgende stappen om een gekoppelde service te maken voor Azure Cosmos DB voor MongoDB in de gebruikersinterface van Azure Portal.
Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:
Zoek naar Azure Cosmos DB voor MongoDB en selecteer die connector.
Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.
Configuratiedetails van connector
De volgende secties bevatten informatie over eigenschappen die u kunt gebruiken om Data Factory-entiteiten te definiëren die specifiek zijn voor Azure Cosmos DB voor MongoDB.
Eigenschappen van gekoppelde service
De volgende eigenschappen worden ondersteund voor de gekoppelde Azure Cosmos DB voor MongoDB-service:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De eigenschap type moet worden ingesteld op CosmosDbMongoDbApi. | Ja |
connectionString | Geef de verbindingsreeks op voor uw Azure Cosmos DB voor MongoDB. U vindt deze in Azure Portal,> uw Azure Cosmos DB-blade,> primaire of secundaire verbindingsreeks. Voor 3.2-serverversie is mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb het tekenreekspatroon . Voor 3.6+ serverversies is mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retrywrites=false&maxIdleTimeMS=120000&appName=@<cosmosdb-name>@ het tekenreekspatroon .U kunt ook een wachtwoord in Azure Key Vault plaatsen en de password configuratie uit de verbindingsreeks halen. Raadpleeg De referenties van de Store in Azure Key Vault met meer informatie. |
Ja |
database | De naam van de database waartoe u toegang wilt hebben. | Ja |
isServerVersionAbove32 | Geef op of de serverversie hoger is dan 3.2. Toegestane waarden zijn waar en onwaar (standaard). Hiermee wordt bepaald welk stuurprogramma in de service moet worden gebruikt. | Ja |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt De Azure Integration Runtime of een zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een particulier netwerk bevindt). Als deze eigenschap niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. | Nee |
Voorbeeld
{
"name": "CosmosDbMongoDBAPILinkedService",
"properties": {
"type": "CosmosDbMongoDbApi",
"typeProperties": {
"connectionString": "mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb",
"database": "myDatabase",
"isServerVersionAbove32": "false"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Eigenschappen van gegevensset
Zie Gegevenssets en gekoppelde services voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets. De volgende eigenschappen worden ondersteund voor Azure Cosmos DB voor MongoDB-gegevensset:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap van de gegevensset moet worden ingesteld op CosmosDbMongoDbApiCollection. | Ja |
collectionName | De naam van de Azure Cosmos DB-verzameling. | Ja |
Voorbeeld
{
"name": "CosmosDbMongoDBAPIDataset",
"properties": {
"type": "CosmosDbMongoDbApiCollection",
"typeProperties": {
"collectionName": "<collection name>"
},
"schema": [],
"linkedServiceName":{
"referenceName": "<Azure Cosmos DB for MongoDB linked service name>",
"type": "LinkedServiceReference"
}
}
}
Eigenschappen van kopieeractiviteit
Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de Azure Cosmos DB voor MongoDB-bron en -sink.
Zie Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten.
Azure Cosmos DB voor MongoDB als bron
De volgende eigenschappen worden ondersteund in de sectie Bron van kopieeractiviteit:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op CosmosDbMongoDbApiSource. | Ja |
filter | Hiermee geeft u selectiefilter op met behulp van queryoperators. Als u alle documenten in een verzameling wilt retourneren, laat u deze parameter weg of geeft u een leeg document ({}) door. | Nee |
cursorMethods.project | Hiermee geeft u de velden die moeten worden geretourneerd in de documenten voor projectie. 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 |
batchSize | 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 wijzigen van de batchgrootte geen invloed op de gebruiker of de toepassing. Azure Cosmos DB beperkt elke batch mag niet groter zijn dan 40 MB. Dit is de som van het batchSize-aantal documenten, dus verklein deze waarde als uw documentgrootte groot is. | Nee (de standaardwaarde is 100) |
Tip
ADF biedt ondersteuning voor het verbruik van BSON-documenten in de strikte modus. Zorg ervoor dat uw filterquery zich in de strikte modus bevindt in plaats van de Shell-modus. Meer beschrijving vindt u in de MongoDB-handleiding.
Voorbeeld
"activities":[
{
"name": "CopyFromCosmosDBMongoDBAPI",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure Cosmos DB for MongoDB input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "CosmosDbMongoDbApiSource",
"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>"
}
}
}
]
Azure Cosmos DB voor MongoDB als sink
De volgende eigenschappen worden ondersteund in de sectie Sink voor kopieeractiviteit:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap van de sink voor kopieeractiviteit moet worden ingesteld op CosmosDbMongoDbApiSink. | Ja |
writeBehavior | Hierin wordt beschreven hoe u gegevens schrijft naar Azure Cosmos DB. Toegestane waarden: invoegen en upsert. Het gedrag van upsert is om het document te vervangen als er al een document bestaat _id ; anders voegt u het document in.Opmerking: De service genereert automatisch een _id voor een document als een _id document 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 eigenschap writeBatchSize bepaalt de grootte van documenten die in elke batch moeten worden geschreven. U kunt proberen de waarde voor writeBatchSize te verhogen om de prestaties te verbeteren en de waarde te verlagen als uw documentgrootte groot is. | 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
Als u JSON-documenten als zodanig wilt importeren, raadpleegt u de sectie JSON-documenten importeren of exporteren. Als u gegevens in tabelvorm wilt kopiëren, raadpleegt u Schematoewijzing.
Voorbeeld
"activities":[
{
"name": "CopyToCosmosDBMongoDBAPI",
"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": "CosmosDbMongoDbApiSink",
"writeBehavior": "upsert"
}
}
}
]
JSON-documenten importeren en exporteren
U kunt deze Azure Cosmos DB-connector gebruiken om het volgende eenvoudig te doen:
- Documenten kopiëren tussen twee Azure Cosmos DB-verzamelingen.
- Importeer JSON-documenten uit verschillende bronnen naar Azure Cosmos DB, waaronder van MongoDB, Azure Blob Storage, Azure Data Lake Store en andere op bestanden gebaseerde archieven die door de service worden ondersteund.
- JSON-documenten exporteren uit een Azure Cosmos DB-verzameling naar verschillende bestandsarchieven.
Schemaneutraal kopiëren:
- Wanneer u het hulpprogramma Gegevens kopiëren gebruikt, selecteert u de optie Exporteren naar JSON-bestanden of Azure Cosmos DB-verzamelingsoptie .
- Wanneer u het ontwerpen van activiteiten gebruikt, kiest u de JSON-indeling met het bijbehorende bestandsarchief voor de bron of sink.
Schematoewijzing
Als u gegevens uit Azure Cosmos DB voor MongoDB wilt kopiëren naar een tabelvormige sink of omgekeerd, raadpleegt u schematoewijzing.
Om ervoor te zorgen dat u Azure Cosmos DB vult met de juiste object-id van uw brongegevens, hebt u bijvoorbeeld een 'id'-kolom in de SQL-databasetabel en wilt u de waarde ervan gebruiken als document-id in MongoDB voor invoegen/upsert, moet u de juiste schematoewijzing instellen volgens de definitie van de strikte modus mongoDB (_id.$oid
) als volgt:
Nadat de kopieeractiviteit is uitgevoerd, wordt onder BSON ObjectId gegenereerd in sink:
{
"_id": ObjectId("592e07800000000000000000")
}
Gerelateerde inhoud
Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die door Kopieeractiviteit worden ondersteund als bronnen en sinks.