Copiar dados do MongoDB usando o Azure Data FactoryCopy data from MongoDB using Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Este artigo descreve como usar a atividade de cópia no Azure Data Factory para copiar dados de um banco de dados MongoDB.This article outlines how to use the Copy Activity in Azure Data Factory to copy data from a MongoDB database. Ele amplia o artigo Visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.It builds on the copy activity overview article that presents a general overview of copy activity.

Importante

O ADF lança essa nova versão do conector do MongoDB que fornece suporte nativo aprimorado ao MongoDB.ADF release this new version of MongoDB connector which provides better native MongoDB support. Se você estiver usando o conector MongoDB anterior em sua solução, que é tem suporte no estado em que se encontra para oferecer compatibilidade com versões anteriores, confira o artigo Conector do MongoDB (herdado).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.

Funcionalidades com suporteSupported capabilities

Você pode copiar dados de um banco de dados MongoDB para qualquer armazenamento de dados de coletor com suporte.You can copy data from MongoDB database to any supported sink data store. Para obter uma lista de armazenamentos de dados com suporte como origens/coletores da atividade de cópia, confira a tabela Armazenamentos de dados com suporte.For a list of data stores that are supported as sources/sinks by the copy activity, see the Supported data stores table.

Especificamente, esse conector do MongoDB dá suporte a versões de até 4,2.Specifically, this MongoDB connector supports versions up to 4.2.

Pré-requisitosPrerequisites

Se o armazenamento de dados estiver localizado dentro de uma rede local, em uma rede virtual do Azure ou na Amazon Virtual Private Cloud, você precisará configurar um runtime de integração auto-hospedada para se conectar a ele.If your data store is located inside an on-premises network, an Azure virtual network, or Amazon Virtual Private Cloud, you need to configure a self-hosted integration runtime to connect to it.

Por outro lado, se o armazenamento de dados for um serviço de dados de nuvem gerenciado, você poderá usar o Azure Integration Runtime.Alternatively, if your data store is a managed cloud data service, you can use Azure integration runtime. Se o acesso for restrito aos IPs que estão aprovados nas regras de firewall, você poderá adicionar IPs do Azure Integration Runtime à lista de permissões.If the access is restricted to IPs that are approved in the firewall rules, you can add Azure Integration Runtime IPs into the allow list.

Para obter mais informações sobre os mecanismos de segurança de rede e as opções compatíveis com o Data Factory, consulte Estratégias de acesso a dados.For more information about the network security mechanisms and options supported by Data Factory, see Data access strategies.

IntroduçãoGetting started

Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:To perform the Copy activity with a pipeline, you can use one of the following tools or SDKs:

As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades do Data Factory específicas ao conector do MongoDB.The following sections provide details about properties that are used to define Data Factory entities specific to MongoDB connector.

Propriedades do serviço vinculadoLinked service properties

As propriedades a seguir têm suporte para o serviço vinculado do MongoDB:The following properties are supported for MongoDB linked service:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type deve ser definida como: MongoDbV2The type property must be set to: MongoDbV2 SimYes
connectionStringconnectionString Especifique a cadeia de conexão MongoDB, por exemplo, mongodb://[username:password@]host[:port][/[database][?options]].Specify the MongoDB connection string e.g. mongodb://[username:password@]host[:port][/[database][?options]]. Confira o manual do MongoDB na cadeia de conexão para obter mais detalhes.Refer to MongoDB manual on connection string for more details.

Você também pode colocar uma cadeia de conexão em Azure Key Vault.You can also put a connection string in Azure Key Vault. Consulte armazenar credenciais em Azure Key Vault com mais detalhes.Refer to Store credentials in Azure Key Vault with more details.
SimYes
Banco de Dadosdatabase O nome do banco de dados que você deseja criar.Name of the database that you want to access. SimYes
connectViaconnectVia O Integration Runtime a ser usado para se conectar ao armazenamento de dados.The Integration Runtime to be used to connect to the data store. Saiba mais na seção Pré-requisitos.Learn more from Prerequisites section. Se não for especificado, ele usa o Integration Runtime padrão do Azure.If not specified, it uses the default Azure Integration Runtime. NãoNo

Exemplo:Example:

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

Propriedades do conjunto de dadosDataset properties

Para obter uma lista completa de seções e propriedades disponíveis para definição de conjuntos de dados, consulte Conjuntos de dados e serviços vinculados.For a full list of sections and properties that are available for defining datasets, see Datasets and linked services. As propriedades a seguir têm suporte para o conjunto de dados do MongoDB:The following properties are supported for MongoDB dataset:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type do conjunto de conjuntos deve ser definida como: MongoDbV2CollectionThe type property of the dataset must be set to: MongoDbV2Collection SimYes
collectionNamecollectionName Nome da coleção no banco de dados MongoDB.Name of the collection in MongoDB database. SimYes

Exemplo:Example:

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

Propriedades da atividade de cópiaCopy activity properties

Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines.For a full list of sections and properties available for defining activities, see the Pipelines article. Esta seção fornece uma lista das propriedades com suporte pela fonte MongoDB.This section provides a list of properties supported by MongoDB source.

MongoDB como fonteMongoDB as source

As propriedades a seguir têm suporte na seção source da atividade de cópia:The following properties are supported in the copy activity source section:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type da fonte da atividade de cópia deve ser definida como: MongoDbV2SourceThe type property of the copy activity source must be set to: MongoDbV2Source SimYes
filtrofilter Especifica o filtro de seleção usando operadores de consulta.Specifies selection filter using query operators. Para retornar todos os documentos em uma coleção, omita esse parâmetro ou passe um documento vazio ({}).To return all documents in a collection, omit this parameter or pass an empty document ({}). NãoNo
cursorMethods.projectcursorMethods.project Especifica os campos a serem retornados nos documentos para projeção.Specifies the fields to return in the documents for projection. Para retornar todos os campos nos documentos correspondentes, omita este parâmetro.To return all fields in the matching documents, omit this parameter. NãoNo
cursorMethods.sortcursorMethods.sort Especifica a ordem na qual a consulta retorna documentos correspondentes.Specifies the order in which the query returns matching documents. Consulte cursor.sort().Refer to cursor.sort(). NãoNo
cursorMethods.limitcursorMethods.limit Especifica o número máximo de documentos que o servidor retorna.Specifies the maximum number of documents the server returns. Consulte cursor.limit().Refer to cursor.limit(). NãoNo
cursorMethods.skipcursorMethods.skip Especifica o número de documentos a serem ignorados e de onde o MongoDB começa a retornar resultados.Specifies the number of documents to skip and from where MongoDB begins to return results. Consulte cursor.skip().Refer to cursor.skip(). NãoNo
batchSizebatchSize Especifica o número de documentos a serem retornados em cada lote da resposta da instância do MongoDB.Specifies the number of documents to return in each batch of the response from MongoDB instance. Na maioria dos casos, modificar o tamanho do lote não afetará o usuário ou o aplicativo.In most cases, modifying the batch size will not affect the user or the application. Cosmos DB limita que cada lote não pode exceder 40 MB de tamanho, que é a soma do tamanho do batchSize dos documentos, portanto, diminua esse valor se o tamanho do documento for grande.Cosmos DB limits each batch cannot exceed 40 MB in size, which is the sum of the batchSize number of documents' size, so decrease this value if your document size being large. NãoNo
(o padrão é 100)(the default is 100)

Dica

Suporte do ADF consumindo o documento BSON em Modo estrito.ADF support consuming BSON document in Strict mode. Verifique se sua consulta de filtro está em Modo estrito em vez do modo Shell.Make sure your filter query is in Strict mode instead of Shell mode. Veja mais descrições no manual do MongoDB.More description can be found at MongoDB manual.

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

Exportar documentos JSON no estado em que se encontraExport JSON documents as-is

Você pode usar esse conector do MongoDB para exportar documentos JSON no estado em que se encontra de uma coleção do MongoDB para vários armazenamentos baseados em arquivo ou para o 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. Para efetuar essa cópia independente de esquema, ignore a seção da "estrutura" (também chamada de esquema) no conjunto de dados e mapeamento de esquema na atividade de cópia.To achieve such schema-agnostic copy, skip the "structure" (also called schema) section in dataset and schema mapping in copy activity.

Mapeamento de esquemaSchema mapping

Para copiar dados do MongoDB para o coletor de tabela, confira o mapeamento do esquema.To copy data from MongoDB to tabular sink, refer to schema mapping.

Próximas etapasNext steps

Para obter uma lista de armazenamentos de dados com suporte como origens e coletores pela atividade de cópia no Azure Data Factory, consulte Armazenamentos de dados com suporte.For a list of data stores supported as sources and sinks by the copy activity in Azure Data Factory, see supported data stores.