Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A:
Azure Data Factory
Azure Synapse Analytics
Dica
Data Factory no Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA interna e novos recursos. Se você não estiver familiarizado com a integração de dados, comece com Fabric Data Factory. As cargas de trabalho existentes do ADF podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.
Este artigo explica como usar a Atividade de Cópia nos pipelines Azure Data Factory e Synapse Analytics para copiar dados de e para um banco de dados MongoDB. Ele amplia o artigo Visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.
Note
Esse conector também está disponível no Data Factory no Microsoft Fabric. Para configurações e recursos específicos do Fabric, consulte a documentação do conector do MongoDB para o Fabric.
Importante
O novo conector do MongoDB fornece suporte ao MongoDB nativo aprimorado. Se você está usando o conector MongoDB antigo na sua solução, suportado as-is apenas para compatibilidade retroativa, veja conector MongoDB (legacy). Você pode usar esse conector para copiar dados de e para um Azure DocumentDB (com compatibilidade com MongoDB).
Funcionalidades com suporte
Este conector MongoDB suporta as seguintes capacidades:
| Funcionalidades com suporte | IR |
|---|---|
| Atividade Copy (origem/coletor) | (1) (2) |
① Runtime de integração do Azure ② Runtime de integração auto-hospedado
Para uma lista de repositórios de dados suportados como fontes e sumidouros, veja a tabela de armazenamentos de dados suportados .
Especificamente, este conector do MongoDB dá suporte a versões até 4.2. Se o seu trabalho exige versões mais recentes que a 4.2, considere utilizar o MongoDB Atlas com o conector do MongoDB Atlas, que oferece suporte e recursos mais completos.
Pré-requisitos
Se o armazenamento de dados estiver localizado dentro de uma rede local interna, uma rede virtual do Azure ou uma Amazon Virtual Private Cloud (VPC), você precisará configurar um runtime de integração auto-hospedado 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 a IPs aprovados nas regras de firewall, você poderá adicionar Azure Integration Runtime IPs à lista de permissões.
Você também pode usar o recurso managed virtual network integration runtime 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, você pode usar uma das seguintes ferramentas ou SDKs:
- Ferramenta Copiar Dados
- Portal do Azure
- .NET SDK
- SDK Python
- Azure PowerShell
- REST API
- modelo Azure Resource Manager
Crie um serviço vinculado ao MongoDB usando a interface
Use as etapas a seguir para criar um serviço vinculado ao MongoDB na interface do usuário do portal Azure.
Navegue até a aba Gerenciar no seu Azure Data Factory ou no espaço de trabalho Synapse e selecione Serviços Vinculados. Depois, selecione Novo:
Pesquise por MongoDB e selecione o conector MongoDB.
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.
Propriedades do serviço vinculado
A tabela a seguir lista as propriedades suportadas para um serviço vinculado ao MongoDB:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | Defina a propriedade de tipo para: MongoDbV2 | Sim |
| connectionString | Especifique a cadeia de conexão do MongoDB, como mongodb://[username:password@]host[:port][/[database][?options]]. Para mais detalhes, consulte o manual do MongoDB sobre cadeia de conexão. |
Você também pode colocar uma cadeia de conexão no Azure Key Vault. Para mais detalhes, veja Armazenar credenciais no Azure Key Vault. |Sim | | Banco de dados | Nome do banco de dados que você quer acessar. | Sim | | connectVia | O Integration Runtime para usar para conectar ao armazenamento de dados. Para saber mais, confira a seção Pré-requisitos. Se você não especificar essa propriedade, o Azure Integration Runtime padrão é usado. |Não |
Exemplo:
{
"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 dados
Para uma lista completa de seções e propriedades que você pode usar para definir conjuntos de dados, veja Conjuntos de dados e serviços vinculados. A tabela a seguir lista as propriedades suportadas para um conjunto de dados do MongoDB:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | Defina a propriedade de tipo do conjunto de dados para: MongoDbV2Collection | Sim |
| collectionName | Nome da coleção no banco de dados MongoDB. | Sim |
Exemplo:
{
"name": "MongoDbDataset",
"properties": {
"type": "MongoDbV2Collection",
"typeProperties": {
"collectionName": "<Collection name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<MongoDB 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.
MongoDB como fonte
A seção de código-fonte da atividade de cópia suporta as seguintes propriedades:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | Defina a propriedade de tipo da fonte da atividade de cópia para: MongoDbV2Source | Sim |
| filtro | 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 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. Na maioria dos casos, modificar o tamanho do lote não afeta o usuário nem o aplicativo. O Azure Cosmos DB limita que cada lote não pode exceder 40 MB de tamanho, que é a soma do tamanho do tamanho do lote dos documentos, então diminua esse valor se o tamanho do seu documento for grande. | Não (o padrão é 100) |
Dica
Suporte do ADF consumindo o documento BSON em Modo estrito. Certifique-se de que sua consulta de filtro esteja no modo Estrito em vez do modo Shell. Para mais informações, consulte o manual do MongoDB.
Exemplo:
"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 como coletor
A seção Copy Activity sink suporta as seguintes propriedades:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | Defina a propriedade de tipo do atenuador de atividade de cópia para MongoDbV2Sink. | Sim |
| writeBehavior | Descreve como gravar dados no MongoDB. 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. |
Não (o padrão é insert) |
| writeBatchSize | A propriedade writeBatchSize controla o número de documentos a serem escritos em cada lote. Para melhorar o desempenho, tente aumentar o valor. Se o tamanho do seu documento for grande, tente diminuir o valor. | 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 as-is, veja a seção Importar ou exportar documentos JSON . Para copiar de dados em formato tabular, veja Mapeamento de esquemas.
Exemplo
"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"
}
}
}
]
Importar ou exportar documentos JSON
Use este conector MongoDB para facilitar a:
- Copiar documentos entre duas coleções do MongoDB no estado em que se encontram.
- Importe documentos JSON de várias fontes para o MongoDB, incluindo do Azure Cosmos DB, Armazenamento de Blobs do Azure, Azure Data Lake Storage e outros armazenamentos de arquivos suportados.
- Exportar documentos JSON de uma coleção do MongoDB 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 tipo de dados para o MongoDB
Quando você copia dados do MongoDB, o serviço usa os seguintes mapeamentos dos tipos de dados do MongoDB para os tipos de dados intermediários. Para mais informações sobre como a atividade de cópia mapeia o esquema de origem e o tipo de dado para o sumidor, veja Mapeamentos de esquema e tipos de dados.
| Tipo de dados do MongoDB | Tipo de dados de serviço provisório |
|---|---|
| Date | Int64 |
| IdentificadorDeObjeto | String |
| Decimal128 | String |
| TimeStamp | Os 32 bits mais significativos –> Int64 Os 32 bits menos significativos –> Int64 |
| String | String |
| Double | String |
| Int32 | Int64 |
| Int64 | Int64 |
| booleano | booleano |
| Nulo | Nulo |
| JavaScript | String |
| Expressão regular | String |
| Chave mínima | Int64 |
| Chave máxima | Int64 |
| Binary | String |
Ciclo de vida e atualização do conector do MongoDB
A tabela a seguir mostra o estágio de lançamento e os logs de alteração para versões diferentes do conector do MongoDB:
| Versão | Fase de liberação | Log de alterações |
|---|---|---|
| MongoDB (herdado) | Removido | Não aplicável. |
| MongoDB | Versão GA disponível | • Dê suporte apenas às consultas equivalentes do MongoDB. • O duplo é lido como tipo de dados String. |
• Lê Double como tipo de dado String. |
Atualizar o serviço vinculado do MongoDB
Crie um novo serviço vinculado ao MongoDB e configure-o consultando as Propriedades do serviço vinculado.
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.