Post: Junção de Tabelas com Firedac ETL

Alessandro Medeiros

Fala ai Radizeiros e Radizeiras, tudo bom com vocês?

Quantas noites, e até dias você já passou tentando realizar importação de dados?

Um dos grandes problemas das software house hoje em dia é a importação de dados, pegar um cliente novo e ter que migrar toda a base de dados sempre é uma dor de cabeça.

Hoje estarei lhe mostrando como realizar junção de duas tabelas, usando seu relacionamento, e exportando para uma outra tabela de forma simples e prática usando o ETL do FireDac.

Mas como isso será feito?

Nós iremos pegar essas duas tabelas e criar uma junção das mesmas, fazendo com que todas as informações dessas tabelas estejam em uma unica tabela.

Iremos criar um projeto com alguns componentes da paleta do FireDac como mostra a imagem abaixo.

Como você pode ver nós estamos usando uma conexão com SQLite(Sqlite_demoConnection) e outra com o Firebird (ServerConnection), os demais componentes que estamos usando são FDTable, FDBatchMoveDataSetWriter, FDBatchMove, FDBatchMoveSQLReader  todos eles são encarregados de realizar o processo de importação dos dados, mas em especial para que possamos realizar a criação de uma nova tabela que representa a junção de outras duas tabela é o componente FDBatchMoveSQLReader, nele iremos simplesmente realizar uma pequena alteração.

Mas antes vamos as configurações dos demais componentes.

No componente FDBatchMove iremos setar o reader e o writer.

FDBatchMoveDataSetWriter iremos vincula-lo ao FDTabel posi iremos escrever a tabela no banco SQLite.

Com essas pequenas configurações a importação de dados já estará pronta.

Unindo as tabelas e configurando o FDBatchMoveSQLReader

Primeiro vejamos a estrutura das duas tabelas que iremos usar.

Nesse diagrama podemos ver que a tabela de PRODUTO possui um relacionamento com a tabela FORNECEDOR pela chave estrangeira ou foreign key  chamada FORNECEDOR.

Para que o componente FDBatchMoveSQLReader possa realizar a importação de todas as informações relacionadas para uma outra tabela devemos primeiro criar uma query que execute esse relacionamento das tabelas.


select
    p.*,
    f.*
from
    produto p
    left join fornecedor f on p.fornecedor=f.codigo

Nesta query estamos gerando as informações de todas as duas tabelas agrupadas, e para que essas informações sejam geradas pelo componente FDBatchMoveSQLReader, basta colocar essa query na propriedade ReadSQL, como mostra a imagem abaixo.

E em nosso componente FDTable nós iremos definir um nome para a nova tabela na propriedade TableName, onde irei chamar de PROD_FOR.

Em nosso botão só iremos colocar poucas linhas de código, isso mesmo, não iremos precisar fazer nenhum esforço para que essa importação venha ser feita.


procedure TForm4.Button1Click(Sender: TObject);
begin
    try
        FDBatchMove1.Execute;
        ShowMessage('Tabela PROD_FOR criar e dados exportados');
    except
        raise Exception.Create('Não foi possivel realizar a migração');
    end;
end;

Como você pode observar no código acima, o que faz a importação é somente uma linha, o FDBatchMove1.Execute ele que irá pegar as informações do FDBatchMoveSQLReader,  que faz a leitura dos dados de um banco, move para o componente FDBatchMoveDataSetWriter, que por sua vez repassa essas informações escrevendo na tabela definida no FDTable.

Executamos nosso exemplo.

Veja a tabela criada no banco do SQLite.

Tabela PROD_FOR com os PRODUTOS e FORNECEDORES.

Viu como é bem simples a importação dos dados, e a junção de tabelas importando esses dados para uma nova tabela, que é criada no ato da importação.

Com o FireDac ETL você pode automatizar suas importações, criações de Data warehouse, Data mining e muito mais.

Esse artigo foi retira do curso Certificação especialista em Migração de banco de dados com FireDac ETL.

O treinamento em Certificação especialista em Migração de banco de dados com FireDac ETL veio justamente para acabar com as dores de cabeças que muito programadores e software house tem sofrido com migração de dados

O QUE VOCÊ IRÁ APRENDER?

Nesse treinamento você irá aprender a dominar os componentes ETL do Firedac, eles permitem você realizar a importação, transformação e carga dos dados entre qualquer banco de dados que o Firedac possua, de forma fácil e prática você poderá criar seu próprio importador de dados compatível com qualquer estrutura de banco do mercado.

Nesse treinamento você também aprenderá como criar um projeto de BI com a exportação dos dados de uma base relacional para um Banco NoSQL e apresentação utilizando o PivotGrid da DevExpress, que permitirá ao seu cliente criar seus próprios relatórios personalizados.

 

CLIQUE AQUI PARA SABER MAIS SOBRE O CERTIFICAÇÃO ESPECIALISTA EM MIGRAÇÃO DE BANCO DE DADOS COM FIREDAC ETL

 




Faça sua busca

CATEGORIAS

POSTS RECENTES

E caso você tem interesse de conhecer mais sobre Junção de Tabelas com Firedac ETL, acesse o nosso portal do CLUBE DE PROGRAMADORES EM DELPHI
Você não terá só conteúdos relacionados ao Junção de Tabelas com Firedac ETL, mas uma quantidade enorme de conteúdos que poderá lhe ajudar muito no seu dia a dia, é uma verdadeira NETFLIX para os programadores Delphi.
Gostou?
Compartilhe:

Embarque no foguete com milhares de devs para aprender desenvolvimento, evoluir de forma contínua e se manter relevante no mercado.

Dúvidas
Cadastre-se em nossa lista

Para ter acesso em primeira mão, a tudo que acontece na Academia do Código, basta se cadastrar em nossa lista

Grupo Thulio Bittencourt | Academia do Código

#FaçaPartedaHistória

Copyright © 2024 – Todos os direitos reservados