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.
Feljegyzé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 | Felügyelt privát végpont |
---|---|---|
Copy tevékenység (forrás/fogadó) | (1) (2) | ✓ |
(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:
- Az Adatok másolása eszköz
- Az Azure Portal
- A .NET SDK
- A Python SDK
- Azure PowerShell
- A REST API
- Az Azure Resource Manager-sablon
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.
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:
Keresse meg a MongoDB-hez készült Azure Cosmos DB-t, és válassza ki az összekötőt.
Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új társított szolgáltatást.
Az összekötő 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:
Tulajdonság | Leírás | Kötelező |
---|---|---|
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:
Tulajdonság | Leírás | Kötelező |
---|---|---|
típus | Az adathalmaz típustulajdonságának CosmosDbMongoDbApiCollection értékre kell állítania. | Igen |
collectionName | 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:
Tulajdonság | Leírás | Kötelező |
---|---|---|
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:
Tulajdonság | Leírás | Kötelező |
---|---|---|
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:
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")
}
Kapcsolódó tartalom
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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: