Adatok másolása a MongoDB-hez készült Azure Cosmos DB-be vagy onnan az Azure Data Factory vagy a Synapse Analytics használatával

A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!

Ez a cikk bemutatja, hogyan használható a Másolási tevékenység az Azure Data Factoryben és a Synapse Analytics-folyamatokban az adatok másolására a MongoDB-hez készült Azure Cosmos DB-ből és az Azure Cosmos DB-be. A cikk a másolási tevékenységre épül, amely a másolási tevékenység általános áttekintését mutatja be.

Megjegyzés:

Ez az összekötő csak a MongoDB-hez készült Azure Cosmos DB-be vagy onnan történő másolást támogatja. Az Azure Cosmos DB for NoSQL esetében tekintse meg az Azure Cosmos DB for NoSQL-összekötőt. Más API-típusok jelenleg nem támogatottak.

Támogatott képességek

Ez a MongoDB-hez készült Azure Cosmos DB-összekötő a következő képességeket támogatja:

Támogatott képességek IR Managed private endpoint
Copy tevékenység (forrás/fogadó) ① ②

(1) Azure-integrációs modul (2) Saját üzemeltetésű integrációs modul

A MongoDB-hez készült Azure Cosmos DB-ből bármilyen támogatott fogadóadattárba másolhat adatokat, vagy bármely támogatott forrásadattárból adatokat másolhat a MongoDB-hez készült Azure Cosmos DB-be. Azoknak az adattáraknak a listáját, amelyeket a Másolási tevékenység forrásként és fogadóként támogat, tekintse meg a támogatott adattárakat és formátumokat.

Az Azure Cosmos DB for MongoDB-összekötő a következő célokra használható:

  • Adatok másolása a MongoDB-hez készült Azure Cosmos DB-ből és az azure Cosmos DB-be.
  • Írás az Azure Cosmos DB-be beszúrásként vagy upsertként.
  • JSON-dokumentumok importálása és exportálása aktuális állapotban, illetve adatok másolása táblázatos adatkészletből vagy azokbe. Ilyen például egy SQL-adatbázis és egy CSV-fájl. A JSON-fájlokba vagy egy másik Azure Cosmos DB-gyűjteménybe vagy más Azure Cosmos DB-gyűjteménybe másolt dokumentumok másolásáról lásd: JSON-dokumentumok importálása vagy exportálása.

Első lépések

A Copy tevékenység folyamattal való végrehajtásához használja az alábbi eszközök vagy SDK-k egyikét:

Társított szolgáltatás létrehozása a MongoDB-hez készült Azure Cosmos DB-hez felhasználói felületen

Az alábbi lépésekkel létrehozhat egy társított szolgáltatást az Azure Cosmos DB for MongoDB-hez az Azure Portal felhasználói felületén.

  1. Keresse meg az Azure Data Factory vagy a Synapse-munkaterület Kezelés lapját, és válassza a Társított szolgáltatások lehetőséget, majd kattintson az Új gombra:

  2. Keresse meg a MongoDB-hez készült Azure Cosmos DB-t, és válassza ki az összekötőt.

    Select the Azure Cosmos DB for MongoDB connector.

  3. Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új társított szolgáltatást.

    Configure a linked service to Azure Cosmos DB for MongoDB.

Csatlakozás or konfigurációjának részletei

Az alábbi szakaszok részletesen ismertetik a MongoDB-hez készült Azure Cosmos DB-hez készült Data Factory-entitások definiálásához használható tulajdonságokat.

Társított szolgáltatás tulajdonságai

A MongoDB-hez készült Azure Cosmos DB társított szolgáltatás esetében a következő tulajdonságok támogatottak:

Property Leírás Required
típus A típustulajdonságot CosmosDbMongoDbApi értékre kell állítani. Igen
connectionString Adja meg a MongoDB-hez készült Azure Cosmos DB kapcsolati sztring. Az Azure Portalon – az Azure Cosmos DB panelen –>> elsődleges vagy másodlagos kapcsolati sztring található.
A 3.2-es kiszolgálóverzió esetében a sztringminta .mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb
A 3.6-os vagy újabb kiszolgálóverziók esetében a sztringminta .mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retrywrites=false&maxIdleTimeMS=120000&appName=@<cosmosdb-name>@

Jelszót is elhelyezhet az Azure Key Vaultban, és lekérheti a password konfigurációt a kapcsolati sztring. További részletekért tekintse meg az Azure Key Vaultban tárolt hitelesítő adatokat.
Igen
adatbázis A elérni kívánt adatbázis neve. Igen
isServerVersionAbove32 Adja meg, hogy a kiszolgáló verziója meghaladja-e a 3.2-es verziót. Az engedélyezett értékek igazak és hamisak (alapértelmezett). Ez határozza meg a szolgáltatásban használni kívánt illesztőprogramot. Igen
connectVia Az adattárhoz való csatlakozáshoz használható integrációs modul . Használhatja az Azure Integration Runtime-ot vagy egy saját üzemeltetésű integrációs modult (ha az adattár magánhálózaton található). Ha ez a tulajdonság nincs megadva, a rendszer az alapértelmezett Azure Integration Runtime-t használja. Nem

Példa

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

Adathalmaz tulajdonságai

Az adathalmazok meghatározásához elérhető szakaszok és tulajdonságok teljes listáját az Adathalmazok és a csatolt szolgáltatások című témakörben találja. A MongoDB-hez készült Azure Cosmos DB-adatkészlethez a következő tulajdonságok támogatottak:

Property Leírás Required
típus Az adathalmaz típustulajdonságának CosmosDbMongoDbApiCollection értékre kell állítania. Igen
Lekérdezés_neve Az Azure Cosmos DB-gyűjtemény neve. Igen

Példa

{
    "name": "CosmosDbMongoDBAPIDataset",
    "properties": {
        "type": "CosmosDbMongoDbApiCollection",
        "typeProperties": {
            "collectionName": "<collection name>"
        },
        "schema": [],
        "linkedServiceName":{
            "referenceName": "<Azure Cosmos DB for MongoDB linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Másolási tevékenység tulajdonságai

Ez a szakasz az Azure Cosmos DB for MongoDB-forrás és fogadó által támogatott tulajdonságok listáját tartalmazza.

A tevékenységek meghatározásához elérhető szakaszok és tulajdonságok teljes listáját a Folyamatok című témakörben találja.

Forrásként az Azure Cosmos DB for MongoDB

A Másolási tevékenység forrás szakasza a következő tulajdonságokat támogatja:

Property Leírás Required
típus A másolási tevékenység forrásának típustulajdonságát CosmosDbMongoDbApiSource értékre kell állítani. Igen
szűrő Választószűrőt ad meg lekérdezési operátorokkal. Ha egy gyűjtemény összes dokumentumát vissza szeretné adni, hagyja ki ezt a paramétert, vagy adjon át egy üres dokumentumot ({}). Nem
cursorMethods.project Megadja azokat a mezőket, amelyeket vissza szeretne adni a dokumentumokban a vetítéshez. Ha az egyező dokumentumok összes mezőjét vissza szeretné adni, hagyja ki ezt a paramétert. Nem
cursorMethods.sort Azt a sorrendet adja meg, amelyben a lekérdezés egyező dokumentumokat ad vissza. Lásd: cursor.sort(). Nem
cursorMethods.limit A kiszolgáló által visszaadott dokumentumok maximális számát adja meg. Lásd: cursor.limit(). Nem
cursorMethods.skip Megadja azoknak a dokumentumoknak a számát, amelyeket kihagyhat, és ahonnan a MongoDB megkezdi az eredmények visszaadását. Lásd: cursor.skip(). Nem
batchSize A MongoDB-példány válaszainak minden egyes kötegében visszaadandó dokumentumok számát adja meg. A legtöbb esetben a köteg méretének módosítása nem befolyásolja a felhasználót vagy az alkalmazást. Az Azure Cosmos DB korlátozza, hogy az egyes kötegek mérete nem haladhatja meg a 40 MB-ot, ami a batchSize számú dokumentum méretének összege, ezért csökkentse ezt az értéket, ha a dokumentum mérete nagy. Nem
(az alapértelmezett érték 100)

Tipp.

Az ADF támogatja a BSON-dokumentumok szigorú módban való használatának támogatását. Győződjön meg arról, hogy a szűrő lekérdezése Szigorú módban van a Shell mód helyett. További leírást a MongoDB kézikönyvében talál.

Példa

"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 a MongoDB-hez fogadóként

A Másolási tevékenység fogadó szakasz a következő tulajdonságokat támogatja:

Property Leírás Required
típus A Másolási tevékenység fogadó típustulajdonságának CosmosDbMongoDbApiSink értékre kell állítania. Igen
writeBehavior Ismerteti, hogyan írhat adatokat az Azure Cosmos DB-be. Engedélyezett értékek: beszúrás és beillesztés.

Az upsert viselkedése az, hogy lecseréli a dokumentumot, ha már létezik ilyen _id dokumentum; ellenkező esetben szúrja be a dokumentumot.

Megjegyzés: A szolgáltatás automatikusan létrehoz egy _id dokumentumot, ha _id nincs megadva sem az eredeti dokumentumban, sem az oszlopleképezésben. Ez azt jelenti, hogy gondoskodnia kell arról, hogy a upsert a várt módon működjön, a dokumentum azonosítóval rendelkezik.
Nem
(az alapértelmezett beállítás a beszúrás)
writeBatchSize A writeBatchSize tulajdonság szabályozza az egyes kötegekben írandó dokumentumok méretét. A writeBatchSize értékének növelésével javíthatja a teljesítményt, és csökkentheti az értéket, ha a dokumentum mérete nagy. Nem
(az alapértelmezett érték 10 000)
writeBatchTimeout A köteg beszúrási műveletének várakozási ideje, mielőtt túllépi az időkorlátot. Az engedélyezett érték az időbélyeg. Nem
(az alapértelmezett érték 00:30:00 – 30 perc)

Tipp.

JSON-dokumentumok importálásához tekintse meg a JSON-dokumentumok importálását vagy exportálását ismertető szakaszt. A táblázatos formátumú adatok másolásához tekintse meg a sémaleképezést.

Példa

"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-dokumentumok importálása és exportálása

Ezt az Azure Cosmos DB-összekötőt egyszerűen használhatja:

  • Dokumentumok másolása két Azure Cosmos DB-gyűjtemény között.
  • JSON-dokumentumok importálása különböző forrásokból az Azure Cosmos DB-be, például a MongoDB-ből, az Azure Blob Storage-ból, az Azure Data Lake Store-ból és a szolgáltatás által támogatott egyéb fájlalapú tárolókból.
  • JSON-dokumentumokat exportálhat egy Azure Cosmos DB-gyűjteményből különböző fájlalapú tárolókba.

Séma-agnosztikus másolás elérése:

  • Az Adatok másolása eszköz használatakor válassza a JSON-fájlokba való exportálást vagy az Azure Cosmos DB-gyűjtemény lehetőséget.
  • Tevékenység létrehozásakor válassza a forrás vagy fogadó megfelelő fájltárolójával rendelkező JSON-formátumot.

Séma-hozzárendelés

Ha a MongoDB-hez készült Azure Cosmos DB-ből táblázatos fogadóba vagy fordítottba szeretne adatokat másolni, tekintse meg a sémaleképezést.

Kifejezetten az Azure Cosmos DB-be való íráshoz, hogy az Azure Cosmos DB-t a forrásadatokból a megfelelő objektumazonosítóval töltse fel, például egy "id" oszlop van az SQL-adatbázistáblában, és ennek értékét szeretné használni a MongoDB dokumentumazonosítójaként a beszúráshoz/upserthez, a MongoDB szigorú móddefiníciójának (_id.$oid) megfelelően kell beállítania a megfelelő sémaleképezést az alábbiak szerint:

Map ID in MongoDB sink

A másolási tevékenység végrehajtása után az alábbi BSON ObjectId jön létre a fogadóban:

{
    "_id": ObjectId("592e07800000000000000000")
}

A másolási tevékenység által forrásként és fogadóként támogatott adattárak listáját a támogatott adattárakban találja.