Mapeamento de bancos de dados e ETL (Extração, Transformação e Carga)

Mapear e converter dados entre bancos de dados ou outros formatos de dados

  • Extração, transformação e carregamento de dados para qualquer banco de dados
  • Execute consultas em bancos de dados em todas as principais plataformas
  • Suporte para bancos de dados SQL e NoSQL
  • Conversão de um tipo de banco de dados para outro
  • Mapear dados de um banco de dados para outros formatos de dados, ou vice-versa
  • Especifique as configurações da chave do banco de dados
  • Registro de saída e tratamento de erros
  • Definir ações para tabelas de banco de dados
  • Consultar diretamente os bancos de dados
  • Conecte-se e mapeie os dados XML do banco de dados em tabelas
  • Organizar os componentes de entrada do banco de dados

Ferramentas de mapeamento de bancos de dados

MapForce é uma ferramenta de integração de dados e ETL que oferece um suporte poderoso para a conversão de bancos de dados. É possível converter dados entre qualquer combinação de bancos de dados e formatos como XML, JSON, PDF, CSV e outros arquivos de texto simples, EDI, Excel, protobuf, XBRL, serviços web, Shopify/GraphQL e até mesmo outros formatos de banco de dados.

Ao carregar a estrutura de um banco de dados na janela de design, o MapForce interpreta automaticamente o esquema do banco de dados, permite que você selecione as tabelas e visualizações disponíveis e reconhece as relações entre as tabelas. Assim, você pode visualizar a estrutura do banco de dados de forma gráfica.

Mapeamento gráfico de bancos de dados no MapForce para integrar facilmente os dados do banco de dados

Depois de carregar todos os modelos de conteúdo necessários para o mapeamento do seu banco de dados, complete o mapeamento simplesmente arrastando linhas de conexão entre as estruturas de origem e destino.

Suportado relacional bancos de dados:

  • Firebird
  • IBM DB2 for iSeries®
  • IBM DB2®
  • Informix®
  • MariaDB
  • Microsoft Access™
  • Microsoft® Azure SQL
  • Microsoft® SQL Server®
  • MySQL®
  • Oracle®
  • PostgreSQL
  • Progress OpenEdge
  • SQLite
  • Sybase® ASE
  • Teradata

Suportado NoSQL Bancos de dados:

  • MongoDB
  • CouchDB
  • Microsoft Azure Cosmos DB

O MapForce oferece suporte a todos os principais bancos de dados relacionais, bem como a bancos de dados NoSQL populares, permitindo que você crie projetos de mapeamento gráfico entre dados de origem de bancos de dados, funções e filtros de processamento de dados, e outras estruturas de dados de diversos tipos. Isso permite o suporte a cenários comuns de migração de bancos de dados, como: Migração de MySQL para PostgreSQL... bem como inúmeras outras possibilidades, incluindo transformações de dados do tipo "um para muitos" e transformações de dados encadeadas.

Ferramentas de ETL para bancos de dados

O MapForce inclui ferramentas ETL (Extração, Transformação e Carga) poderosas para gravar dados em bancos de dados SQL e NoSQL. Isso inclui não apenas a transformação de formatos de dados como XML, JSON, Shopify/GraphQL e outros para bancos de dados, mas também a transformação de dados de um tipo de banco de dados para outro, como pode ocorrer após uma fusão e aquisição ou uma migração de sistema.

  • Extração: Uma vez conectado, o MapForce lê os dados de qualquer formato de origem suportado para realizar a extração.
  • Transformação: O MapForce oferece uma ampla gama de funções de transformação, incluindo manipulação de strings, operações matemáticas, conversões de datas e muito mais, além de funções personalizadas e lógica condicional para lidar com transformações complexas.
  • Carregamento: O MapForce facilita a configuração de conexões com bancos de dados de destino, a geração de scripts SQL para inserir dados transformados e a definição de ações como inserção, atualização ou exclusão, para controlar como os dados são gravados. Tudo isso com opções abrangentes para tratamento de erros e registro de eventos.

Filtragem e processamento de dados de banco de dados

Muitas transformações de banco 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 do banco de dados possuem um valor específico e fazer outras modificações nos dados. Na captura de tela acima, as funções de processamento de dados aparecem como os blocos entre as linhas que conectam o modelo de dados de origem e o modelo de dados de destino.

As funções de processamento de dados permitem que você realize mapeamentos avançados de bancos de dados em tempo real, atendendo a uma variedade de necessidades de transformação. Por exemplo, você pode criar mapeamentos de banco de dados que utilizem mensagens XML ou EDI para extrair linhas de dados com base em critérios de filtro provenientes dos elementos XML ou EDI.

Conversão instantânea de banco de dados

Depois que o mapeamento for definido, o motor MapForce integrado permite visualizar e salvar os resultados com apenas um clique.

As associações entre bancos de dados e XML geram um documento de saída em formato XML. As associações entre bancos de dados e arquivos de texto simples resultam em arquivos de saída em formato CSV ou em arquivos de texto de comprimento fixo. As associações entre bancos de dados e EDI podem gerar mensagens nos formatos EDIFACT, X12 ou HL7. As associações entre bancos de dados e o programa Excel produzem marcação no formato Office Open XML (OOXML), e as associações com o formato XBRL geram relatórios financeiros em XBRL.

As configurações para um banco de dados geram resultados na forma de scripts SQL (por exemplo, comandos SELECT, INSERT, UPDATE e DELETE) ou scripts NoSQL, que são executados diretamente no seu banco de dados de destino, a partir do próprio MapForce.

Além da transformação instantânea, o processamento ETL de alto desempenho está disponível através do MapForce Server.

Registro (ou rastreamento) da saída do banco de dados

O rastreamento da saída do banco de dados facilita o registro de todas as alterações feitas por um projeto de mapeamento ou ETL no banco de dados, durante a execução do mapeamento.

Quando o rastreamento está ativado, eventos como inserções ou atualizações no banco de dados, ou erros, são registrados em um arquivo XML que você pode analisar posteriormente ou processar de forma automatizada.

O rastreamento do banco de dados pode ser ativado no nível do componente do banco de dados, da tabela, do procedimento armazenado ou do campo do banco de dados. Você pode optar por rastrear todas as mensagens ou apenas os erros, ou pode desativar o rastreamento completamente.

Depois de selecionar o nível de rastreamento desejado, o componente do banco de dados afetado no projeto de mapeamento é expandido com uma estrutura XML que exibe a estrutura do log. Se preferir que o arquivo de log esteja em um formato diferente de XML, você pode mapear os dados para outro formato suportado pelo MapForce (por exemplo, um arquivo de texto ou até mesmo outro banco de dados).

Ao clicar no botão "Saída" para visualizar o resultado da configuração, o desenvolvedor também pode ver um exemplo de como será o registro de rastreamento quando a configuração for executada.

Rastreamento do banco de dados para geração de logs, utilizado em processos de ETL (Extração, Transformação e Carga) de dados

Tratamento de erros em transações de banco de dados

O MapForce também oferece recursos para gerenciar transações de banco de dados, permitindo reverter a parte afetada da conversão do banco de dados quando ocorre um erro, e, opcionalmente, prosseguir com o restante do processo de mapeamento.

Às vezes, ocorre um erro que não impede a continuação do restante do mapeamento do banco de dados, como quando certas restrições do banco de dados impedem o processo de ETL de inserir ou atualizar dados inválidos.

A ativação do tratamento de transações no banco de dados encapsulará todas as alterações realizadas pelo componente do banco de dados dentro de uma transação, que será desfeita em caso de erro. Você pode optar por prosseguir com o restante da configuração ou interromper a execução da configuração. É possível ativar as transações tanto no nível do componente do banco de dados quanto no nível das ações da tabela.

Permitir transações de banco de dados para tratamento de erros

Isso é muito útil quando o designer do mapeamento deseja capturar apenas os dados de entrada válidos e simplesmente ignorar os dados inválidos.

Mapeamento avançado de bancos de dados e ETL (Extração, Transformação e Carga)

Para usuários que trabalham com SQL, o MapForce inclui uma aba "Consulta de Banco de Dados" para realizar consultas diretas ao banco de dados. Ao se conectar a um banco de dados usando a aba "Consulta de Banco de Dados", o MapForce exibe suas tabelas em uma estrutura hierárquica na janela do navegador.

Consultar o banco de dados ao definir um mapeamento de conversão de banco de dados

Você pode então usar a aba do editor SQL para exibir, editar e executar instruções SQL ou SQL/XML, seja abrindo arquivos SQL existentes ou criando instruções SQL do zero, utilizando funcionalidades de arrastar e soltar e de preenchimento automático.

Você pode executar seu script SQL e visualizar os resultados em formato de tabela, além de salvar tanto os dados recuperados quanto o script SQL individualmente em arquivos separados.

Configurações das chaves do banco de dados

As configurações de chaves de banco de dados no MapForce permitem personalizar a forma como os valores de chaves primárias e estrangeiras serão adicionados a um banco de dados que é o destino do mapeamento de dados. Você pode fornecer os valores das chaves diretamente no MapForce, ou pode permitir que o sistema de banco de dados gerencie a criação de valores automáticos.

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 banco de dados, o MapForce permite que você defina essas relações diretamente, sem afetar os dados de origem.

Definir ações para tabelas de banco de dados

Ao mapear dados para um banco de dados, o MapForce permite que você selecione ações para as tabelas do banco de dados, controlando assim como os dados são gravados. Isso oferece total flexibilidade para automatizar as tarefas de gerenciamento de dados mais avançadas.

A caixa de diálogo "Ações da Tabela de Banco de Dados", de fácil utilização, permite que você defina as colunas da tabela selecionada que serão usadas para determinar qual ação (INSERIR, ATUALIZAR, EXCLUIR) deve ser executada no banco de dados.

Isso oferece uma flexibilidade sem precedentes na manipulação de linhas de banco de dados em resposta a dados XML, de banco de dados, EDI, XBRL, arquivos de texto simples, Excel, JSON, JSON5, serviços web ou outros dados de banco de dados, utilizando o MapForce.

Suporte para procedimentos armazenados SQL

O MapForce oferece suporte abrangente 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 inseridos como uma chamada de função, permitindo que os usuários forneçam dados de entrada, executem o procedimento armazenado e leiam/transformem os dados de saída para outros componentes.

Esta captura de tela mostra a utilização de um procedimento armazenado no SQL Server para criar um arquivo XML. O procedimento retorna uma tabela de dados que exibe todos os gerentes na hierarquia de comando acima do ID 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 do banco de dados.

O MapForce oferece um menu de contexto que permite aos usuários executar o procedimento armazenado para exibir a estrutura de dados utilizada no mapeamento. A execução do mapeamento ilustrado gera a saída em formato XML.

Ferramentas avançadas de mapeamento de dados incluem suporte para procedimentos armazenados

Mapas XML armazenados em campos do banco de dados

O MapForce também permite conectar-se e mapear dados XML armazenados em campos de bancos de dados relacionais (atualmente suportado para SQL Server e IBM DB2). Basta atribuir um esquema XML – seja um esquema registrado no banco de dados ou um esquema do seu sistema de arquivos local – ao campo, e o MapForce renderiza o esquema como uma subárvore do campo do banco de dados para fins de mapeamento.

Organizar os componentes de entrada do banco de dados

Consultas SQL que operam dentro do banco de dados nem sempre são suficientes para tarefas complexas de mapeamento de dados. O MapForce oferece funcionalidades adicionais de ordenação de banco de dados através do componente SQL-WHERE/ORDER, para entradas de banco de dados que exigem processamento adicional, ou quando outros dados ou condições no mapeamento afetam a ordem de classificação das linhas de dados.

Suporte para valores nulos em ações de tabelas de banco de dados

A janela de diálogo "Ações da Tabela de Banco de Dados" suporta a comparação de valores NULL. As comparações que consideram valores NULL oferecem uma forma aprimorada de lidar com bancos de dados que contêm valores nulos. Os usuários do MapForce podem configurar um mapeamento de banco de dados para que a comparação de dados seja feita de forma a considerar valores NULL, de acordo com as regras aplicáveis ao tipo de banco de dados envolvido no mapeamento.

O mapeamento de dados apresentado à direita tem como objetivo atualizar a tabela de destino sem inserir registros duplicados. Ambas as tabelas são definidas de forma a permitir que o campo de e-mail seja nulo, portanto, é possível que existam registros com o mesmo nome, mas com campos de e-mail nulos, em cada tabela.

Clicar no ícone "Ações" ao lado da tabela de banco de dados "TARGET" abre a janela "Ações do Banco de Dados". A caixa de seleção "Igual a NULO" ao lado do campo de e-mail permite que o MapForce trate os valores NULOS na fonte e no destino como iguais para fins de mapeamento de dados, mesmo que eles não sejam considerados iguais pelas regras do banco de dados.

Mapeamento de banco de dados com tratamento de valores nulos no MapForce

Conversão de banco de dados para XML

O MapForce permite a criação de mapeamentos entre bancos de dados e arquivos XML, com base em modelos de conteúdo XML Schema ou DTD. Para criar um mapeamento entre um banco de dados e um arquivo XML, basta importar o XML Schema e o banco de dados para o MapForce e, em seguida, arrastar linhas de conexão entre os nós XML e os objetos do banco de dados.

Se você não tiver um esquema associado para um documento de instância XML, o MapForce gera um esquema XML a partir desse documento de instância.

Mapeamento de banco de dados XML com MapForce

Suporte para caracteres curinga em XML

O elemento `<xs:any>` e o elemento `<xs:anyAttribute>` em um esquema XML permitem que qualquer novo elemento ou atributo seja colocado na posição correspondente em um documento XML, mesmo que o novo elemento ou atributo não esteja definido no esquema XML. Isso é conhecido como um "caractere curinga" em XML e é um mecanismo popular usado para permitir um certo grau de personalização em muitos esquemas XML que suportam padrões da indústria em uma ampla variedade de empresas.

O MapForce suporta os elementos `<xs:any>` e `<xs:anyAttribute>` para mapear dados para a saída em XML ou em qualquer outro formato. Um novo botão de seleção, localizado ao lado de `<xs:any>` ou `<xs:anyAttribute>` em um componente de entrada de mapeamento XML, abre uma caixa de diálogo de seleção de caracteres curinga.

O elemento `<xs:any>`, assim como o `<xs:anyAttribute>`, são frequentemente utilizados no design de esquemas XML, e o suporte a esses elementos no MapForce tem sido uma solicitação frequente por parte dos usuários.

Aprenda como converter dados de bancos de dados para XML e outros formatos no MapForce

Mapeamento de banco de dados JSON

O MapForce oferece suporte para a definição e execução de mapeamentos de banco de dados baseados em modelos JSON (JavaScript Object Notation). É possível adicionar arquivos de instância JSON ou esquemas JSON como componentes de origem ou destino de um mapeamento de banco de dados. O MapForce lê e grava arquivos JSON com base no esquema JSON Draft 04.

Como demonstrado abaixo, os componentes JSON são exibidos com a sintaxe correta para cada elemento, e seus tipos de dados são claramente indicados.

Converter dados de um banco de dados para JSON no MapForce

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.

Gerar automaticamente esquemas JSON

Quando você adiciona um arquivo JSON ou JSON5 a um mapeamento de banco de dados, o MapForce detecta automaticamente se é um arquivo de esquema ou um arquivo de instância. Para arquivos de instância JSON ou JSON5, o MapForce solicita que você procure um esquema ou que ele o gere automaticamente. O MapForce utiliza o esquema JSON ou JSON5 para construir a estrutura do componente.

Integração de dados de alto desempenho e automação de ETL

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, banco de dados, EDI, XBRL, arquivos de texto simples, Excel, JSON e/ou serviços web, utilizando mapeamentos de dados pré-processados e otimizados, armazenados em arquivos de execução, com base em.. mapeamentos de dados definidos no MapForceO MapForce Server eleva o processo de ETL (extração, transformação e carregamento de dados) a um novo patamar, oferecendo recursos de servidor que incluem processamento paralelo, multithreading, inserção em lote de dados SQL, suporte a diferentes plataformas e muito mais.

O pré-processamento permite um desempenho mais rápido e reduz o uso de memória para a maioria das transformações de dados. O MapForce Server opera sob o gerenciamento do FlowForce Server, podendo ser executado de forma independente a partir da linha de comando ou programaticamente através de uma API.

Após a criação e o teste de um mapeamento no MapForce, este pode ser executado pelo MapForce Server para automatizar processos de negócios que exigem transformações repetitivas de dados.

Automatize as tarefas de mapeamento de bancos de dados utilizando o MapForce

O MapForce pré-processa e otimiza as correspondências de dados, armazena-as em arquivos de execução do MapForce Server para execução via linha de comando pelo MapForce Server, e as envia para serem utilizadas em tarefas do FlowForce Server.

Quando o MapForce Server opera 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 é armazenado em um diretório, o que dispara um trabalho do FlowForce Server com várias etapas para, primeiramente, validar o arquivo usando o RaptorXML+XBRL Server, e, em seguida, executar o MapForce Server para extrair determinados dados do XBRL e inseri-los em um banco de dados.

O MapForce Server oferece suporte para inserção em lote de dados em bancos 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 em uma tabela do banco de dados em uma única instrução SQL, em vez do método tradicional de usar instruções "Insert" individuais para cada linha. Como a carga de processamento para o motor do banco de dados é significativamente reduzida, o desempenho é muito mais rápido. Testes realizados com o MapForce Server, utilizando alguns exemplos, demonstraram que o "Bulk Insert" pode ser mais de 10 vezes mais rápido do que as instruções "Insert" individuais.

A inserção em lote também é vantajosa em ambientes multiusuário. Uma longa sequência de comandos de inserção enviados ao banco de dados por um usuário pode ser potencialmente interrompida por outro usuário que envia uma solicitação de seleção para a mesma tabela, e então a sequência de inserções continuaria. Em uma situação como essa, a operação de seleção resultaria em dados incompletos ou inválidos.