Copiare i dati da MongoDB con Azure Data FactoryCopy data from MongoDB using Azure Data Factory

Questo articolo illustra come usare l'attività di copia in Azure Data Factory per copiare dati da un database MongoDB.This article outlines how to use the Copy Activity in Azure Data Factory to copy data from a MongoDB database. Si basa sull'articolo di panoramica dell'attività di copia che presenta una panoramica generale sull'attività di copia.It builds on the copy activity overview article that presents a general overview of copy activity.

Importante

ADF include questa nuova versione di connettore MongoDB che offre un migliore supporto nativo per MongoDB.ADF release this new version of MongoDB connector which provides better native MongoDB support. Se nella propria soluzione si usa la versione precedente del connettore MongoDB che è supportata così com'è per compatibilità con le versioni precedenti, vedere l'articolo sulla versione legacy del connettore MongoDB.If you are using the previous MongoDB connector in your solution which is supported as-is for backward compatibility, refer to MongoDB connector (legacy) article.

Funzionalità supportateSupported capabilities

È possibile copiare dati da un database MongoDB in un qualsiasi archivio dati sink supportato.You can copy data from MongoDB database to any supported sink data store. Per un elenco degli archivi dati supportati come origini/sink dall'attività di copia, vedere la tabella relativa agli archivi dati supportati.For a list of data stores that are supported as sources/sinks by the copy activity, see the Supported data stores table.

In particolare, questo connettore MongoDB supporta versioni fino alla 3.4.Specifically, this MongoDB connector supports versions up to 3.4.

PrerequisitiPrerequisites

Se l'archivio dati è configurato in uno dei modi seguenti, è necessario configurare un Integration Runtime self-hosted per connettersi a questo archivio dati:If your data store is configured in one of the following ways, you need to set up a Self-hosted Integration Runtime in order to connect to this data store:

  • L'archivio dati si trova all'interno di una rete locale, all'interno di una rete virtuale di Azure o all'interno di un cloud privato virtuale di Amazon.The data store is located inside an on-premises network, inside Azure Virtual Network, or inside Amazon Virtual Private Cloud.
  • L'archivio dati è un servizio dati cloud gestito in cui l'accesso è limitato agli indirizzi IP consentiti nelle regole del firewall.The data store is a managed cloud data service where the access is restricted to IPs whitelisted in the firewall rules.

IntroduzioneGetting started

È possibile usare l'attività di copia con una pipeline tramite uno degli strumenti o degli SDK seguenti.You can use one of the following tools or SDKs to use the copy activity with a pipeline. Per istruzioni dettagliate, selezionare un collegamento:Select a link for step-by-step instructions:

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità di data factory specifiche per il connettore MongoDB.The following sections provide details about properties that are used to define Data Factory entities specific to MongoDB connector.

Proprietà del servizio collegatoLinked service properties

Per il servizio collegato di MongoDB sono supportate le proprietà seguenti:The following properties are supported for MongoDB linked service:

ProprietàProperty DescrizioneDescription ObbligatorioRequired
typetype La proprietà Type deve essere impostata su: MongoDbV2The type property must be set to: MongoDbV2 Yes
connectionStringconnectionString Specificare la stringa di connessione di MongoDB, ad esempio mongodb://[username:password@]host[:port][/[database][?options]].Specify the MongoDB connection string e.g. mongodb://[username:password@]host[:port][/[database][?options]]. Per altri dettagli, vedere la sezione sulla stringa di connessione nel manuale di MongoDB.Refer to MongoDB manual on connection string for more details.

Contrassegnare questo campo come tipo SecureString per archiviare la password in modo sicuro in Data Factory.Mark this field as a SecureString type to store it securely in Data Factory. È anche possibile fare riferimento a un segreto archiviato in Azure Key Vault.You can also reference a secret stored in Azure Key Vault.
Yes
databasedatabase Nome del database a cui si vuole accedere.Name of the database that you want to access. Yes
connectViaconnectVia Il runtime di integrazione da usare per la connessione all'archivio dati.The Integration Runtime to be used to connect to the data store. Ulteriori informazioni sono disponibili nella sezione prerequisiti .Learn more from Prerequisites section. Se non specificato, viene usato il runtime di integrazione di Azure predefinito.If not specified, it uses the default Azure Integration Runtime. NoNo

Esempio:Example:

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

Proprietà del set di datiDataset properties

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione dei set di dati, vedere Set di dati e servizi collegati.For a full list of sections and properties that are available for defining datasets, see Datasets and linked services. Per il set di dati MongoDB sono supportate le proprietà seguenti:The following properties are supported for MongoDB dataset:

ProprietàProperty DescrizioneDescription ObbligatorioRequired
typetype La proprietà Type del set di dati deve essere impostata su: MongoDbV2CollectionThe type property of the dataset must be set to: MongoDbV2Collection Yes
collectionNamecollectionName Nome della raccolta nel database MongoDB.Name of the collection in MongoDB database. Yes

Esempio:Example:

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

Proprietà dell'attività di copiaCopy activity properties

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline.For a full list of sections and properties available for defining activities, see the Pipelines article. Questa sezione presenta un elenco delle proprietà supportate dall'origine di MongoDB.This section provides a list of properties supported by MongoDB source.

MongoDB come origineMongoDB as source

Nella sezione origine dell'attività di copia sono supportate le proprietà seguenti:The following properties are supported in the copy activity source section:

ProprietàProperty DescrizioneDescription ObbligatorioRequired
typetype La proprietà Type dell'origine dell'attività di copia deve essere impostata su: MongoDbV2SourceThe type property of the copy activity source must be set to: MongoDbV2Source Yes
filterfilter Specifica il filtro di selezione usando gli operatori di query.Specifies selection filter using query operators. Per restituire tutti i documenti in una raccolta, omettere questo parametro o passare un documento vuoto ({}).To return all documents in a collection, omit this parameter or pass an empty document ({}). NoNo
cursorMethods.projectcursorMethods.project Specifica i campi da restituire nei documenti per la proiezione.Specifies the fields to return in the documents for projection. Per restituire tutti i campi nei documenti corrispondenti, omettere questo parametro.To return all fields in the matching documents, omit this parameter. NoNo
cursorMethods.sortcursorMethods.sort Specifica l'ordine in cui la query restituisce i documenti corrispondenti.Specifies the order in which the query returns matching documents. Fare riferimento a cursor.sort().Refer to cursor.sort(). NoNo
cursorMethods.limitcursorMethods.limit Specifica il numero massimo di documenti restituiti dal server.Specifies the maximum number of documents the server returns. Fare riferimento a cursor.limit().Refer to cursor.limit(). NoNo
cursorMethods.skipcursorMethods.skip Specifica il numero di documenti da ignorare e la posizione da cui MongoDB inizia a restituire i risultati.Specifies the number of documents to skip and from where MongoDB begins to return results. Fare riferimento a cursor.skip().Refer to cursor.skip(). NoNo
batchSizebatchSize Specifica il numero di documenti da restituire in ogni batch di risposta dall'istanza di MongoDB.Specifies the number of documents to return in each batch of the response from MongoDB instance. Nella maggior parte dei casi, la modifica della dimensione del batch non influisce sull'utente o sull'applicazione.In most cases, modifying the batch size will not affect the user or the application. Il limite massimo di Cosmos DB per ogni batch è di 40 MB, che corrisponde alla somma delle dimensioni del numero di documenti definiti in batchSize. Diminuire questo valore se si hanno documenti di grandi dimensioni.Cosmos DB limits each batch cannot exceed 40MB in size, which is the sum of the batchSize number of documents' size, so decrease this value if your document size being large. NoNo
(il valore predefinito è 100)(the default is 100)

Suggerimento

Azure Data Factory supporta l'utilizzo di documenti BSON in modalità strict.ADF support consuming BSON document in Strict mode. Assicurarsi che la query di filtro sia in modalità strict anziché in modalità shell.Make sure your filter query is in Strict mode instead of Shell mode. Per altre informazioni consultare il manuale di MongoDB.More description can be found at MongoDB manual.

Esempio:Example:

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

Esportare documenti JSON così come sonoExport JSON documents as-is

È possibile usare questo connettore MongoDB per esportare documenti JSON così come sono da una raccolta MongoDB a diversi archivi basati su file o ad Azure Cosmos DB.You can use this MongoDB connector to export JSON documents as-is from a MongoDB collection to various file-based stores or to Azure Cosmos DB. Per ottenere la copia senza schema, ignorare la sezione "struttura" (chiamata anche schema) nel set di dati e il mapping dello schema nell'attività di copia.To achieve such schema-agnostic copy, skip the "structure" (also called schema) section in dataset and schema mapping in copy activity.

Mapping dello schemaSchema mapping

Per copiare dati da MongoDB al sink in formato tabulare, vedere Mapping dello schema.To copy data from MongoDB to tabular sink, refer to schema mapping.

Passaggi successiviNext steps

Per un elenco degli archivi dati supportati come origini o sink dall'attività di copia in Azure Data Factory, vedere gli archivi dati supportati.For a list of data stores supported as sources and sinks by the copy activity in Azure Data Factory, see supported data stores.