Gegevens kopiëren uit MongoDB met behulp van Azure Data Factory of Synapse Analytics (verouderd)

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In dit artikel wordt beschreven hoe u de kopieeractiviteit gebruikt in een Azure Data Factory- of Synapse Analytics-pijplijn om gegevens te kopiëren uit een MongoDB-database. Het is gebaseerd op het artikel over het overzicht van kopieeractiviteiten met een algemeen overzicht van de kopieeractiviteit.

Belangrijk

De service heeft een nieuwe MongoDB-connector uitgebracht die betere systeemeigen MongoDB-ondersteuning biedt ten opzichte van deze ODBC-implementatie. Raadpleeg het artikel over mongoDB-connector voor meer informatie.

Ondersteunde mogelijkheden

U kunt gegevens uit de MongoDB-database kopiëren naar een ondersteund sinkgegevensarchief. Zie de tabel Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen/sinks door de kopieeractiviteit.

Deze MongoDB-connector ondersteunt met name:

  • MongoDB-versies 2.4, 2.6, 3.0, 3.2, 3.4 en 3.6.
  • Gegevens kopiëren met basis- of anonieme verificatie.

Vereisten

Als uw gegevensarchief zich in een on-premises netwerk, een virtueel Azure-netwerk of een virtuele particuliere cloud van Amazon bevindt, moet u een zelf-hostende Integration Runtime configureren om er verbinding mee te maken.

Als uw gegevensarchief een beheerde cloudgegevensservice is, kunt u De Azure Integration Runtime gebruiken. Als de toegang is beperkt tot IP-adressen die zijn goedgekeurd in de firewallregels, kunt u IP-adressen van Azure Integration Runtime toevoegen aan de acceptatielijst.

U kunt ook de beheerde functie voor integratieruntime voor virtuele netwerken in Azure Data Factory gebruiken om toegang te krijgen tot het on-premises netwerk zonder een zelf-hostende Integration Runtime te installeren en te configureren.

Zie Strategieën voor gegevenstoegang voor meer informatie over de netwerkbeveiligingsmechanismen en -opties die door Data Factory worden ondersteund.

Integration Runtime biedt een ingebouwd MongoDB-stuurprogramma, dus u hoeft geen stuurprogramma handmatig te installeren bij het kopiëren van gegevens uit MongoDB.

Aan de slag

Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:

Een gekoppelde service maken voor MongoDB met behulp van de gebruikersinterface

Gebruik de volgende stappen om een gekoppelde service te maken voor MongoDB in de gebruikersinterface van Azure Portal.

  1. Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:

  2. Zoek naar Mongo en selecteer de MongoDB-connector.

    Screenshot of the MongoDB connector.

  3. Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.

    Screenshot of linked service configuration for MongoDB.

configuratiedetails Verbinding maken or

De volgende secties bevatten details over eigenschappen die worden gebruikt om Data Factory-entiteiten te definiëren die specifiek zijn voor MongoDB-connector.

Eigenschappen van gekoppelde service

De volgende eigenschappen worden ondersteund voor de gekoppelde MongoDB-service:

Eigenschappen Beschrijving Vereist
type De eigenschap Type moet worden ingesteld op: MongoDb Ja
server IP-adres of hostnaam van de MongoDB-server. Ja
poort TCP-poort die door de MongoDB-server wordt gebruikt om te luisteren naar clientverbindingen. Nee (standaard is 27017)
databaseName Naam van de MongoDB-database waartoe u toegang wilt hebben. Ja
authenticationType Type verificatie dat wordt gebruikt om verbinding te maken met de MongoDB-database.
Toegestane waarden zijn: Basic en Anoniem.
Ja
gebruikersnaam Gebruikersaccount voor toegang tot MongoDB. Ja (als basisverificatie wordt gebruikt).
password Het wachtwoord voor de gebruiker. Markeer dit veld als SecureString om het veilig op te slaan of verwijs naar een geheim dat is opgeslagen in Azure Key Vault. Ja (als basisverificatie wordt gebruikt).
authSource De naam van de MongoDB-database die u wilt gebruiken om uw referenties voor verificatie te controleren. Nee Voor basisverificatie is standaard het gebruik van het beheerdersaccount en de database die is opgegeven met de eigenschap DatabaseName.
enableSsl Hiermee geeft u op of de verbindingen met de server zijn versleuteld met behulp van TLS. De standaardwaarde is false. Nee
allowSelfSignedServerCert Hiermee geeft u op of zelfondertekende certificaten van de server moeten worden toegestaan. De standaardwaarde is false. Nee
connectVia De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Meer informatie vindt u in de sectie Vereisten . Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. Nee

Voorbeeld:

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

Eigenschappen van gegevensset

Zie Gegevenssets en gekoppelde services voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets. De volgende eigenschappen worden ondersteund voor mongoDB-gegevensset:

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de gegevensset moet worden ingesteld op: MongoDbCollection Ja
collectionName De naam van de verzameling in de MongoDB-database. Ja

Voorbeeld:

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

Eigenschappen van de kopieeractiviteit

Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de MongoDB-bron.

MongoDB als bron

De volgende eigenschappen worden ondersteund in de sectie bron van kopieeractiviteit:

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op: MongoDbSource Ja
query Gebruik de aangepaste SQL-92-query om gegevens te lezen. Bijvoorbeeld: selecteer * in MyTable. Nee (als 'collectionName' in de gegevensset is opgegeven)

Voorbeeld:

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

Tip

Let bij het opgeven van de SQL-query op de Datum/tijd-indeling. Bijvoorbeeld: SELECT * FROM Account WHERE LastModifiedDate >= '2018-06-01' AND LastModifiedDate < '2018-06-02' of parameter gebruiken 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')}'

Schema per Data Factory

De Azure Data Factory-service afgeleid van een MongoDB-verzameling met behulp van de nieuwste 100 documenten in de verzameling. Als deze 100 documenten geen volledig schema bevatten, kunnen sommige kolommen tijdens de kopieerbewerking worden genegeerd.

Toewijzing van gegevenstypen voor MongoDB

Bij het kopiëren van gegevens uit MongoDB worden de volgende toewijzingen gebruikt van MongoDB-gegevenstypen naar tussentijdse gegevenstypen die intern in de service worden gebruikt. Zie Schema- en gegevenstypetoewijzingen voor meer informatie over hoe kopieeractiviteit het bronschema en het gegevenstype toewijst aan de sink.

MongoDB-gegevenstype Tussentijdse servicegegevenstype
Binary Byte[]
Booleaanse waarde Booleaanse waarde
Datum Datum en tijd
NumberDouble Dubbel
NumberInt Int32
NumberLong Int64
ObjectID String
String String
UUID Guid
Object Opnieuw genormaliseerd in platte kolommen met '_' als geneste scheidingsteken

Notitie

Raadpleeg de sectie Ondersteuning voor complexe typen met behulp van virtuele tabellen voor meer informatie over ondersteuning voor matrices met behulp van virtuele tabellen .

Momenteel worden de volgende MongoDB-gegevenstypen niet ondersteund: DBPointer, JavaScript, Max/Min-sleutel, Reguliere expressie, Symbool, Tijdstempel, Niet gedefinieerd.

Ondersteuning voor complexe typen met behulp van virtuele tabellen

De service maakt gebruik van een ingebouwd ODBC-stuurprogramma om verbinding te maken met en gegevens te kopiëren uit uw MongoDB-database. Voor complexe typen, zoals matrices of objecten met verschillende typen in de documenten, worden gegevens opnieuw genormaliseerd in bijbehorende virtuele tabellen. Als een tabel dergelijke kolommen bevat, genereert het stuurprogramma de volgende virtuele tabellen:

  • Een basistabel, die dezelfde gegevens bevat als de echte tabel, met uitzondering van de complexe typekolommen. De basistabel gebruikt dezelfde naam als de werkelijke tabel die wordt aangegeven.
  • Een virtuele tabel voor elke kolom met complexe typen, waarmee de geneste gegevens worden uitgebreid. De virtuele tabellen hebben een naam met de naam van de echte tabel, een scheidingsteken '_' en de naam van de matrix of het object.

Virtuele tabellen verwijzen naar de gegevens in de echte tabel, zodat het stuurprogramma toegang heeft tot de gedenormaliseerde gegevens. U kunt toegang krijgen tot de inhoud van MongoDB-matrices door query's uit te voeren op de virtuele tabellen en deze samen te voegen.

Opmerking

Voorbeeldtabel hier is bijvoorbeeld een MongoDB-tabel met één kolom met een matrix objecten in elke cel: Facturen en één kolom met een matrix scalaire typen - Classificaties.

_id Klantnaam Facturen Serviceniveau Classificeringen
1111 ABC [{invoice_id:"123", item:"broodrooster", prijs:"456", korting:"0.2"}, {invoice_id:"124", item:"oven", prijs: "1235", korting: "0,2"}] Zilver [5,6]
2222 XYZ [{invoice_id:"135", item:"koelkast", prijs: "12543", korting: "0,0"}] Goud [1,2]

Het stuurprogramma genereert meerdere virtuele tabellen om deze enkele tabel weer te geven. De eerste virtuele tabel is de basistabel met de naam 'ExampleTable', weergegeven in het voorbeeld. De basistabel bevat alle gegevens van de oorspronkelijke tabel, maar de gegevens uit de matrices zijn weggelaten en worden uitgevouwen in de virtuele tabellen.

_id Klantnaam Serviceniveau
1111 ABC Zilver
2222 XYZ Goud

In de volgende tabellen worden de virtuele tabellen weergegeven die de oorspronkelijke matrices in het voorbeeld vertegenwoordigen. Deze tabellen bevatten het volgende:

  • Een verwijzing naar de oorspronkelijke primaire-sleutelkolom die overeenkomt met de rij van de oorspronkelijke matrix (via de _id kolom)
  • Een indicatie van de positie van de gegevens in de oorspronkelijke matrix
  • De uitgebreide gegevens voor elk element in de matrix

Tabel 'ExampleTable_Invoices':

_id ExampleTable_Invoices_dim1_idx invoice_id Item price Discount
1111 0 123 Broodrooster 456 0,2
1111 1 124 Oven 1235 0,2
2222 0 135 Koelkast 12543 0,0

Tabel 'ExampleTable_Ratings':

_id ExampleTable_Ratings_dim1_idx ExampleTable_Ratings
1111 0 5
1111 1 6
2222 0 1
2222 1 2

Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.