Copia dati da o verso MongoDB utilizzando Azure Data Factory o Synapse Analytics

APPLICABILE A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Data Factory in Microsoft Fabric è la nuova generazione di Azure Data Factory, con un'architettura più semplice, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con l'integrazione dei dati, iniziare con Fabric Data Factory. I carichi di lavoro di Azure Data Factory esistenti possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

Questo articolo spiega come utilizzare l'attività di copia in Azure Data Factory e Synapse Analytics per copiare dati da e verso un database MongoDB. Si basa sull'articolo di panoramica dell'attività di copia che presenta una panoramica generale sull'attività di copia.

Note

Questo connettore è disponibile anche in Data Factory in Microsoft Fabric. Per le configurazioni e le funzionalità specifiche di Fabric, consulta la documentazione del connettore MongoDB per Fabric.

Importante

Il nuovo connettore MongoDB offre un supporto mongoDB nativo migliorato. Se usi il connettore MongoDB legacy nella tua soluzione, supportato as-is solo per compatibilità retroattiva, vedi connettore MongoDB (legacy). Puoi usare questo connettore per copiare dati da e verso un Azure DocumentDB (compatibile con MongoDB).

Funzionalità supportate

Questo connettore MongoDB supporta le seguenti funzionalità:

Funzionalità supportate IR
Attività Copy (origine/sink) (1) (2)

① Azure Integration Runtime ② Runtime di integrazione self-hosted

Per un elenco dei dati store supportati come source e sink, consulta la tabella Supported data stores .

In particolare, questo connettore MongoDB supporta le versioni fino alla 4.2. Se il lavoro richiede versioni più recenti della 4.2, considerare l'uso di MongoDB Atlas con il connettore MongoDB Atlas, che offre funzionalità e supporto più completi.

Prerequisiti

Se l'archivio dati si trova all'interno di una rete locale, di una rete virtuale Azure o di Amazon Virtual Private Cloud, è necessario configurare un runtime di integrazione self-hosted per connettersi.

Se l'archivio dati è un servizio dati cloud gestito, è possibile usare il Azure Integration Runtime. Se l'accesso è limitato agli indirizzi IP approvati nelle regole del firewall, è possibile aggiungere Azure Integration Runtime IP all'elenco elementi consentiti.

È anche possibile usare la funzionalità managed virtual network integration runtime in Azure Data Factory per accedere alla rete locale senza installare e configurare un runtime di integrazione self-hosted.

Per altre informazioni sui meccanismi di sicurezza di rete e sulle opzioni supportate da Data Factory, vedere strategie di accesso ai dati.

Introduzione

Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o degli SDK seguenti:

Crea un servizio collegato a MongoDB usando l'interfaccia utente

Usare la procedura seguente per creare un servizio collegato a MongoDB nell'interfaccia utente del portale di Azure.

  1. Sfoglia la scheda Gestisci nel tuo spazio di lavoro Azure Data Factory o Synapse e seleziona Servizi Collegati. Poi seleziona Nuovo:

  2. Cercare MongoDB e selezionare il connettore MongoDB.

    Selezionare il connettore MongoDB.

  3. Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.

    Configurare un servizio collegato in MongoDB.

Dettagli di configurazione del connettore

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità di data factory specifiche per il connettore MongoDB.

Proprietà del servizio collegato

La seguente tabella elenca le proprietà supportate per un servizio collegato a MongoDB:

Proprietà Descrizione Obbligatoria
type Imposta la proprietà di tipo su: MongoDbV2
connectionString Specificare la stringa di connessione di MongoDB, come mongodb://[username:password@]host[:port][/[database][?options]]. Per maggiori dettagli, consulta il manuale MongoDB sulla stringa di connessione.

È anche possibile inserire un stringa di connessione in Azure Key Vault. Per maggiori dettagli, consulta Archivia credenziali in Azure Key Vault. |Sì | | database | Nome del database a cui vuoi accedere. | Sì | | connectVia | L'Integration Runtime da utilizzare per connettersi allo store dati. Per altre informazioni, vedere la sezione Prerequisiti. Se non specifichi questa proprietà, viene usato il Azure Integration Runtime predefinito. |No |

Esempio:

{
    "name": "MongoDBLinkedService",
    "properties": {
        "type": "MongoDbV2",
        "typeProperties": {
            "connectionString": "mongodb://[username:password@]host[:port][/[database][?options]]",
            "database": "myDatabase"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Proprietà del set di dati

Per un elenco completo di sezioni e proprietà che puoi utilizzare per definire dataset, consulta Dataset e servizi collegati. La tabella seguente elenca le proprietà supportate per un dataset MongoDB:

Proprietà Descrizione Obbligatoria
type Imposta la proprietà di tipo del dataset a: MongoDbV2Collection
collectionName Nome della raccolta nel database MongoDB.

Esempio:

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

Proprietà dell'attività di copia

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline. Questa sezione fornisce un elenco delle proprietà supportate dall'origine e dal sink MongoDB.

MongoDB come origine

La sezione sorgente dell'attività di copia supporta le seguenti proprietà:

Proprietà Descrizione Obbligatoria
type Imposta la proprietà di tipo della sorgente dell'attività di copia su: MongoDbV2Source
filter Specifica il filtro di selezione usando gli operatori di query. Per restituire tutti i documenti in una raccolta, omettere questo parametro o passare un documento vuoto ({}). No
cursorMethods.project Specifica i campi da restituire nei documenti per la proiezione. Per restituire tutti i campi nei documenti corrispondenti, omettere questo parametro. No
cursorMethods.sort Specifica l'ordine in cui la query restituisce i documenti corrispondenti. Fare riferimento a cursor.sort(). No
cursorMethods.limit Specifica il numero massimo di documenti restituiti dal server. Fare riferimento a cursor.limit(). No
cursorMethods.skip Specifica il numero di documenti da ignorare e la posizione da cui MongoDB inizia a restituire i risultati. Fare riferimento a cursor.skip(). No
batchSize Specifica il numero di documenti da restituire in ogni batch di risposta dall'istanza di MongoDB. Nella maggior parte dei casi, modificare la dimensione del lotto non influisce sull'utente o sull'applicazione. Azure Cosmos DB limita che ogni batch non possa superare i 40 MB, che è la somma della dimensione del numero di documenti del batch, quindi riduci questo valore se la dimensione del documento è grande. No
(il valore predefinito è 100)

Suggerimento

Il servizio supporta l'utilizzo del documento BSON in modalità strict. Assicurati che la tua query di filtro sia in modalità Rigorosa invece che in modalità Shell. Per maggiori informazioni, consulta il manuale MongoDB.

Esempio:

"activities":[
    {
        "name": "CopyFromMongoDB",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<MongoDB input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "MongoDbV2Source",
                "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>"
            }
        }
    }
]

MongoDB come sink

La sezione Copy Activity supporta le seguenti proprietà:

Proprietà Descrizione Obbligatoria
type Imposta la proprietà type del server di attività di copia su MongoDbV2Sink.
writeBehavior Descrive come scrivere dati in MongoDB. Valori consentiti: insert e upsert.

Il comportamento di upsert consiste nella sostituzione del documento se esiste già un documento con lo stesso _id. In caso contrario, il documento viene inserito.

Nota: il servizio genera automaticamente un _id per un documento se non è specificato un _id nel documento originale o tramite il mapping di colonna. È quindi necessario assicurarsi che il documento contenga un ID in modo che upsert funzioni come previsto.
No
(il valore predefinito è insert)
writeBatchSize La proprietà writeBatchSize controlla il numero di documenti da scrivere in ogni lotto. Per migliorare le prestazioni, prova ad aumentare il valore. Se la dimensione del documento è grande, prova a ridurne il valore. No
(il valore predefinito è 10.000)
writeBatchTimeout Tempo di attesa per il completamento dell'operazione di inserimento batch prima del timeout. Il valore consentito è timespan. No
(il valore predefinito è 00:30:00 - 30 minuti)

Suggerimento

Per importare documenti JSON as-is, consulta la sezione Importa o esporta documenti JSON . Per copiare dai dati a forma tabellare, vedi Mappatura dello schema.

Esempio

"activities":[
    {
        "name": "CopyToMongoDB",
        "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": "MongoDbV2Sink",
                "writeBehavior": "upsert"
            }
        }
    }
]

Importare ed esportare documenti JSON

Usa questo connettore MongoDB per facilità:

  • Copiare i documenti tra due raccolte MongoDB così come sono.
  • Importare documenti JSON da varie origini in MongoDB, tra cui Azure Cosmos DB, Azure Blob Storage, Azure Data Lake Store e altre memorie basate su file supportate.
  • Esportare documenti JSON da una raccolta MongoDB in diversi archivi basati su file.

Per ottenere una copia priva di schema, ignorare la sezione "structure" (chiamata anche schema) nel set di dati e il mapping dello schema nell'attività di copia.

Mapping del tipo di dati per MongoDB

Quando copi dati da MongoDB, il servizio utilizza le seguenti mappature dai tipi di dati MongoDB ai tipi di dati intermedi. Per maggiori informazioni su come l'attività di copia mappa lo schema sorgente e il tipo di dato al sink, vedi Schema e mappature di tipo di dati.

Tipo di dati MongoDB Tipo di dati del servizio provvisorio
Date Int64
ObjectId String
Decimal128 String
Timestamp I 32 bit più significativi -> Int64
I 32 bit meno significativi -> Int64
String String
Double String
Int32 Int64
Int64 Int64
Boolean Boolean
Null Null
JavaScript String
Espressione regolare String
Tasto minimo Int64
Tasto massimo Int64
Binary String

Ciclo di vita e aggiornamento del connettore MongoDB

La tabella seguente illustra la fase di rilascio e i log delle modifiche per versioni diverse del connettore MongoDB:

Versione Fase di rilascio Log delle modifiche
MongoDB (versione legacy) Removed Non applicabile.
MongoDB Versione GA disponibile • Supporta solo le query MongoDB equivalenti.

• Double viene letto come tipo di dati stringa.

• Legge anche come tipo di dato Stringa. |

Aggiornare il servizio collegato MongoDB

Creare un nuovo servizio collegato MongoDB e configurarlo facendo riferimento alle Proprietà del servizio collegato.

Per un elenco degli archivi dati supportati come origini e sink dall'attività Copy, vedere Archivi dati supportati.