Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APLICA-SE A:
Azure Data Factory
Azure Synapse Analytics
Gorjeta
Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.
Este artigo descreve como usar a Atividade de Cópia numa pipeline do Azure Data Factory ou Synapse Analytics para copiar dados de uma base de dados MongoDB. Ele se baseia no artigo de visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.
Importante
O serviço lançou um novo conector MongoDB que fornece melhor suporte nativo ao MongoDB em comparação com esta implementação baseada em ODBC, consulte o artigo do conector MongoDB sobre detalhes.
Capacidades suportadas
Você pode copiar dados do banco de dados MongoDB para qualquer armazenamento de dados de coletor suportado. Para obter uma lista dos repositórios de dados suportados como origens/destinos pela atividade de cópia, consulte a tabela de repositórios de dados suportados.
Especificamente, este conector MongoDB suporta:
- MongoDB versões 2.4, 2.6, 3.0, 3.2, 3.4 e 3.6.
- Cópia de dados usando autenticação básica ou anônima .
Pré-requisitos
Se o seu armazenamento de dados estiver localizado numa rede local, numa rede virtual Azure ou na Amazon Virtual Private Cloud, precisa de configurar um runtime de integração auto-hospedado para se ligar a ele.
Se o seu armazenamento de dados for um serviço de dados na cloud gerido, pode usar o Azure Integration Runtime. Se o acesso for restrito a IPs aprovados nas regras do firewall, pode adicionar IPs Azure Integration Runtime à lista de autorizações.
Também pode usar a funcionalidade managed virtual network integration runtime no Azure Data Factory para aceder à rede local sem instalar e configurar um runtime de integração auto-hospedado.
Para obter mais informações sobre os mecanismos de segurança de rede e as opções suportadas pelo Data Factory, consulte Estratégias de acesso a dados.
O Integration Runtime fornece um driver MongoDB incorporado, por isso não precisa de instalar manualmente nenhum driver ao copiar dados do MongoDB.
Começar
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
- Python SDK
- Azure PowerShell
- API REST
- Modelo do Azure Resource Manager
Criar um serviço vinculado ao MongoDB usando a interface do usuário
Use os passos seguintes para criar um serviço ligado ao MongoDB na interface do portal do Azure.
Navegue até ao separador Gerir no seu espaço de trabalho Azure Data Factory ou Synapse e selecione Serviços Ligados, depois clique em Novo:
Procure Mongo e selecione o conector MongoDB.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
Detalhes de configuração do conector
As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades do Data Factory específicas para o conector MongoDB.
Propriedades do serviço vinculado
As seguintes propriedades são suportadas para o serviço vinculado MongoDB:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type deve ser definida como: MongoDb | Sim |
| servidor | Endereço IP ou nome de host do servidor MongoDB. | Sim |
| porta | Porta TCP que o servidor MongoDB usa para escutar conexões de cliente. | Não (o padrão é 27017) |
| nomeDaBaseDeDados | Nome do banco de dados MongoDB que você deseja acessar. | Sim |
| tipoDeAutenticação | Tipo de autenticação usado para se conectar ao banco de dados MongoDB. Os valores permitidos são: Básico e Anônimo. |
Sim |
| nome de utilizador | Conta de usuário para acessar o MongoDB. | Sim (se for utilizada autenticação básica). |
| palavra-passe | A palavra-passe do utilizador. Marque este campo como um SecureString para o armazenar de forma segura, ou referencia um segredo guardado em Azure Key Vault. | Sim (se for utilizada autenticação básica). |
| authSource | Nome do banco de dados MongoDB que você deseja usar para verificar suas credenciais de autenticação. | N.º Para autenticação básica, o padrão é usar a conta de administrador e o banco de dados especificado usando a propriedade databaseName. |
| habilitarSsl | Especifica se as conexões com o servidor são criptografadas usando TLS. O valor predefinido é false. | Não |
| permitirCertificadoServidorAutoassinado | Especifica se os certificados autoassinados do servidor devem ser permitidos. O valor predefinido é false. | Não |
| conectarVia | O Integration Runtime para ser usado para se ligar ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, usa o Azure Integration Runtime padrão. | Não |
Exemplo:
{
"name": "MongoDBLinkedService",
"properties": {
"type": "MongoDb",
"typeProperties": {
"server": "<server name>",
"databaseName": "<database name>",
"authenticationType": "Basic",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"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 definir conjuntos de dados, consulte Conjuntos de dados e serviços vinculados. As seguintes propriedades são suportadas para o conjunto de dados MongoDB:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type do conjunto de dados deve ser definida como: MongoDbCollection | Sim |
| nome da coleção | Nome da coleção no banco de dados MongoDB. | Sim |
Exemplo:
{
"name": "MongoDbDataset",
"properties": {
"type": "MongoDbCollection",
"linkedServiceName": {
"referenceName": "<MongoDB linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"collectionName": "<Collection name>"
}
}
}
Propriedades da atividade de cópia
Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte o artigo Pipelines . Esta seção fornece uma lista de propriedades suportadas pela fonte do MongoDB.
MongoDB como fonte
As seguintes propriedades são suportadas na seção de origem da atividade de cópia:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade tipo da fonte de atividade de cópia deve ser definida como: MongoDbSource | Sim |
| consulta | Utilize a consulta SQL-92 personalizada para ler dados. Por exemplo: selecione * em MyTable. | Não (caso "collectionName" esteja especificado no conjunto de dados) |
Exemplo:
"activities":[
{
"name": "CopyFromMongoDB",
"type": "Copy",
"inputs": [
{
"referenceName": "<MongoDB input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MongoDbSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Gorjeta
Ao especificar a consulta SQL, preste atenção ao formato DateTime. Por exemplo: SELECT * FROM Account WHERE LastModifiedDate >= '2018-06-01' AND LastModifiedDate < '2018-06-02' ou para usar parâmetro SELECT * FROM Account WHERE LastModifiedDate >= '@{formatDateTime(pipeline().parameters.StartTime,'yyyy-MM-dd HH:mm:ss')}' AND LastModifiedDate < '@{formatDateTime(pipeline().parameters.EndTime,'yyyy-MM-dd HH:mm:ss')}'
Esquema de Data Factory
O serviço Azure Data Factory infere o esquema a partir de uma coleção do MongoDB usando os 100 documentos mais recentes na coleção. Se esses 100 documentos não contiverem o esquema completo, algumas colunas podem ser ignoradas durante a operação de cópia.
Mapeamento de tipo de dados para 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 internamente no serviço. Consulte Mapeamentos de esquema e tipo de dados para saber como a atividade de cópia mapeia o esquema de origem e o tipo de dados para o destino.
| Tipo de dados MongoDB | Tipo de dados de serviço provisório |
|---|---|
| Date | Int64 |
| IdentificadorDoObjeto | String |
| Decimal128 | String |
| Carimbo de data/hora | Os 32 bits mais significativos -> Int64 Os 32 bits menos significativos -> Int64 |
| String | String |
| Duplo | Duplo |
| Int32 | Int64 |
| Int64 | Int64 |
| booleano | booleano |
| Null | Null |
| JavaScript | String |
| Expressão regular | String |
| Chave mínima | Int64 |
| Tecla máxima | Int64 |
| Binário | String |
Nota
Para saber mais sobre o suporte para matrizes usando tabelas virtuais, consulte a seção Suporte para tipos complexos usando tabelas virtuais.
Atualmente, os seguintes tipos de dados MongoDB não são suportados: DBPointer, Symbol, Undefined.
Suporte para tipos complexos usando tabelas virtuais
O serviço usa um driver ODBC integrado para se conectar e copiar dados do seu banco de dados MongoDB. Para tipos complexos, como matrizes ou objetos com tipos diferentes nos documentos, o driver renormaliza os dados em tabelas virtuais correspondentes. Especificamente, se uma tabela contiver essas colunas, o driver gerará as seguintes tabelas virtuais:
- Uma tabela base, que contém os mesmos dados que a tabela real, exceto para as colunas de tipo complexo. A tabela base usa o mesmo nome que a tabela real que ela representa.
- Uma tabela virtual para cada coluna de tipo complexo, que expande os dados aninhados. As tabelas virtuais são nomeadas usando o nome da tabela real, um separador "_" e o nome da matriz ou objeto.
As tabelas virtuais referem-se aos dados na tabela real, permitindo que o driver acesse os dados desnormalizados. Você pode acessar o conteúdo das matrizes MongoDB consultando e unindo as tabelas virtuais.
Exemplo
Por exemplo, ExampleTable aqui é uma tabela MongoDB que tem uma coluna com uma matriz de Objetos em cada célula - Faturas e uma coluna com uma matriz de tipos escalares - Classificações.
| _id | Nome do Cliente | Faturas | Nível de Serviço | Classificações |
|---|---|---|---|---|
| 1111 | ABC | [{invoice_id:"123", item:"torradeira", preço:"456", desconto:"0.2"}, {invoice_id:"124", item:"forno", preço: "1235", desconto: "0.2"}] | Silver | [5,6] |
| 2222 | XYZ | [{invoice_id:"135", item:"frigorífico", preço: "12543", desconto: "0.0"}] | Ouro | [1,2] |
O driver geraria várias tabelas virtuais para representar essa única tabela. A primeira tabela virtual é a tabela base chamada "ExampleTable", mostrada no exemplo. A tabela base contém todos os dados da tabela original, mas os dados das matrizes foram omitidos e são expandidos nas tabelas virtuais.
| _id | Nome do Cliente | Nível de Serviço |
|---|---|---|
| 1111 | ABC | Silver |
| 2222 | XYZ | Ouro |
As tabelas a seguir mostram as tabelas virtuais que representam as matrizes originais no exemplo. Estas tabelas contêm o seguinte:
- Uma referência de volta à coluna de chave primária original correspondente à linha da matriz original (através da coluna _id)
- Uma indicação da posição dos dados dentro da matriz original
- Os dados expandidos para cada elemento dentro da matriz
Tabela "ExampleTable_Invoices":
| _id | ExampleTable_Invoices_dim1_idx | invoice_id | item | preço | Desconto |
|---|---|---|---|---|---|
| 1111 | 0 | 123 | torradeira | 456 | 0.2 |
| 1111 | 1 | 124 | forno | 1235 | 0.2 |
| 2222 | 0 | 135 | frigorífico | 12543 | 0.0 |
Quadro "ExampleTable_Ratings":
| _id | ExampleTable_Ratings_dim1_idx | TabelaExemplo_Avaliações |
|---|---|---|
| 1111 | 0 | 5 |
| 1111 | 1 | 6 |
| 2222 | 0 | 1 |
| 2222 | 1 | 2 |
Conteúdos relacionados
Para obter uma lista de armazenamentos de dados suportados como fontes e coletores pela atividade de cópia, consulte Armazenamentos de dados suportados.