Kopírovat data z nebo do MongoDB pomocí Azure Data Factory nebo Synapse Analytics

VZTAHUJE SE NA: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.

Tento článek popisuje, jak používat Copy Activity v pipelinech Azure Data Factory a Synapse Analytics ke kopírování dat z a do databáze MongoDB. Vychází z článku přehled aktivity kopírování, který představuje obecný přehled aktivity kopírování.

Note

Tento konektor je také k dispozici ve službě Data Factory v Microsoft Fabric. Informace o konfiguraci a funkcích specifických pro Fabric najdete v dokumentaci ke konektoru Fabric MongoDB.

Důležité

Nový konektor MongoDB poskytuje vylepšenou nativní podporu MongoDB. Pokud používáte starší MongoDB konektor ve svém řešení, podporovaný as-is pouze pro zpětnou kompatibilitu, viz MongoDB konektor (legacy). Tento konektor můžete použít ke kopírování dat z a do Azure DocumentDB (s kompatibilitou s MongoDB).

Podporované funkce

Tento konektor MongoDB podporuje následující funkce:

Podporované funkce IR
aktivita Copy (zdroj/jímka) (1) (2)

(1) Azure Integration Runtime (2) Lokálně hostované Integration Runtime

Pro seznam datových úložiš, která jsou podporována jako zdroje a spotřebiče, viz tabulka Podporovaná datová úložiště .

Konkrétně tento konektor MongoDB podporuje verze až 4.2. Pokud vaše práce vyžaduje novější verze než 4.2, zvažte použití MongoDB Atlas s konektorem MongoDB Atlas, který poskytuje komplexnější podporu a funkce.

Požadavky

Pokud se vaše úložiště dat nachází uvnitř místní sítě, Azure virtuální sítě, nebo Amazon Virtual Private Cloud, musíte pro připojení nakonfigurovat self-hosted Integration Runtime.

Pokud je vaše úložiště dat spravovanou cloudovou datovou službou, můžete použít Azure Integration Runtime. Pokud je přístup omezený na IP adresy schválené v pravidlech brány firewall, můžete do seznamu povolených přidat ip adresy Azure Integration Runtime.

Funkci managed virtual network Integration Runtime můžete také použít v Azure Data Factory pro přístup k místní síti bez nutnosti instalace a konfigurace místního prostředí Integration Runtime.

Další informace o mechanismech zabezpečení sítě a možnostech podporovaných službou Data Factory najdete v tématu Strategie přístupu k datům.

Začínáme

K provedení aktivity kopírování pomocí datového kanálu můžete použít jeden z následujících nástrojů nebo sad SDK:

Vytvořte propojenou službu pro MongoDB pomocí uživatelského rozhraní

Pomocí následujícího postupu vytvořte propojenou službu s MongoDB v uživatelském rozhraní portálu Azure.

  1. Přejděte na záložku Spravovat ve svém pracovním prostoru Azure Data Factory nebo Synapse a vyberte Linked Services. Pak vyberte Nový:

  2. Vyhledejte MongoDB a vyberte konektor MongoDB.

    Vyberte konektor MongoDB.

  3. Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.

    Nakonfigurujte propojenou službu s MongoDB.

Podrobnosti konfigurace konektoru

Následující části obsahují podrobnosti o vlastnostech, které slouží k definování entit služby Data Factory specifických pro konektor MongoDB.

Vlastnosti propojené služby

Následující tabulka uvádí podporované vlastnosti pro službu propojenou MongoDB:

Vlastnost Popis Povinné
typ Nastavte vlastnost typu na: MongoDbV2 Ano
připojovací řetězec Zadejte MongoDB připojovací řetězec, například mongodb://[username:password@]host[:port][/[database][?options]]. Podrobnější informace naleznete v příručce MongoDB k připojovacímu řetězci.

Můžete také vložit připojovací řetězec do Azure Key Vault. Pro více informací viz Přihlašovací údaje do úložiště v Azure Key Vault.
Ano
databáze Název databáze, ke které chcete získat přístup. Ano
connectVia Integration Runtime použít pro připojení k úložišti dat. Další informace najdete v části Požadavky . Pokud tuto vlastnost nespecifikujete, použije se výchozí Azure Integration Runtime. Ne

Příklad:

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

Vlastnosti datové sady

Pro úplný seznam sekcí a vlastností, které můžete použít k definování datových sad, viz Datasety a propojené služby. Následující tabulka uvádí podporované vlastnosti pro datovou sadu MongoDB:

Vlastnost Popis Povinné
typ Nastavte vlastnost typu datasetu na: MongoDbV2Collection Ano
collectionName Název kolekce v databázi MongoDB Ano

Příklad:

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

Vlastnosti kopírovací aktivity

Úplný seznam oddílů a vlastností dostupných pro definování aktivit najdete v článku Pipelines . Tato část obsahuje seznam vlastností podporovaných zdrojem a jímkou MongoDB.

MongoDB jako zdroj

Sekce source aktivity kopírování podporuje následující vlastnosti:

Vlastnost Popis Povinné
typ Nastavte vlastnost typu zdroje kopírovací aktivity na: MongoDbV2Source Ano
filtr Určuje filtr výběru pomocí operátorů dotazu. Pokud chcete vrátit všechny dokumenty v kolekci, vynecháte tento parametr nebo předejte prázdný dokument ({}). Ne
cursorMethods.project Určuje pole, která se mají vrátit v dokumentech pro projekci. Pokud chcete vrátit všechna pole v odpovídajících dokumentech, tento parametr vynecháte. Ne
cursorMethods.sort Určuje pořadí, ve kterém dotaz vrací odpovídající dokumenty. Viz cursor.sort(). Ne
cursorMethods.limit Určuje maximální počet dokumentů, které server vrátí. Odkaz na cursor.limit(). Ne
cursorMethods.skip Určuje počet dokumentů, které se mají přeskočit a odkud MongoDB začne vracet výsledky. Viz cursor.skip() Ne
batchSize (velikost dávky) Určuje počet dokumentů, které se mají vrátit v každé dávce odpovědi z instance MongoDB. Ve většině případů úprava velikosti dávky nemá vliv na uživatele ani na aplikaci. Azure Cosmos DB omezuje velikost každé dávky na maximálně 40 MB, což odpovídá součtu velikostí dokumentů v počtu určeném parametrem `batchSize`, takže pokud jsou vaše dokumenty velké, tuto hodnotu snižte. Ne
(výchozí hodnota je 100)

Tip

Služba podporuje používání dokumentu BSON v přísném režimu. Ujistěte se, že váš dotaz na filtr je v režimu Strict místo Shell. Pro více informací viz manuál MongoDB.

Příklad:

"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 jako jímka

Sekce Copy Activity sink podporuje následující vlastnosti:

Vlastnost Popis Povinné
typ Nastavte vlastnost typu copy activity sink na MongoDbV2Sink. Ano
writeBehavior Popisuje, jak zapisovat data do MongoDB. Povolené hodnoty: vložení a upsert.

Chování funkce upsert je nahradit dokument, pokud již dokument se stejným _id existuje; jinak vložte dokument.

Poznámka: Služba automaticky vygeneruje _id pro dokument, pokud není _id zadán buď v původním dokumentu, nebo podle mapování sloupců. To znamená, že musíte zajistit, aby měl váš dokument ID, aby upsert fungoval očekávaným způsobem.
Ne
(výchozí hodnota je vložení)
writeBatchSize Vlastnost writeBatchSize ovládá počet dokumentů, které je třeba napsat v každé dávce. Pro zlepšení výkonu zkuste zvýšit hodnotu. Pokud máte velký dokument, zkuste hodnotu zmenšit. Ne
(výchozí hodnota je 10 000)
writeBatchTimeout Doba čekání, než se operace dávkového vložení dokončí, než vyprší časový limit. Povolená hodnota je časový rozsah. Ne
(Výchozí hodnota je 00:30:00 až 30 minut)

Tip

Chcete-li importovat dokumenty JSON beze změn, viz část Import nebo export dokumentů JSON. Pro kopírování z tabulárně tvarovaných dat viz schématové mapování.

Příklad

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

Import a export dokumentů JSON

Pomocí tohoto konektoru MongoDB můžete snadno:

  • Kopírování dokumentů mezi dvěma kolekcemi MongoDB bez úprav.
  • Importujte dokumenty JSON z různých zdrojů do MongoDB, včetně Azure Cosmos DB, Azure Blob Storage, Azure Data Lake Storu a dalších podporovaných úložišť založených na souborech.
  • Exportujte dokumenty JSON z kolekce MongoDB do různých souborových úložišť.

Pokud chcete dosáhnout kopie nezávislé na schématu, přeskočte oddíl "struktura" (také nazývaný schéma) v datové sadě a mapování schématu při kopírovací aktivitě.

Mapování datových typů pro MongoDB

Když zkopírujete data z MongoDB, služba používá následující mapování z datových typů MongoDB na přechodné datové typy. Další informace o tom, jak aktivita kopírování mapuje zdrojové schéma a datový typ do jímky, najdete v článku Mapování schématu a datových typů.

Datový typ MongoDB Dočasný datový typ služby
Date Int64
Identifikátor objektu (ObjectId) String
Desetinné číslo 128 String
Časové razítko Nejvýznamnějších 32 bitů –> Int64
Nejméně významný 32bit –> Int64
String String
Double String
Int32 Int64
Int64 Int64
logický logický
Null Null
JavaScript String
Regulární výraz String
Minimální klíč Int64
Maximální počet kláves Int64
Binary String

Životní cyklus a upgrade konektoru MongoDB

Následující tabulka ukazuje fázi vydání a protokoly změn pro různé verze konektoru MongoDB:

Version Fáze vydání Záznam změn
MongoDB (starší verze) Removed Nelze použít.
MongoDB Dostupná verze GA • Podporují pouze ekvivalentní dotazy MongoDB.

• Double se čte jako datový typ String.

Upgrade propojené služby MongoDB

Vytvořte novou propojenou službu MongoDB a nakonfigurujte ji pomocí odkazů na vlastnosti propojené služby.

Úložiště dat, která kopírovací aktivita podporuje jako zdroje a cíle, najdete v seznamu podporovaných úložišť dat.