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 descreve como usar a atividade de cópia nos pipelines do Azure Data Factory e do Azure Synapse Analytics para copiar dados de um banco de dados do MongoDB. Ele amplia o artigo Visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.
Importante
O novo conector do MongoDB fornece suporte ao MongoDB nativo aprimorado. Se você estiver usando o conector MongoDB herdado 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).
Funcionalidades com suporte
O conector MongoDB é compatível com as seguintes funcionalidades:
| Funcionalidades com suporte | IR |
|---|---|
| Atividade Copy (origem/coletor) | (1) (2) |
① Runtime de integração do Azure ② Runtime de integração auto-hospedado
Para obter uma lista de armazenamentos de dados com suporte como origens e coletores, confira a tabela Armazenamentos de dados com suporte.
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
- Azure portal
- .NET SDK
- SDK Python
- Azure PowerShell
- REST API
- modelo Azure Resource Manager
Criar um serviço vinculado ao MongoDB usando a interface do usuário
Use as etapas a seguir para criar um serviço vinculado ao MongoDB na interface do usuário do portal Azure.
Navegue até a guia Gerenciar no workspace do Azure Data Factory ou do Synapse e selecione Serviços Vinculados e clique em 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
As propriedades a seguir têm suporte para o serviço vinculado do MongoDB:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type deve ser definida como: MongoDbV2 | Sim |
| connectionString | Especifique o cadeia de conexão do MongoDB, por exemplo, mongodb://[username:password@]host[:port][/[database][?options]]. Consulte para obter mais detalhes o manual MongoDB sobre cadeia de conexão. Você também pode colocar uma cadeia de conexão no Azure Key Vault. Consulte as credenciais Store no Azure Key Vault com mais detalhes. |
Sim |
| banco de dados | O nome do banco de dados que você deseja criar. | Sim |
| 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 usará o Azure Integration Runtime padrão. | 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 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:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type do conjunto de dados deve ser definida como: 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
As propriedades a seguir têm suporte na seção source da atividade de cópia:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type da fonte da atividade de cópia deve ser definida como: 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 afetará o usuário ou o aplicativo. Azure Cosmos DB impõe que cada lote não pode exceder 40 MB de tamanho, que é a soma do tamanho dos documentos multiplicado pelo número de batchSize. 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": "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
As seguintes propriedades são suportadas na seção Copy Activity sink:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | O tipo de propriedade do coletor da atividade de cópia deve ser definido como 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 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": "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
Você pode usar esse conector do MongoDB para facilmente:
- 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
Ao copiar dados do MongoDB, os mapeamentos a seguir são usados de tipos de dados do MongoDB para tipos de dados provisórios usados pelo serviço internamente. Consulte Mapeamentos de tipo de dados e esquema para saber mais sobre como a atividade de cópia mapeia o tipo de dados e esquema de origem para o coletor.
| 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. |
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.