---
title: "O MapForce suporta a operação de \"merge\" (fusão) de dados SQL quando esta é a ferramenta mais adequada para a tarefa"
date: "2016-11-01"
categories: 
  - "data-integration"
  - "tools"
tags: 
  - "database-mapping"
  - "etl"
  - "mapforce"
  - "sql-bulk-merge"
description: Descubra como o Altova MapForce aumenta a eficiência do ETL, ao suportar operações de "merge" SQL para grandes bases de dados, permitindo inserções e atualizações em massa de forma integrada.
---
Status: #blog

Tags:  #database-mapping #etl #mapforce #sql-bulk-merge

Categories: [data-integration](/blog/pt/category/data-integration.md) | [database + sql](/blog/pt/category/database-sql.md)
# O MapForce suporta a operação de "merge" (fusão) de dados SQL quando esta é a ferramenta mais adequada para a tarefa

Tabelas de bases de dados de grande dimensão podem conter facilmente um milhão, ou até centenas de milhões, de linhas de dados. Os administradores de bases de dados e outros responsáveis pela manutenção de conjuntos de dados tão vastos estão constantemente preocupados com o tempo de execução das operações de ETL (Extração, Transformação e Carregamento), atualizações e outras consultas SQL. Para tornar estas operações mais eficientes, alguns – mas não todos – os fornecedores de bases de dados implementaram uma instrução SQL de "merge" (fusão) para inserir ou atualizar linhas de uma tabela existente numa única operação de inserção em lote, em vez de exigir instruções individuais para cada linha.

O Altova MapForce suporta automaticamente a junção SQL sempre que esta estiver disponível para o [banco de dados de destino](https://www.altova.com/pt/mapforce/database-mapping.html). Vamos analisar um exemplo.

![shutterstock_66084286](/blog/images/shutterstock_66084286.jpg)

<!--more-->

### Inserir vs. Atualizar – Se..

A imagem abaixo ilustra um mapeamento de dados que relaciona elementos de um ficheiro XML a uma tabela de base de dados.

![Altova MapForce: Mapeamento de Bases de Dados](/blog/images/database-mapping.png)

Por defeito, o MapForce gera uma instrução SQL de inserção para cada elemento "Person" no ficheiro de origem, o que é adequado para preencher linhas numa tabela de base de dados nova e vazia. Em outras situações, como a sincronização de uma cópia de segurança com um conjunto de dados ativo, as instruções de inserção não são apropriadas. O MapForce permite-lhe especificar, de forma conveniente, a operação SQL correta que precisa para cada mapeamento de base de dados.

Basta clicar no ícone "Ações" ao lado da tabela de base de dados desejada, que, no exemplo acima, é a tabela "Person", para abrir a caixa de diálogo "Ações da Tabela de Base de Dados do MapForce". A captura de ecrã abaixo ilustra a funcionalidade de menu suspenso que permite alterar a instrução SQL "Insert" para "Update-If".

![Atualização de conjunto – Ação no Altova MapForce](/blog/images/set-update-if-action.png)

Atualização: Se for necessário definir uma condição. Nesta mapeamento, queremos atualizar registos na base de dados onde os dados de origem incluem uma chave primária existente. E, queremos inserir uma nova linha quando a chave primária nos dados de origem não existir já na base de dados.

Isto é comumente conhecido como uma operação de atualização condicional ("Update If...Insert Rest").

A caixa de diálogo "Ações da Tabela de Base de Dados" permite-nos definir a condição a ser verificada para a atualização e uma ação alternativa a ser executada quando a condição for falsa. O conjunto completo de ações que definem "Atualizar se... Inserir o resto" é exibido aqui:

![Atualização concluída: Se a funcionalidade "Merge" no MapForce suporta SQL](/blog/images/CompletedAction.png)

### Atualização vs. Mesclagem em lote

Até agora, nem sequer mencionámos o fornecedor do banco de dados para a tabela de destino da nossa mapeamento. Isso porque o mapeamento é definido da mesma forma para todas as bases de dados populares suportadas pelo MapForce. Não precisamos de fazer nada de diferente, quer a base de dados de destino suporte ou não a funcionalidade de "merge" SQL.

Quando clicamos na aba "Saída do MapForce" abaixo do design de mapeamento da base de dados, o MapForce gera um script SQL personalizado para o tipo específico de base de dados. Este script é então exibido na janela de saída do MapForce para análise. Não é executado automaticamente.

Se a base de dados de destino suportar o SQL Merge, verá uma instrução MERGE perto do início do script.

![Atualização concluída: Se a funcionalidade "Merge" no MapForce suporta SQL](/blog/images/SQL-with-merge2.png)

Se a base de dados de destino não suportar o comando SQL MERGE, verá instruções individuais de UPDATE...WHERE para cada linha dos dados de origem.

![Script do MapForce para uma base de dados que não suporta a instrução SQL MERGE](/blog/images/SQL-with-update2.png)

Pode executar o script diretamente no MapForce, selecionando a opção "Executar Script SQL" no menu de saída do MapForce, ou pode guardar a transformação como um ficheiro de execução e automatizá-la no MapForce Server, especificando os nomes dos ficheiros de entrada durante a execução.

Se a base de dados de destino suportar o SQL Merge, as instruções de merge serão geradas, independentemente de o mapeamento ser executado diretamente pelo MapForce ou automatizado através do MapForce Server. O MapForce 2017 suporta instruções SQL Merge para o SQL Server 2008 e versões posteriores, Oracle, IBM DB2 e Firebird.

Os testes realizados aqui na Altova indicam que a execução em lote do SQL Merge pelo MapForce Server pode ser até 15 vezes mais eficiente do que as técnicas anteriores.*

*Nota: A tradução de "*indicam que..." pode variar dependendo do contexto. "Mostram que..." ou "demonstram que..." também seriam opções válidas.*

[Clique aqui para obter mais informações](https://www.altova.com/pt/mapforce/database-mapping.html) sobre o mapeamento de bases de dados com o MapForce, incluindo uma lista completa das bases de dados suportadas como fontes ou destinos para o mapeamento de dados, ou [clique aqui para descarregar](https://www.altova.com/pt/download-trial.html) uma versão de avaliação gratuita e totalmente funcional durante 30 dias. Os ficheiros utilizados para o mapeamento neste artigo do blogue estão disponíveis como exemplos do MapForce, e instruções detalhadas para reproduzir o mapeamento encontram-se na ajuda integrada do MapForce.

 

* Os resultados de desempenho são baseados em testes internos da Altova. Os seus resultados poderão variar.
