Вы находитесь на странице: 1из 4

Bruno Vilela Ola!!! Sou Vilela , 29 anos casado 02 filhos e atualmente participo de projetos na empresa J&J Consultoria.

Visualizar meu perfil completo

(ETL VIA SSIS)


SQL 2008 SSIS Lookup O componente de transformao Lookup combina as linhas de uma origem (OLEDB SOURCE) com um DataSet que ser informado diretamente nas configuraes do prprio componente Lookup. Desta forma, o Lookup tido como um componente que combina dois inputs. A combinao feita via equi-joining, isto , juno por igualdade, escolhendo-se as colunas ou coluna que sero usadas para fazer a igualdade, produzindo um output populado. Este componente de transformao se enquadra como multi-input ou multi-output transformation. Na guia Columns do componente lookup ns configuramos as colunas que faro o relacionamento entre os inputs, atravs de mapeamento. possvel deixar as colunas do input DataSet como novas ou fazer replace sobre as colunas do input que se refere ao OLEDB SOURCE. O detalhe que no OLEDB DESTINATION ns definimos quais colunas de qual input sero gravadas o resultado. Exemplo: levantar quais empregados da tabela Empregado1 moram no mesmo estado que os empregados da tabela Empregado2. Neste simples cenrio, ns desejamos gravar numa terceira tabela (empregado3) uma lista das tabelas empregado1 e

empregado2 que moram no mesmo estado. Melhorando o exemplo podemos gravar numa quarta tabela (empregado4) a lista de empregados da tabela empregado1 que no residem em nenhum dos estados dos empregados da tabela empregado2. Segue o passo a passo. Inicialmente crie as tabelas e faa os inserts conforme script abaixo. use master go if db_id('VILELA') is not null begin alter database VILELA set single_user with rollback immediate; drop database VILELA; end; create database VILELA ALTER DATABASE VILELA SET RECOVERY SIMPLE; GO USE VILELA GO -- as tabelas empregado 1 e 2 sero utilizadas para a package referente ao Lookup CREATE TABLE dbo.Empregado1 ( IdEmpregado INT IDENTITY PRIMARY KEY, NmEmpregado VARCHAR(50) NOT NULL, DmUF CHAR(2) NOT NULL, ) CREATE TABLE dbo.Empregado2 ( IdEmpregado INT IDENTITY PRIMARY KEY, NmEmpregado VARCHAR(50) NOT NULL, DmUF CHAR(2) NOT NULL, ) GO INSERT dbo.Empregado1 VALUES ('Bruno Vilela', 'RJ'), ('Julya Vilela', 'ES'), ('Breno Vilela', 'ES') INSERT dbo.Empregado2 VALUES ('Vanessa Vilela', 'SP'), ('Julya Vilela', 'ES'), ('Jeferson Arthur', 'MG') GO -- a tabela empregado 3 guardar a lista de empregados que moram no mesmo estado -- como resultado do etl CREATE TABLE dbo.Empregado3

IdEmpregado1 INT, IdEmpregado2 INT, NmEmpregado1 VARCHAR(50) NOT NULL, NmEmpregado2 VARCHAR(50) NOT NULL, DmUF CHAR(2) NOT NULL,

) GO -- a tabela empregado 4 guardar a lista de empregados que no moram no mesmo estado -- como resultado do etl CREATE TABLE dbo.Empregado4 ( IdEmpregado INT, NmEmpregado VARCHAR(50) NOT NULL, DmUF CHAR(2) NOT NULL, ) GO Como segundo passo crie um novo projeto no ssis. Na package vazia crie uma conexo do OLE DB CONNECTION apontando para o banco DBSSIS. Insira uma Data Flow Task dentro do Control Flow, edite-a e insira um OLE DB SOURCE, um Lookup, e dois OLE DB DESTINATION.Configure o OLE DB SOURCE para usar empregado1, conforme figura abaixo:

Configure na guia Connection do componente Lookup, configure para usar a tabela empregado2:

Na guia Columns faa o mapeamento do relacionamento usando as colunas UF de ambas as tabelas. Para tanto, arraste a coluna DmUF de uma tabela para outra ou clique com o boto direito do mouse, utilizando a opo Edit Mappings. Nas colunas Output Alias renomeie conforme figura abaixo:

OBS:Na guia geral ,a opo "Specify how to handle rows with no matching entries" selecione a opo "redirect rows to no match output" Ligue uma seta verde do Lookup ao primeiro OLE DB DESTINATION, selecionando Lookup Match Output. Edite o OLE DB DESTINATION e seleciona a empregado3. Edite a guia Mappings conforme abaixo:

Pronto. Finalmente ligue a segunda setinha verde do Lookup para o segundo OLE DB DESTINATION selecionando Lookup No Match Output. Edite a conexo deste OLE DB DESTINATION para usar a tabela empregado4. Aps esses passos, o seu Data Flow Task ter a seguinte aparncia:

Вам также может понравиться