Adatok másolása a MongoDB-ből az Azure Data Factory vagy a Synapse Analytics használatával (örökölt)
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 azt ismerteti, hogyan másolhat adatokat MongoDB-adatbázisból az Azure Data Factory vagy a Synapse Analytics-folyamat másolási tevékenységével. A másolási tevékenység áttekintési cikkére épül, amely a másolási tevékenység általános áttekintését mutatja be.
Fontos
A szolgáltatás kiadott egy új MongoDB-összekötőt, amely jobb natív MongoDB-támogatást nyújt az ODBC-alapú implementációhoz képest. A részletekért tekintse meg a MongoDB-összekötőről szóló cikket.
Támogatott képességek
A MongoDB-adatbázisból bármilyen támogatott fogadóadattárba másolhat adatokat. A másolási tevékenység által forrásként/fogadóként támogatott adattárak listáját a Támogatott adattárak táblában találja.
Ez a MongoDB-összekötő a következőket támogatja:
- MongoDB 2.4,2.6, 3.0, 3.2, 3.4 és 3.6 verzió.
- Adatok másolása egyszerű vagy névtelen hitelesítéssel.
Előfeltételek
Ha az adattár helyszíni hálózaton, Azure-beli virtuális hálózaton vagy Amazon Virtual Private Cloudon belül található, konfigurálnia kell egy saját üzemeltetésű integrációs modult a csatlakozáshoz.
Ha az adattár felügyelt felhőalapú adatszolgáltatás, használhatja az Azure Integration Runtime-ot. Ha a hozzáférés a tűzfalszabályokban jóváhagyott IP-címekre korlátozódik, hozzáadhat azure integration runtime IP-eket az engedélyezési listához.
Az Azure Data Factory felügyelt virtuális hálózati integrációs moduljával is elérheti a helyszíni hálózatot anélkül, hogy saját üzemeltetésű integrációs modult telepítene és konfigurálna.
A Data Factory által támogatott hálózati biztonsági mechanizmusokkal és lehetőségekkel kapcsolatos további információkért lásd az adathozzáférési stratégiákat.
Az integrációs modul egy beépített MongoDB-illesztőt biztosít, ezért a MongoDB-ből történő adatmásoláskor nem kell manuálisan telepítenie az illesztőprogramokat.
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 felhasználói felületen
Az alábbi lépésekkel hozzon létre egy társított szolgáltatást a 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 Mongo-t, és válassza a MongoDB-ö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 a MongoDB-összekötőre jellemző Data Factory-entitások meghatározásához használt tulajdonságok részleteit ismertetik.
Társított szolgáltatás tulajdonságai
A MongoDB 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ágnak a következőre kell állítania: MongoDb | Igen |
kiszolgáló | A MongoDB-kiszolgáló IP-címe vagy állomásneve. | Igen |
kikötő | A MongoDB-kiszolgáló által az ügyfélkapcsolatok figyelésére használt TCP-port. | Nem (alapértelmezett érték: 27017) |
databaseName | A elérni kívánt MongoDB-adatbázis neve. | Igen |
authenticationType | A MongoDB-adatbázishoz való csatlakozáshoz használt hitelesítés típusa. Az engedélyezett értékek a következők: Alapszintű és Névtelen. |
Igen |
username | Felhasználói fiók a MongoDB eléréséhez. | Igen (alapszintű hitelesítés használata esetén). |
jelszó | A felhasználó jelszava. Jelölje meg ezt a mezőt SecureStringként, hogy biztonságosan tárolja, vagy hivatkozzon az Azure Key Vaultban tárolt titkos kódra. | Igen (alapszintű hitelesítés használata esetén). |
authSource | Annak a MongoDB-adatbázisnak a neve, amelyet a hitelesítő adatok hitelesítéséhez szeretne használni. | Szám Az alapszintű hitelesítéshez az alapértelmezett beállítás a rendszergazdai fiók és a databaseName tulajdonság használatával megadott adatbázis használata. |
enableSsl | Megadja, hogy a kiszolgálóhoz való kapcsolatok TLS-sel vannak-e titkosítva. Az alapértelmezett érték: hamis. | Nem |
allowSelfSignedServerCert | Megadja, hogy engedélyezi-e az önaláírt tanúsítványokat a kiszolgálóról. Az alapértelmezett érték: hamis. | Nem |
connectVia | Az adattárhoz való csatlakozáshoz használandó integrációs modul . További információ az Előfeltételek szakaszból. Ha nincs megadva, az alapértelmezett Azure Integration Runtime-t használja. | Nem |
Példa:
{
"name": "MongoDBLinkedService",
"properties": {
"type": "MongoDb",
"typeProperties": {
"server": "<server name>",
"databaseName": "<database name>",
"authenticationType": "Basic",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"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-adathalmaz esetében a következő tulajdonságok támogatottak:
Tulajdonság | Leírás | Kötelező |
---|---|---|
típus | Az adathalmaz típustulajdonságának a következőnek kell lennie: MongoDbCollection | Igen |
collectionName | A MongoDB-adatbázisban található gyűjtemény neve. | Igen |
Példa:
{
"name": "MongoDbDataset",
"properties": {
"type": "MongoDbCollection",
"linkedServiceName": {
"referenceName": "<MongoDB linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"collectionName": "<Collection name>"
}
}
}
Másolási tevékenység tulajdonságai
A tevékenységek meghatározásához elérhető szakaszok és tulajdonságok teljes listáját a Folyamatok című cikkben találja. Ez a szakasz a MongoDB-forrás által támogatott tulajdonságok listáját tartalmazza.
MongoDB mint forrás
A másolási tevékenység forrás szakaszában a következő tulajdonságok támogatottak:
Tulajdonság | Leírás | Kötelező |
---|---|---|
típus | A másolási tevékenység forrásának típustulajdonságának a következőnek kell lennie: MongoDbSource | Igen |
Lekérdezés | Az adatok olvasásához használja az egyéni SQL-92-lekérdezést. Például: válassza a * lehetőséget a MyTable-ból. | Nem (ha a "collectionName" az adathalmazban meg van adva) |
Példa:
"activities":[
{
"name": "CopyFromMongoDB",
"type": "Copy",
"inputs": [
{
"referenceName": "<MongoDB input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MongoDbSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Tipp.
Az SQL-lekérdezés megadásakor ügyeljen a DateTime formátumra. Például: SELECT * FROM Account WHERE LastModifiedDate >= '2018-06-01' AND LastModifiedDate < '2018-06-02'
vagy paraméter használata SELECT * FROM Account WHERE LastModifiedDate >= '@{formatDateTime(pipeline().parameters.StartTime,'yyyy-MM-dd HH:mm:ss')}' AND LastModifiedDate < '@{formatDateTime(pipeline().parameters.EndTime,'yyyy-MM-dd HH:mm:ss')}'
Séma a Data Factory szerint
Az Azure Data Factory szolgáltatás a mongoDB-gyűjtemény sémáját a gyűjtemény legújabb 100 dokumentumának használatával következteti. Ha ez a 100 dokumentum nem tartalmaz teljes sémát, egyes oszlopok figyelmen kívül hagyhatók a másolási művelet során.
Adattípus-leképezés a MongoDB-hez
Ha adatokat másol a MongoDB-ből, a mongoDB-adattípusokból a szolgáltatáson belül használt köztes adattípusokra az alábbi leképezéseket használja a rendszer. A séma- és adattípus-leképezések segítségével megtudhatja , hogy a másolási tevékenység hogyan rendeli le a forrásséma és az adattípust a fogadóhoz.
MongoDB-adattípus | Köztes szolgáltatás adattípusa |
---|---|
Bináris | Bájt[] |
Logikai | Logikai |
Dátum | Dátum/idő |
NumberDouble | Dupla |
NumberInt | Int32 |
NumberLong | Int64 |
ObjectID | Sztring |
Sztring | Sztring |
UUID | GUID |
Objektum | Újranormalizálva egybesimított oszlopokba a "_" beágyazott elválasztójellel |
Feljegyzés
A virtuális táblákat használó tömbök támogatásának megismeréséhez tekintse meg a virtuális táblákat használó összetett típusok támogatásával foglalkozó szakaszt .
Jelenleg a következő MongoDB-adattípusok nem támogatottak: DBPointer, JavaScript, Max/Min kulcs, Reguláris kifejezés, Szimbólum, Időbélyeg, Nem definiált.
Összetett típusok támogatása virtuális táblák használatával
A szolgáltatás egy beépített ODBC-illesztővel csatlakozik a MongoDB-adatbázishoz, és adatokat másol. Összetett típusok, például tömbök vagy különböző típusú objektumok esetén az illesztő újra normalizálja az adatokat a megfelelő virtuális táblákba. Ha egy tábla ilyen oszlopokat tartalmaz, az illesztőprogram a következő virtuális táblákat hozza létre:
- Alaptábla, amely ugyanazokat az adatokat tartalmazza, mint a valódi tábla, kivéve az összetett típusú oszlopokat. Az alaptábla ugyanazt a nevet használja, mint az általa képviselt valódi tábla.
- Minden egyes összetett típusú oszlophoz tartozó virtuális tábla , amely kibontja a beágyazott adatokat. A virtuális táblák neve a valódi tábla, a "_" elválasztó és a tömb vagy objektum neve alapján történik.
A virtuális táblák a valós táblában lévő adatokra hivatkoznak, így az illesztőprogram hozzáférhet a normalizált adatokhoz. A MongoDB-tömbök tartalmát a virtuális táblák lekérdezésével és összekapcsolásával érheti el.
Példa
Az ExampleTable például egy MongoDB-tábla, amely egy oszlopot tartalmaz, amelyben minden cellában található egy objektumtömb – Számlák és egy skaláris típusú tömböt tartalmazó oszlop – Minősítések.
_id | Ügyfél neve | Számlák | Szolgáltatásszint | Minősítések |
---|---|---|---|---|
1111 | ABC | [{invoice_id:"123", item:"toaster", price:"456", discount:"0.2"}, {invoice_id:"124", item:"sütő", ár: "1235", kedvezmény: "0,2"}] | Ezüst | [5,6] |
2222 | XYZ | [{invoice_id:"135", item:"hűtőszekrény", ár: "12543", kedvezmény: "0,0"}] | Arany | [1,2] |
Az illesztő több virtuális táblát hozna létre, hogy az egyetlen táblát képviselje. Az első virtuális tábla az "ExampleTable" nevű alaptábla, amely a példában látható. Az alaptábla az eredeti tábla összes adatát tartalmazza, a tömbökből származó adatokat azonban kihagyta, és kibontotta a virtuális táblákban.
_id | Ügyfél neve | Szolgáltatásszint |
---|---|---|
1111 | ABC | Ezüst |
2222 | XYZ | Arany |
Az alábbi táblázatok azokat a virtuális táblákat mutatják be, amelyek a példában az eredeti tömböket jelölik. Ezek a táblák a következőket tartalmazzák:
- Hivatkozás az eredeti tömb sorának megfelelő eredeti elsődleges kulcsoszlopra (a _id oszlopon keresztül)
- Az adatok pozíciójának jelzése az eredeti tömbben
- A tömb egyes elemeinek kibontott adatai
"ExampleTable_Invoices" táblázat:
_id | ExampleTable_Invoices_dim1_idx | invoice_id | cikk | price | Árengedmény |
---|---|---|---|---|---|
1111 | 0 | 123 | kenyérpirító | 456 | 0,2 |
1111 | 0 | 124 | sütő | 1235 | 0,2 |
2222 | 0 | 135 | hűtőszekrény | 12543 | 0,0 |
"ExampleTable_Ratings" táblázat:
_id | ExampleTable_Ratings_dim1_idx | ExampleTable_Ratings |
---|---|---|
1111 | 0 | 5 |
1111 | 0 | 6 |
2222 | 0 | 0 |
2222 | 0 | 2 |
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.