O MapForce é uma ferramenta de integração de dados e ETL que oferece um suporte poderoso para a conversão de bases de dados. Permite converter entre qualquer combinação de dados de bases de dados e formatos como XML, JSON, PDF, CSV e outros ficheiros de texto simples, EDI, Excel, protobuf, XBRL, serviços web, Shopify/GraphQL e até mesmo outros formatos de bases de dados.
Quando carrega uma estrutura de base de dados na janela de design, o MapForce interpreta automaticamente o esquema da base de dados, permite-lhe selecionar as tabelas e vistas disponíveis e reconhece as relações entre as tabelas. Assim, pode visualizar a estrutura da base de dados de forma gráfica.
Depois de ter carregado todos os modelos de conteúdo necessários para o mapeamento da sua base de dados, complete o mapeamento simplesmente arrastando linhas de ligação entre as estruturas de origem e de destino.
Suportado relacional bases de dados:
Suportado NoSQL Bases de dados:
O MapForce suporta todas as principais bases de dados relacionais, bem como bases de dados NoSQL populares, permitindo-lhe criar designs gráficos de mapeamento de dados entre a fonte de dados da base de dados, funções e filtros de processamento de dados, e outras estruturas de dados de vários tipos. Isto permite o suporte para cenários comuns de migração de bases de dados, como: Migração de MySQL para PostgreSQL... bem como inúmeras outras possibilidades, incluindo transformações de dados de um para muitos e transformações encadeadas.
O MapForce inclui ferramentas ETL (Extração, Transformação e Carga) poderosas para escrever dados em bases de dados SQL e NoSQL. Isto inclui não só a transformação de formatos de dados como XML, JSON, Shopify/GraphQL e outros para bases de dados, mas também a transformação de dados de um tipo de base de dados para outro, como pode ser necessário após uma fusão e aquisição ou uma migração de sistemas.
Muitas transformações de bases de dados exigem a manipulação de dados entre a fonte e o destino, com base em condições booleanas ou em instruções SQL e SQL/XML. Pode ser necessário realizar comparações lógicas, cálculos matemáticos ou operações com strings, verificar se os dados da base de dados correspondem a um determinado valor e efetuar outras modificações nos dados. Na captura de ecrã acima, as funções de processamento de dados aparecem como os blocos entre as linhas que ligam o modelo de dados de origem e o modelo de dados de destino.
As funções de processamento de dados permitem realizar mapeamentos avançados de bases de dados em tempo real, para uma vasta gama de necessidades de transformação. Por exemplo, pode criar mapeamentos de bases de dados que utilizem mensagens XML ou EDI para extrair linhas da base de dados com base em critérios de filtragem provenientes dos elementos XML ou EDI.
Depois de definir o mapeamento, o motor MapForce integrado permite visualizar e guardar os resultados com apenas um clique.
As associações entre bases de dados e XML geram um documento de saída em formato XML. As associações entre bases de dados e ficheiros simples têm como saída ficheiros CSV ou ficheiros de texto de comprimento fixo. As associações entre bases de dados e EDI podem gerar mensagens EDIFACT, X12 ou HL7. As associações entre bases de dados e o Excel produzem marcação Office Open XML (OOXML), e as associações para XBRL geram relatórios financeiros em formato XBRL.
As transformações para uma base de dados geram resultados na forma de scripts SQL (por exemplo, instruções SELECT, INSERT, UPDATE e DELETE) ou scripts NoSQL, que são executados diretamente na sua base de dados de destino, a partir do próprio MapForce.
Além da transformação imediata, o processamento ETL de alto desempenho está disponível através do MapForce Server.
A rastreabilidade da saída da base de dados facilita o registo de todas as alterações efetuadas por um projeto de mapeamento ou ETL na base de dados, durante a execução do mapeamento.
Quando o registo de eventos está ativado, ações como inserções ou atualizações de dados na base de dados, ou erros, são registados num ficheiro XML que pode ser analisado posteriormente ou processado de forma automatizada.
A monitorização de bases de dados pode ser ativada a nível do componente da base de dados, da tabela, do procedimento armazenado ou do campo da base de dados. Pode optar por monitorizar todas as mensagens ou apenas os erros, ou pode desativar completamente a monitorização.
Depois de selecionar o nível de registo desejado, o componente de base de dados afetado no projeto de mapeamento é expandido com uma estrutura XML que mostra a estrutura do registo. Se preferir que o ficheiro de registo esteja num formato diferente de XML, pode mapear os dados para outro formato suportado pelo MapForce (por exemplo, um ficheiro de texto ou até mesmo outra base de dados).
Ao clicar no botão "Saída" para visualizar o resultado da configuração, o programador também pode ver um exemplo de como será o registo de eventos quando a configuração for executada.
O MapForce também oferece funcionalidades para o tratamento de transações de bases de dados, permitindo reverter a parte afetada da conversão da base de dados quando ocorre um erro, e, opcionalmente, prosseguir com o restante do processo de mapeamento.
Por vezes, ocorre um erro que não impede a continuação do restante do mapeamento da base de dados, como quando certas restrições da base de dados impedem o processo ETL de inserir ou atualizar dados inválidos.
A ativação do tratamento de transações de base de dados irá encapsular todas as alterações efetuadas pelo componente de base de dados dentro de uma transação, que será revertida em caso de erro. Poderá optar por prosseguir com o restante da configuração ou interromper a execução da mesma. É possível ativar as transações tanto no nível do componente de base de dados como no nível das ações da tabela.
Isto é muito útil quando o designer de mapeamento deseja capturar apenas os dados recebidos que são válidos e simplesmente ignorar os dados inválidos.
Para utilizadores que trabalham com SQL, o MapForce inclui uma aba "Consulta de Base de Dados" para realizar consultas diretas à base de dados. Quando se conecta a uma base de dados através da aba "Consulta de Base de Dados", o MapForce exibe as tabelas da base de dados numa estrutura hierárquica na janela do navegador.
Pode, então, utilizar a aba do editor SQL para visualizar, editar e executar instruções SQL ou SQL/XML, seja abrindo ficheiros SQL existentes ou criando instruções SQL do zero, utilizando funcionalidades de arrastar e soltar e de autocompletar.
Pode executar o seu script SQL e visualizar os resultados em formato tabular, e também pode guardar tanto os dados obtidos como o próprio script SQL, individualmente, em ficheiros separados.
As configurações de chaves de base de dados no MapForce permitem personalizar a forma como os valores das chaves primárias e estrangeiras serão adicionados a uma base de dados que é o destino do mapeamento de dados. Pode fornecer os valores das chaves diretamente no MapForce, ou pode deixar que o sistema de base de dados gere automaticamente esses valores.
Em situações em que as relações de chave primária e/ou chave estrangeira não estão explicitamente definidas nas suas tabelas de base de dados, o MapForce permite que defina estas relações diretamente, sem qualquer impacto nos dados de origem.
Quando está a mapear para uma base de dados, o MapForce permite-lhe selecionar ações para as tabelas da base de dados, permitindo controlar como os dados são gravados na base de dados. Isto oferece-lhe total flexibilidade para automatizar as tarefas de gestão de dados mais avançadas.
A caixa de diálogo "Ações da Tabela de Base de Dados", de fácil utilização, permite definir as colunas da tabela selecionada que serão utilizadas para determinar qual ação (INSERIR, ATUALIZAR, ELIMINAR) deve ser executada na base de dados.
Isto oferece uma flexibilidade sem precedentes na manipulação de linhas de bases de dados, em resposta a dados XML, de bases de dados, EDI, XBRL, ficheiros simples, Excel, JSON, JSON5, serviços web ou outros dados de bases de dados, através do MapForce.
O MapForce oferece um suporte robusto para procedimentos armazenados, que podem ser utilizados como componentes de entrada (procedimentos que fornecem resultados) ou como componentes de saída (procedimentos que inserem ou atualizam dados). Alternativamente, os procedimentos armazenados podem ser integrados como chamadas de função, permitindo que os utilizadores forneçam dados de entrada, executem o procedimento armazenado e leiam/transformem os dados de saída para outros componentes.
Esta captura de ecrã mostra a utilização de um procedimento armazenado no SQL Server para criar um ficheiro XML. O procedimento devolve uma tabela de dados que mostra todos os gestores na hierarquia acima do identificador do funcionário especificado, que é fornecido como um parâmetro de entrada – neste exemplo, o valor constante 67.
O parâmetro também pode ser fornecido como um valor calculado ou como um elemento de dados obtido de outra parte da base de dados.
O MapForce oferece um menu de contexto que permite aos utilizadores executar o procedimento armazenado para visualizar a estrutura de dados utilizada no mapeamento. A execução do mapeamento ilustrado gera a saída em formato XML.
O MapForce também permite conectar-se e mapear dados XML armazenados em campos de bases de dados relacionais (atualmente suportado para SQL Server e IBM DB2). Basta atribuir um esquema XML – seja um esquema registado na base de dados ou um esquema do seu sistema de ficheiros local – ao campo, e o MapForce renderiza o esquema como uma subárvore do campo da base de dados, para fins de mapeamento.
As consultas SQL que operam dentro da base de dados nem sempre são suficientes para tarefas complexas de mapeamento de dados. O MapForce oferece funcionalidades adicionais de ordenação de bases de dados através do componente SQL-WHERE/ORDER, permitindo processar dados de entrada de bases de dados que necessitam de processamento adicional, ou quando outros dados ou condições no mapeamento afetam a ordem de classificação das linhas de dados.
A caixa de diálogo "Ações na Tabela de Base de Dados" suporta a comparação de valores NULL. As comparações que consideram os valores NULL oferecem uma forma mais eficiente de lidar com bases de dados que contêm valores nulos. Os utilizadores do MapForce podem configurar um mapeamento de base de dados de forma que a comparação de dados seja feita tendo em conta os valores NULL, de acordo com as regras aplicáveis ao tipo de base de dados envolvido no mapeamento.
O mapeamento de dados apresentado à direita tem como objetivo atualizar a tabela de destino sem inserir registos duplicados. Ambas as tabelas são definidas de forma a permitir que o campo de e-mail seja nulo, pelo que é possível que existam registos com o mesmo nome, mas com campos de e-mail nulos, em cada tabela.
Clicar no ícone "Ações" ao lado da tabela de base de dados "TARGET" abre a caixa de diálogo "Ações da Base de Dados". A caixa de seleção "Igual a NULL" ao lado do campo de e-mail permite que o MapForce trate os valores NULL na origem e no destino como iguais para fins de mapeamento de dados, mesmo que não sejam considerados iguais pelas regras da base de dados.
O MapForce permite criar mapeamentos entre bases de dados e XML, com base em modelos de conteúdo XML Schema ou DTD. Para criar um mapeamento entre uma base de dados e XML, basta importar um XML Schema e a base de dados para o MapForce e, em seguida, arrastar linhas de conexão entre os nós XML e os objetos da base de dados.
Se não tiver um esquema associado a um documento de instância XML, o MapForce gera um esquema XML a partir desse documento.
O elemento `<xs:any>` e o elemento `<xs:anyAttribute>` num esquema XML permitem que qualquer novo elemento ou atributo seja colocado na posição correspondente num documento XML, mesmo que o novo elemento ou atributo não esteja definido no esquema XML. Isto é conhecido como um "caractere curinga" em XML e é um mecanismo popular utilizado para permitir um certo grau de personalização em muitos esquemas XML que suportam padrões da indústria em uma vasta gama de empresas.
O MapForce suporta os elementos `<xs:any>` e `<xs:anyAttribute>` para mapear dados para a saída em XML ou qualquer outro formato. Um novo botão de seleção, localizado ao lado de `<xs:any>` ou `<xs:anyAttribute>` num componente de entrada de mapeamento XML, abre uma caixa de diálogo de seleção de caracteres curinga.
O elemento `<xs:any>`, bem como o `<xs:anyAttribute>`, são frequentemente utilizados no design de esquemas XML, e o suporte a estes elementos no MapForce tem sido uma solicitação frequente por parte dos utilizadores.
O MapForce inclui suporte para a definição e execução de mapeamentos de bases de dados baseados em modelos JSON (JavaScript Object Notation). Pode adicionar ficheiros de instância JSON ou ficheiros de esquema JSON como componentes de origem ou destino de um mapeamento de base de dados. O MapForce lê e escreve ficheiros JSON com base no esquema JSON Draft 04.
Como se pode ver abaixo, os componentes JSON são apresentados com a sintaxe de elementos adequada, e os seus tipos de dados são claramente indicados.
As funções de processamento de dados da biblioteca de funções do MapForce podem ser aplicadas para transformar dados JSON, exatamente como são utilizadas com outros componentes.
Quando adiciona um ficheiro JSON ou JSON5 a um mapeamento de base de dados, o MapForce deteta automaticamente se se trata de um ficheiro de esquema ou de instância. Para ficheiros de instância JSON ou JSON5, o MapForce solicita que procure um esquema ou que o gere automaticamente. O MapForce utiliza o esquema JSON ou JSON5 para construir a estrutura do componente.
Altova MapForce Server inclui o motor de transformação de dados integrado, desenvolvido para o MapForce, e foi significativamente aprimorado para funcionar em ambientes de servidor. O MapForce Server realiza.. transformações de dados para qualquer combinação de XML, PDF, bases de dados, EDI, XBRL, ficheiros simples, Excel, JSON e/ou serviços web, utilizando mapeamentos de dados pré-processados e otimizados, armazenados em ficheiros de execução e baseados em.. definições de mapeamento de dados no MapForceO MapForce Server eleva o processamento de dados ETL a um novo nível, oferecendo funcionalidades de servidor que incluem processamento paralelo, multithreading, inserção em lote de dados SQL, suporte a diferentes plataformas, entre outras.
A pré-processamento permite um desempenho mais rápido e uma utilização de memória reduzida para a maioria das mapeamentos de dados. O MapForce Server funciona sob a gestão do FlowForce Server, podendo ser executado de forma autónoma a partir da linha de comandos ou, de forma programática, através de uma API.
Após a criação e testes de um mapeamento no MapForce, este pode ser executado pelo servidor MapForce para automatizar processos de negócio que exigem transformações de dados repetitivas.
O MapForce pré-processa e otimiza as correspondências de dados, armazenando-as em ficheiros de execução do MapForce Server para execução a partir da linha de comandos pelo MapForce Server, e as carrega para utilização em tarefas do FlowForce Server.
Quando o MapForce Server funciona sob a gestão do FlowForce Server, os mapeamentos de dados e os processos de ETL são executados como etapas de um trabalho do FlowForce Server, com base em gatilhos definidos como parte desse trabalho. Por exemplo, um novo documento XBRL é colocado numa pasta, o que desencadeia um trabalho do FlowForce Server com várias etapas: primeiro, o ficheiro é validado usando o RaptorXML+XBRL Server, e depois o MapForce Server é executado para extrair determinados dados do XBRL e inseri-los numa base de dados.
A operação "Bulk Insert" (inserção em massa) está disponível para determinados bancos de dados e permite inserir um grande volume de dados numa tabela de um banco de dados através de uma única instrução SQL, em vez do método tradicional de utilizar instruções "Insert" individuais para cada linha. Como a sobrecarga de processamento pelo motor do banco de dados é significativamente reduzida, o desempenho é muito mais rápido. Testes realizados com o MapForce Server, utilizando alguns exemplos, demonstraram que a operação "Bulk Insert" pode ser mais de 10 vezes mais rápida do que as instruções "Insert" individuais.
A inserção em lote também é vantajosa em ambientes multiutilizador. Uma longa sequência de comandos de inserção enviados para a base de dados por um utilizador pode ser potencialmente interrompida por outro utilizador que envie uma consulta (SELECT) para a mesma tabela, e então a sequência de inserções continuaria. Numa situação como esta, a operação de consulta resultaria em dados incompletos ou inválidos.








