Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR:
Azure Data Factory
Azure Synapse Analytics
Tips
Data Factory i Microsoft Fabric är nästa generations Azure Data Factory, med en enklare arkitektur, inbyggd AI och nya funktioner. Om dataintegrering är nytt för dig börjar du med Fabric Data Factory. Befintliga ADF-arbetsbelastningar kan uppgraderas till Fabric för att få åtkomst till nya funktioner inom datavetenskap, realtidsanalys och rapportering.
Den här artikeln beskriver hur man använder Copy Activity i Azure Data Factory och Synapse Analytics-pipelines för att kopiera data från och till en MongoDB-databas. Den bygger på översiktsartikeln om kopieringsaktivitet som ger en generell överblick över kopieringsaktiviteten.
Anmärkning
Den här anslutningsappen är också tillgänglig i Data Factory i Microsoft Fabric. Information om Fabric specifika konfigurationer och funktioner finns i dokumentationen om Fabric MongoDB-anslutningsprogram.
Viktigt!
Den nya MongoDB-anslutningsappen ger förbättrat inbyggt MongoDB-stöd. Om du använder den äldre MongoDB-kontakten i din lösning, som stöds as-is endast för bakåtkompatibilitet, se MongoDB-kontakt (legacy). Du kan använda denna connector för att kopiera data från och till en Azure DocumentDB (med MongoDB-kompatibilitet).
Funktioner som stöds
Denna MongoDB-kontakt stöder följande funktioner:
| Funktioner som stöds | IR |
|---|---|
| Copy activity (källa/mottagare) | (1) (2) |
(1) Azure integration runtime (2) Lokalt installerad integrationskörning
En lista över datalager som stöds som källor och mål finns i tabellen Stödda datalager.
Mer specifikt stöder den här MongoDB-anslutningsappen versioner upp till 4.2. Om ditt arbete kräver versioner som är nyare än 4.2 bör du överväga att använda MongoDB Atlas med MongoDB Atlas-anslutningsappen, som ger mer omfattande support och funktioner.
Förutsättningar
Om ditt datalager finns i ett lokalt nätverk, ett Azure virtuellt nätverk eller Amazon Virtual Private Cloud måste du konfigurera en självhostad integrationskörning för att ansluta till den.
Om ditt datalager är en hanterad molndatatjänst kan du använda Azure Integration Runtime. Om åtkomsten är begränsad till IP-adresser som är godkända i brandväggsreglerna kan du lägga till Azure Integration Runtime IP-adresser i listan över tillåtna.
Du kan också använda funktionen hanterad virtuell nätverksintegrering i Azure Data Factory för att få åtkomst till det lokala nätverket utan att installera och konfigurera en integrationskörning med egen värd.
Mer information om de nätverkssäkerhetsmekanismer och alternativ som stöds av Data Factory finns i Strategier för dataåtkomst.
Komma igång
Om du vill utföra kopieringsaktiviteten med en pipeline kan du använda något av följande verktyg eller SDK:er:
- Kopiera data-verktyget
- Azure Portal
- .NET SDK
- Python SDK
- Azure PowerShell
- REST-API
- mall för Azure Resource Manager
Skapa en länkad tjänst till MongoDB genom att använda UI:t
Använd följande steg för att skapa en länkad tjänst till MongoDB i användargränssnittet för Azure portalen.
Bläddra till fliken Administrera i din Azure Data Factory eller Synapse workspace och välj Linked Services. Välj sedan Nytt:
Sök efter MongoDB och välj MongoDB-anslutningsappen.
Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.
Konfigurationsinformation för anslutning
Följande avsnitt innehåller information om egenskaper som används för att definiera Data Factory-entiteter som är specifika för MongoDB-anslutningsappen.
Länkade tjänstegenskaper
Följande tabell listar de stödda egenskaperna för en MongoDB-länkad tjänst:
| Egenskap | Beskrivning | Obligatoriskt |
|---|---|---|
| typ | Sätt typegenskapen till: MongoDbV2 | Ja |
| anslutningssträng | Specificera MongoDB-reťazec pripojenia, såsom mongodb://[username:password@]host[:port][/[database][?options]]. För mer information, se MongoDB:s manual om reťazec pripojenia.Du kan också placera en anslutningssträng i Azure Key Vault. För mer information, se Lagra inloggningsuppgifter i Azure Key Vault. |
Ja |
| database | Namnet på den databas som du vill komma åt. | Ja |
| connectVia | Den Integration Runtime som ska användas för att ansluta till datalagret. Mer information finns i avsnittet Krav . Om du inte specificerar denna egenskap används standard Azure Integration Runtime | Nej |
Exempel:
{
"name": "MongoDBLinkedService",
"properties": {
"type": "MongoDbV2",
"typeProperties": {
"connectionString": "mongodb://[username:password@]host[:port][/[database][?options]]",
"database": "myDatabase"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Egenskaper för datamängd
För en fullständig lista över sektioner och egenskaper som du kan använda för att definiera dataset, se Datasets and linked services. Följande tabell listar de stödda egenskaperna för en MongoDB-datamängd:
| Egenskap | Beskrivning | Obligatoriskt |
|---|---|---|
| typ | Sätt typegenskapen för datasetet till: MongoDbV2Collection | Ja |
| collectionName | Namnet på samlingen i MongoDB-databasen. | Ja |
Exempel:
{
"name": "MongoDbDataset",
"properties": {
"type": "MongoDbV2Collection",
"typeProperties": {
"collectionName": "<Collection name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<MongoDB linked service name>",
"type": "LinkedServiceReference"
}
}
}
Egenskaper av kopieringsaktivitet
En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i artikeln Pipelines . Det här avsnittet innehåller en lista över egenskaper som stöds av MongoDB-källa och mottagare.
MongoDB som källa
Avsnittet källa i kopieringsaktiviteten stöder följande egenskaper:
| Egenskap | Beskrivning | Obligatoriskt |
|---|---|---|
| typ | Sätt typegenskapen för kopieringsaktivitetskällan till: MongoDbV2Source | Ja |
| filter | Anger markeringsfilter med hjälp av frågeoperatorer. Om du vill returnera alla dokument i en samling utelämnar du den här parametern eller skickar ett tomt dokument ({}). | Nej |
| cursorMethods.project | Anger fälten som ska returneras i dokumenten för projektion. Om du vill returnera alla fält i matchande dokument utelämnar du den här parametern. | Nej |
| cursorMethods.sort | Anger i vilken ordning frågan returnerar matchande dokument. Hänvisa till cursor.sort(). | Nej |
| cursorMethods.limit | Anger det maximala antalet dokument som servern returnerar. Se cursor.limit(). | Nej |
| cursorMethods.skip | Anger antalet dokument som ska hoppa över och varifrån MongoDB börjar returnera resultat. Referera till cursor.skip(). | Nej |
| batchSize | Anger hur många dokument som ska returneras i varje batch av svaret från MongoDB-instansen. I de flesta fall påverkar inte ändring av batchstorleken varken användaren eller applikationen. Azure Cosmos DB begränsar varje batch för att inte överstiga 40 MB, vilket är summan av batchSize-antalet dokumentstorlekar, så minska detta värde om ditt dokument är stort. | Nej (standardvärdet är 100) |
Tips
Tjänsten stöder användning av BSON-dokument i strikt läge. Se till att din filterfråga är i Strict-läge i stället för Shell-läge. För mer information, se MongoDB-manualen.
Exempel:
"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 som mottagare
Avsnittet sink i Copy Activity har stöd för följande egenskaper:
| Egenskap | Beskrivning | Obligatoriskt |
|---|---|---|
| typ | Sätt typegenskapen för copy activity sink till MongoDbV2Sink. | Ja |
| writeBehavior | Beskriver hur du skriver data till MongoDB. Tillåtna värden: infoga och upsert. upsert-operationens beteende är att ersätta dokumentet om ett dokument med samma redan finns; annars infogas dokumentet. Obs! Tjänsten genererar automatiskt ett _id för ett dokument om ett _id inte har angetts i det ursprungliga dokumentet eller efter kolumnmappning. Det innebär att du måste se till att ditt dokument har ett ID för att upsert ska fungera som förväntat. |
Nej (standardvärdet är insert) |
| writeBatchSize | Egenskapen writeBatchSize styr antalet dokument som ska skrivas i varje batch. För att förbättra prestandan, försök öka värdet. Om din dokumentstorlek är stor, försök minska värdet. | Nej (standardvärdet är 10 000) |
| writeBatchTimeout | Väntetiden för att batchinfogningsåtgärden ska slutföras innan tidsgränsen uppnås. Det tillåtna värdet är tidsintervall. | Nej (standardvärdet är 00:30:00 –30 minuter) |
Tips
För att importera JSON-dokument as-is, se avsnittet Importera eller exportera JSON-dokument . För att kopiera från tabellformade data, se Schema mapping.
Exempel
"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"
}
}
}
]
Importera och exportera JSON-dokument
Använd den här MongoDB-anslutningen för att enkelt:
- Kopiera dokument mellan två MongoDB-samlingar som de är.
- Importera JSON-dokument från olika källor till MongoDB, bland annat från Azure Cosmos DB, Azure Blob Storage, Azure Data Lake Store och andra filbaserade arkiv som stöds.
- Exportera JSON-dokument från en MongoDB-samling till olika filbaserade arkiv.
Om du vill uppnå en sådan schemaagnostisk kopia hoppar du över avsnittet "struktur" (kallas även schema) i datauppsättningen och schemamappningen i kopieringsaktiviteten.
Datatypsmappning för MongoDB
När du kopierar data från MongoDB använder tjänsten följande mappningar från MongoDB-datatyper till interimistiska datatyper. För mer information om hur kopieringsaktivitet mappar källschemat och datatypen till sinken, se Schema och datatypmappningar.
| MongoDB-datatyp | Datatyp för interimstjänst |
|---|---|
| Date | Int64 |
| Objekt-ID | String |
| Decimal 128 | String |
| Tidsstämpel | De viktigaste 32 bitarna –> Int64 De minst signifikanta 32 bitarna –> Int64 |
| String | String |
| Double | String |
| Int32 | Int64 |
| Int64 | Int64 |
| Boolean | Boolean |
| Null | Null |
| JavaScript | String |
| Reguljärt uttryck | String |
| Min nyckel | Int64 |
| Maxnyckel | Int64 |
| Binary | String |
MongoDB-anslutningslivscykel och uppgradering
I följande tabell visas versionssteget och ändringsloggarna för olika versioner av MongoDB-anslutningsappen:
| Utgåva | Utgivningsfas | Ändringslogg |
|---|---|---|
| MongoDB (äldre) | Removed | Ej tillämpbart. |
| MongoDB | GA-version tillgänglig | • Stöd för motsvarande MongoDB-frågor. • Double läses som strängdatatypen. |
Uppgradera den länkade MongoDB-tjänsten
Skapa en ny Länkad MongoDB-tjänst och konfigurera den genom att referera till länkade tjänstegenskaper.
Relaterat innehåll
För en lista över databutiker som stöds som källor och mottagare av kopieringsaktiviteten, se stödda databutiker.