Megosztás a következőn keresztül:


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:

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.

  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 Mongo-t, és válassza a MongoDB-összekötőt.

    Képernyőkép a MongoDB-összekötőről.

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

    Képernyőkép a MongoDB társított szolgáltatáskonfigurációjáról.

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

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.