Copiar dados do MongoDB Atlas, usando o Azure Data Factory ou Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Este artigo descreve como usar a atividade de cópia nos pipelines do Azure Data Factory ou do Azure Synapse Analytics para copiar dados de um banco de dados do MongoDB Atlas. Ele amplia o artigo Visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.

Funcionalidades com suporte

O conector MongoDB Atlas é compatível com as seguintes funcionalidades:

Funcionalidades com suporte IR
Atividade de cópia (origem/coletor) ① ②

① Runtime de integração do Azure ② Runtime de integração auto-hospedada

Para obter uma lista de armazenamentos de dados com suporte como origens e coletores, confira a tabela Armazenamentos de dados com suporte.

Pré-requisitos

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.

Se o armazenamento de dados for um serviço de dados de nuvem gerenciado, você poderá usar o 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.

Você também pode usar o recurso de runtime de integração da rede virtual gerenciada no Azure Data Factory para acessar a rede local sem instalar e configurar um runtime de integração auto-hospedada.

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.

Introdução

Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:

Criar um serviço vinculado ao MongoDB Atlas usando a interface do usuário

Use as etapas a seguir para criar um serviço vinculado ao MongoDB Atlas na interface do usuário portal do Microsoft Azure.

  1. Navegue até a guia Gerenciar no workspace do Azure Data Factory ou do Synapse, selecione Serviços Vinculados e clique em Novo:

  2. Pesquise o MongoDB Atlas e selecione o conector MongoDB Atlas.

    Select the MongoDB Atlas connector.

  3. Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.

    Configure a linked service to MongoDB Atlas.

Detalhes da configuração do conector

As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades do Data Factory específicas ao conector do MongoDB Atlas.

Propriedades do serviço vinculado

As propriedades a seguir têm suporte para o serviço vinculado do MongoDB Atlas:

Propriedade Descrição Obrigatório
type A propriedade type deve ser definida como: MongoDbAtlas Sim
connectionString Especifique a cadeia de conexão MongoDB Atlas, por exemplo, mongodb+srv://<username>:<password>@<clustername>.<randomString>.<hostName>/<dbname>?<otherProperties>.

Você também pode colocar uma cadeia de conexão no Azure Key Vault. Consulte o artigo Credenciais de armazenamento no Azure Key Vault para saber mais detalhes.
Sim
Banco de Dados O nome do banco de dados que você deseja criar. Sim
driverVersion Especifique a versão do driver para v2 que suporta MongoDB versão 3.6 e superior. Para obter mais informações, acesse este artigo. Não
connectVia O Integration Runtime a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Se não for especificado, ele usa o Integration Runtime padrão do Azure. Não

Exemplo:

{
    "name": "MongoDbAtlasLinkedService",
    "properties": {
        "type": "MongoDbAtlas",
        "typeProperties": {
            "connectionString": "mongodb+srv://<username>:<password>@<clustername>.<randomString>.<hostName>/<dbname>?<otherProperties>",
            "database": "myDatabase",
            "driverVersion": "<driver version>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Propriedades do conjunto de dados

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. As propriedades a seguir têm suporte para o conjunto de dados do MongoDB Atlas:

Propriedade Descrição Obrigatório
type A propriedade type do conjunto de dados deve ser definida como: MongoDbAtlasCollection Sim
collectionName Nome da coleção no banco de dados MongoDB Atlas. Sim

Exemplo:

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

Propriedades da atividade de cópia

Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines. Esta seção fornece uma lista das propriedades com suporte pela fonte e pelo coletor do MongoDB Atlas.

MongoDB Atlas como fonte

As propriedades a seguir têm suporte na seção source da atividade de cópia:

Propriedade Descrição Obrigatório
type A propriedade type da fonte da atividade de cópia deve ser definida como: MongoDbAtlasSource Sim
filter Especifica o filtro de seleção usando operadores de consulta. Para retornar todos os documentos em uma coleção, omita esse parâmetro ou passe um documento vazio ({}). Não
cursorMethods.project Especifica os campos a serem retornados nos documentos para projeção. Para retornar todos os campos nos documentos correspondentes, omita este parâmetro. Não
cursorMethods.sort Especifica a ordem na qual a consulta retorna documentos correspondentes. Consulte cursor.sort(). Não
cursorMethods.limit Especifica o número máximo de documentos que o servidor retorna. Consulte cursor.limit(). Não
cursorMethods.skip Especifica o número de documentos a serem ignorados e de onde o MongoDB Atlas começa a retornar resultados. Consulte cursor.skip(). Não
batchSize Especifica o número de documentos a serem retornados em cada lote da resposta da instância do MongoDB Atlas. Na maioria dos casos, modificar o tamanho do lote não afetará o usuário ou o aplicativo. O Azure Cosmos DB limita cada lote para que não exceda 40 MB de tamanho, que é a soma do número batchSize do tamanho dos documentos. Portanto, diminua esse valor se o tamanho do documento for grande. Não
(o padrão é 100)

Dica

Suporte do ADF consumindo o documento BSON em Modo estrito. Verifique se sua consulta de filtro está em Modo estrito em vez do modo Shell. Veja mais descrições no manual do MongoDB.

Exemplo:

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

As seguintes propriedades são suportadas na seção Copy Activity sink:

Propriedade Descrição Obrigatório
type O tipo de propriedade do coletor de Atividade de Cópia deve ser definido como MongoDbAtlasSink. Sim
writeBehavior Descreve como gravar dados no MongoDB Atlas. Valores permitidos são insert e upsert.

O comportamento de upsert será substituir o documento se um documento com a mesma _id já existir; caso contrário, insira o documento.

Nota: o serviço gera automaticamente uma _id ID para um documento _id se não for especificada uma ID no documento original ou no mapeamento de coluna. Isso significa que, para upsert funcionar conforme esperado, o documento deve ter uma ID.
No
(o padrão é insert)
writeBatchSize A propriedade writeBatchSize controla o tamanho dos documentos que escrevemos em cada lote. Você pode tentar aumentar o valor de writeBatchSize para melhorar o desempenho e diminuir o valor se o tamanho do documento for grande. Não
(o padrão é 10.000)
writeBatchTimeout O tempo de espera para que a operação de inserção em lote seja concluída antes de atingir o tempo limite. O valor permitido é timespan. Não
(o padrão é 30:00:00 - 30 minutos)

Dica

Para importar documentos JSON como eles estão, consulte a seção importar ou exportar documentos JSON; para copiar de dados em formato tabular, consulte mapeamento de esquema.

Exemplo

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

Importar e Exportar documentos JSON

Você pode usar esse conector do MongoDB Atlas para facilmente:

  • Copiar documentos entre duas coleções do MongoDB Atlas como estão.
  • Importe documentos JSON de várias fontes para o MongoDB Atlas, incluindo do Azure Cosmos DB, armazenamento de Blob do Azure, Azure Data Lake Store e outros armazenamentos baseados em arquivo com suporte.
  • Exportar documentos JSON de uma coleção do MongoDB Atlas para vários repositórios baseados em arquivo.

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.

Mapeamento de esquema

Para copiar dados do MongoDB Atlas para o coletor tabular ou reverso, confira o mapeamento de esquema.

Para obter uma lista de armazenamentos de dados com suporte como coletores e fontes da atividade de cópia, confira os armazenamentos de dados com suporte.