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:
- A ferramenta Copiar Dados
- O portal do Azure
- O SDK do .NET
- O SDK do Python
- PowerShell do Azure
- A API REST
- O modelo do Azure Resource Manager
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.
Navegue até a guia Gerenciar no workspace do Azure Data Factory ou do Synapse, selecione Serviços Vinculados e clique em Novo:
Pesquise o MongoDB Atlas e selecione o conector MongoDB Atlas.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
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 como v2, que dá suporte ao 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.
Conteúdo relacionado
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.