Você está na página 1de 32

Tutorial: Criando um pacote ETL simples

AdventureWorks2008_SR4.exe
Microsoft Integration Services é uma plataforma para criar soluções de integração de dados de
alto desempenho, incluindo pacotes de extração, transformação e carregamento (ETL) para o
armazenamento de dados. O Integration Services inclui ferramentas gráficas e assistentes para
criação e depuração de pacotes; tarefas para execução de funções de fluxo de trabalho, como
operações de FTP, execução de instruções SQL, envio de mensagens de email, fontes de dados e
destinos para a extração e o carregamento de dados, transformações para limpeza, agregação,
intercalação e cópia de dados, além dos serviços de administração, Integration Services para
administrar a execução e o armazenamento de pacote, bem como interfaces de programação de
aplicativos (APIs) para a programação do modelo de objeto Integration Services.

Neste tutorial, você aprenderá a usar o SSIS Designer para criar um pacote simples do Microsoft
SQL Server Integration Services. O pacote que você cria conduz dados de um arquivo simples,
formata esses dados e insere os dados formatados em uma tabela de fatos. Nas lições a seguir, o
pacote será expandido para demonstrar looping, configurações de pacote, registro de log e fluxo
de erros.

Ao instalar os dados de exemplo usados pelo tutorial, as versões concluídas dos pacotes criados
para cada lição do tutorial também são instaladas. Ao utilizar os pacotes concluídos, será possível
começar o tutorial em uma lição posterior, caso queira. Se esta for a primeira vez que você
trabalha com pacotes ou com o novo ambiente de desenvolvimento, recomendamos que você
comece pela lição 1.

O que você aprenderá

O melhor modo de familiarizar-se com as novas ferramentas, controles e recursos disponíveis no


Microsoft SQL Server Integration Services é utilizando-os. Este tutorial explicará como usar o
Designer de SSIS para criar um pacote de ETL simples com looping, configurações, lógica de fluxo
de erros e registro de logs.

Requisitos

O tutorial é destinado a usuários familiarizados com operações básicas de banco de dados, mas
que tiveram pouca experiência com os novos recursos disponíveis no SQL Server Integration
Services.

Para que você possa usar este tutorial, os seguintes componentes devem estar instalados no
sistema:

• SQL Server com o banco de dados AdventureWorksDW. Por padrão, para reforçar a
segurança, os bancos de dados de exemplo não são instalados. Para instalar os bancos de
dados de exemplo, consulte Considerações para instalar exemplos e bancos de dados de
exemplo do SQL Server.
• Este tutorial também requer dados de exemplo. Os dados de exemplo são instalados junto
com as amostras. Se você não encontrá-los, retorne ao procedimento anterior e complete
a instalação, conforme instruções.

Observação:

Ao revisar os tutoriais, recomenda-se adicionar os botões Avançar e Anterior à barra de ferramentas do


visualizador de documentos. Para obter mais informações, consulte Adicionando os botões Próximo e Anterior à
Ajuda.

Este tutorial assume que você não reconfigurou o Designer de SSIS para usar os recursos de
conexão automática entre os elementos de fluxo de controle ou de fluxo de dados. Caso o
Designer de SSIS use a conexão automática, um elemento poderá ser conectado automaticamente
quando adicionado à superfície de design. Além disso, o recurso de conexão automática para o
fluxo de controle oferece suporte ao uso de Falha e Conclusão como restrição padrão, em vez
deÊxito. Caso o Designer de SSIS não use a opção Êxito como restrição padrão, defina
novamente essa configuração durante o uso do tutorial. Configure os recursos de conexão
automática na seção Designers do Business Intelligence na caixa de diálogo Opções que está
disponível em Opções no menuFerramenta.
Lições neste tutorial

Lição 1: Criando o projeto e pacote básico

Nesta lição, você criará um pacote de ETL simples que extrairá dados de um arquivo
simples, transformará os dados usando transformações de pesquisa e, por fim, carregará
o resultado em um destino da tabela de fatos.

Lição 2: Adicionando loop

Nesta lição, você expandirá o pacote criado na lição 1 para obter as vantagens dos novos
recursos de looping a fim de extrair vários arquivos simples em apenas um processo de
fluxo de dados.

Lição 3: Adicionando configurações de pacote

Nesta lição, você expandirá o pacote criado na lição 2 para usar as novas opções de
configuração de pacote.

Lição 4: Adicionando log

Nesta lição, você expandirá o pacote criado na lição 3 para usar as novas opções de
registro de logs.

Lição 5: Adicionando redirecionamento de fluxo de erro

Nesta lição, você expandirá o pacote criado na lição 4 para usar as novas opções de
configuração das saídas de erro.

Lição 1: Criando o projeto e pacote básico


Nessa lição, você criará um pacote ETL simples que extrai dados de uma fonte exclusiva de
arquivo simples, transforma os dados usando dois componentes de transformação pesquisa e
grava estes dados na tabela de fatos FactCurrencyRate no AdventureWorksDW. Como parte
dessa lição, você irá aprender como criar novos pacotes, adicionar e configurar fonte de dados, e
conexões de destino, e trabalhar com novos fluxos de controle e componentes de fluxo.

Importante:

Este tutorial requer o banco de dados de exemplo AdventureWorksDW. Para obter mais informações sobre
como instalar e implementar oAdventureWorksDW, consulte Considerações para instalar exemplos e bancos
de dados de exemplo do SQL Server.
Compreendendo os requisitos de pacote
Antes de criar um pacote, você precisa ter um bom conhecimento da formatação usada tanto na
fonte de dados quanto no destino. Depois de entender estes dois formatos de dados, você estará
pronto para definir as transformações necessárias para mapear a fonte de dados ao destino.

Olhando para a Fonte


Nesse tutorial, os dados de origem são um conjunto de dados de moeda corrente históricos
contidos no arquivo simples, SampleCurrencyData.txt. A fonte de dados tem as quatro colunas a
seguir: a taxa média da moeda, um código de moeda, um código de data e a taxa do fim do dia.

Aqui está um exemplo dos dados de origem contidos no arquivo SampleCurrencyData.txt:

1.00010001 ARS 9/3/2001 0:00 0.99960016


1.00010001 ARS 9/4/2001 0:00 1.001001001
1.00020004 ARS 9/5/2001 0:00 0.99990001
1.00020004 ARS 9/6/2001 0:00 1.00040016
1.00050025 ARS 9/7/2001 0:00 0.99990001
1.00050025 ARS 9/8/2001 0:00 1.001001001
1.00050025 ARS 9/9/2001 0:00 1
1.00010001 ARS 9/10/2001 0:00 1.00040016
1.00020004 ARS 9/11/2001 0:00 0.99990001
1.00020004 ARS 9/12/2001 0:00 1.001101211

Quando estiver trabalhando com dados de fonte de arquivo simples, é importante entender como
o gerenciador de conexões de Arquivo Simples interpreta os dados de arquivo simples. Se a fonte
do arquivo simples for Unicode, o gerenciador de conexões de Arquivo Simples definirá todas as
colunas como [DT_WSTR] com uma largura padrão de coluna de 50. Se a fonte de arquivo simples
for codificada por ANSI, as colunas estarão definidas como [DT_STR] com uma largura de coluna
de 50. Você provavelmente terá que alterar esses padrões para tornar os tipos de coluna de
cadeia de caracteres mais apropriados para seus dados. Para fazer isso, você precisará olhar o
tipo de dados do destino onde os dados serão gravados, e, então, escolher o tipo correto dentro
do gerenciador de conexões de Arquivo Simples.

Olhando o destino
O destino final para a fonte de dados é a tabela de
fatos FactCurrencyRate no AdventureWorksDW. A tabela de fatos FactCurrencyRate tem
quatro colunas, e tem relações com duas tabelas dimensionais, como mostrado na tabela a seguir.

Nome da coluna Tipo de dados Tabela de pesquisa Coluna de pesquisa

AverageRate float Nenhum Nenhum

CurrencyKey int (FK) DimCurrency CurrencyKey (PK)

TimeKey Int (FK) DimTime TimeKey (PK)

EndOfDayRate float Nenhum Nenhum


Mapeando fontes de dados compatíveis com o destino
Uma análise dos dados de fonte e destino indicam que as pesquisas serão necessárias para os
valores CurrencyKey e TimeKey . As transformações que irão executar essas pesquisas irão
obter os valores CurrencyKey e TimeKey usando as chaves alternadas das tabelas
dimensionais DimCurrency e DimTime .

Coluna de arquivo simples Nome da Tabela Nome da coluna Tipo de dados

0 FactCurrencyRate AverageRate Float

1 DimCurrency CurrencyAlternateKey nchar (3)

2 DimTime FullDateAlternateKey Datetime

3 FactCurrencyRate EndOfDayRate Float

Tarefas da lição
Esta lição contém as seguintes tarefas:

• Tarefa 1: Criando um novo projeto do Integration Services


• Tarefa 2: Adicionando e configurando um gerenciador de conexões de arquivo simples
• Tarefa 3: Adicionando e configurando um gerenciador de conexões OLE DB
• Tarefa 4: Adicionando uma tarefa de fluxo de dados ao pacote
• Tarefa 5: Adicionando e configurando a fonte de arquivo simples
• Tarefa 6: Adicionando e configurando a transformação Pesquisa
• Tarefa 7: Adicionando e configurando o destino OLE DB
• Tarefa 8: Tornando o pacote da Lição 1 mais fácil de compreender
• Tarefa 9: Testando o pacote de tutorial da Lição 1
Tarefa 1: Criando um novo projeto do Integration
Services
A primeira tarefa da criação de um pacote no Integration Services é criar um projeto do
Integration Services. Esse projeto inclui modelos para objetos — fontes de dados, exibições de
fontes de dados e pacotes — usados em uma solução de transformação.

Os pacotes que serão criados neste tutorial do Integration Services interpretam os valores de
dados com distinção de localidade. Se o seu computador não estiver configurado para usar a
opção regional Inglês (Estados Unidos), será preciso definir propriedades adicionais no pacote. Os
pacotes usados nas lições 2 a 5 serão copiados a partir do pacote criado na lição 1 e não será
preciso atualizar as propriedades que fazem distinção de localidade nos pacotes copiados.

Para criar um novo projeto Integration Services


1. No menu Iniciar, aponte para Todos os Programas, Microsoft SQL Server e clique
em SQL Server Business Intelligence Development Studio.

2. No menu Arquivo, aponte para Novo e clique em Projeto para criar um novo projeto
Integration Services.

3. Na caixa de diálogo Novo Projeto, selecione Projeto do Integration Services no


painel Modelos.

4. Na caixa Nome, altere o nome padrão para Tutorial SSIS. Opcionalmente, desmarque a
caixa de seleção Criar diretório para a solução.

5. Aceite o local padrão ou clique em Procurar para procurar pela pasta que deseja usar.

6. Na caixa de diálogo Local do Projeto, clique na pasta e clique em Abrir.

7. Clique em OK.

Por padrão, um pacote vazio chamado Package.dtsx será criado e adicionado ao seu
projeto.

8. Na barra de ferramentas do Gerenciador de Soluções, clique com o botão direito


em Package.dtsx, escolha Renomear e renomeie o pacote padrão para Lição 1.dtsx.

9. Quando o sistema perguntar sobre a renomeação do objeto de pacote, clique em Sim.

Definir propriedades com distinção de localidade


1. No menu Exibir, clique em Janela de Propriedades.

2. Na janela Propriedades, defina a propriedade LocaleID como Inglês (Estados Unidos).

Tarefa 2: Adicionando e configurando um gerenciador


de conexões de arquivo simples
Nesta tarefa, você adiciona um gerenciador de conexões de Arquivos Simples ao pacote que
acabou de criar. Um gerenciador de conexões de Arquivos Simples habilita um pacote para extrair
dados de um arquivo simples. Com o gerenciador de conexões de Arquivos Simples, você pode
especificar o nome e o local do arquivo, a localidade e a página de códigos e o formato do arquivo,
incluindo os delimitadores de coluna, a serem aplicados quando o pacote extrai os dados do
arquivo simples. Além disso, é possível especificar manualmente o tipo de dados das colunas
individuais ou usar a caixa de diálogo Sugerir Tipos de Coluna para mapear automaticamente as
colunas de dados extraídos para os tipos de dados Integration Services.

Você deve criar um novo gerenciador de conexões de Arquivos Simples para cada formato de
arquivo com os quais você trabalha. Como este tutorial extrai dados de vários arquivos simples
que apresentam exatamente o mesmo formato de dados, será preciso adicionar e configurar
apenas um gerenciador de conexões de Arquivos Simples para seu pacote.

Neste tutorial, serão configuradas as seguintes propriedades em seu gerenciador de conexões de


Arquivos Simples:
• Nomes de coluna Como o arquivo simples não tem nomes de colunas, o gerenciador
de conexões de Arquivos Simples cria nomes de colunas padrão. Estes nomes padrões
não são úteis para identificar o que cada coluna representa. Para tornar esses nomes mais
úteis, altere os nomes padrão para nomes que correspondam à tabela de fatos à qual os
dados do arquivo simples serão carregados.
• Mapeamentos de dados Os mapeamentos de tipo de dados que forem especificados
no gerenciador de conexões de Arquivos Simples serão usados por todos os componentes
de origem de dados de arquivos simples que fazem referência ao gerenciador de conexões.
Os tipos de dados podem ser mapeados manualmente usando o gerenciador de conexões
de Arquivos Simples ou a caixa de diálogo Sugerir Tipos de Coluna. Neste tutorial,
serão exibidos os mapeamentos sugeridos na caixa de diálogo Sugerir Tipos de Coluna;
em seguida, faça manualmente os mapeamentos necessários na caixa de diálogoEditor
do Gerenciador de Conexões de Arquivos Simples.
O gerenciador de conexões de Arquivos Simples fornece informações de localidade sobre o arquivo
de dados. Se o seu computador não estiver configurado para usar a opção regional Inglês
(Estados Unidos), será preciso definir propriedades adicionais na caixa de diálogo Editor do
Gerenciador de Conexões de Arquivos Simples.

Para adicionar um gerenciador de conexões de Arquivo Simples


1. Clique com o botão direito do mouse na área Gerenciadores de Conexões e clique
em Nova Conexão de Arquivos Simples.

2. Na caixa de diálogo Editor do Gerenciador de Conexões de Arquivos Simples,


em Nome do gerenciador de conexões, digite Dados da Fonte de Arquivos Simples
de Exemplo.

3. Clique em Procurar.

4. Na caixa de diálogo Abrir, localize a pasta de dados de exemplo e abra o arquivo


SampleCurrencyData.txt. Por padrão, a pasta de exemplos do tutorial está instalada na
pasta C:\Arquivos de Programas\Microsoft SQL Server\100\Samples\Integration
Services\Tutorial\Creating a Simple ETL Package\Sample Data.

Definir propriedades com distinção de localidade


1. Na caixa de diálogo Editor do Gerenciador de Conexões de Arquivos Simples, clique
em Geral.

2. Defina a Localidade como o inglês (Estados Unidos) e a Página de códigos como 1252.

Renomear colunas no gerenciador de conexões de Arquivos Simples


1. Na caixa de diálogo Editor do Gerenciador de Conexões de Arquivos Simples, clique
em Avançado.

2. No painel de propriedade, faça as seguintes alterações:

• Altere a propriedade de nome da Coluna 0 para AverageRate.


• Altere a propriedade de nome da Coluna 1 para CurrencyID.
• Altere a propriedade de nome da Coluna 2 para CurrencyDate.
• Altere a propriedade de nome da Coluna 3 para EndOfDayRate.

Observação:

Por padrão, as quatro colunas são definidas inicialmente como um tipo de dados de cadeia de caracteres
[DT_STR] com uma OutputColumnWidthde 50.
Remapear tipos de dados de coluna
1. Na caixa de diálogo Editor do Gerenciador de Conexões de Arquivos Simples, clique
em Sugerir Tipos.

Integration Services sugere automaticamente os tipos de dados mais apropriados com


base nas primeiras 100 linhas de dados. Também é possível alterar essas opções de
sugestão para mostrar mais ou menos dados, para especificar o tipo de dados padrão
para dados inteiro ou booleano, ou para adicionar espaços como preenchimento das
colunas de cadeia de caracteres.
Por enquanto, não faça as alterações nas opções na caixa de diálogo Sugerir Tipos de
Coluna e clique em OK para que Integration Services sugira os tipos de dados para as
colunas. Esse procedimento retornará o painel Avançado da caixa de diálogo Editor do
Gerenciador de Conexões de Arquivos Simples, onde é possível exibir os tipos de
dados de coluna sugeridos por Integration Services. (Se você clicar em Cancelar,
nenhuma sugestão será indicada para os metadados da coluna e o tipo de dados da
cadeia de caracteres padrão (DT_STR) será usado.)

Neste tutorial, Integration Services sugere os tipos de dados mostrados na segunda


coluna da tabela a seguir referentes aos dados do arquivo SampleCurrencyData.txt.
Entretanto, os tipos de dados que forem necessários para as colunas no destino, que
serão definidos em uma tarefa futura, serão mostrados na última coluna da tabela a
seguir.

Coluna de
Arquivos
Simples Tipo Sugerido Coluna de Destino Tipo de Destino

AverageRate Valores Flutuantes [DT_R4] FactCurrencyRate.AverageRate Valores Flutuantes

CurrencyID Cadeia de Caracteres [DT_STR] DimCurrency.CurrencyAlternateKey nchar(3)

CurrencyDate Data [DT_DATE] DimTime.FullDateAlternateKey datetime

EndOfDayRate Valores Flutuantes [DT_R4] FactCurrencyRate.EndOfDayRate Valores Flutuantes


Os tipos de dados sugeridos para as colunas CurrencyID e CurrencyDate não são
compatíveis com os tipos de dados dos campos na tabela de destino. Como o tipo de
dados de DimCurrency.CurrencyAlternateKey é nchar (3), CurrencyID deve ser
alterado de cadeia de caracteres [DT_STR] para a cadeia de caracteres [DT_WSTR]. Além
disso, o campo DimTime.FullDateAlternateKey é definido como um tipo de dados
DateTime; portanto, CurrencyDate deve ser alterado da data [DT_Date] para o carimbo
de data e hora da base de dados [DT_DBTIMESTAMP].

2. No painel de propriedade, altere o tipo de dados de coluna CurrencyID de cadeia de


caracteres [DT_STR] para cadeia de caracteres de Unicode [DT_WSTR].

3. No painel de propriedade, altere o tipo de dados de coluna CurrencyDate da data


[DT_DATE] para o carimbo de data e hora da base de dados [DT_DBTIMESTAMP].

4. Clique em OK.

Tarefa 3: Adicionando e configurando um gerenciador


de conexões OLE DB
Depois de ter adicionado um gerenciador de conexões de arquivo simples para conectar-se à
origem de dados, a próxima tarefa é adicionar um gerenciador de conexões OLE DB para conectar-
se ao destino. Um gerenciador de conexões OLE DB permite que um pacote extraia dados de
qualquer origem de dados compatível com OLE DB ou carregue dados ali. Usando o gerenciador de
conexões OLE DB, você pode especificar o servidor, o método de autenticação e o banco de dados
padrão para a conexão.

Nesta lição, você criará um gerenciador de conexões OLE DB que usa a Autenticação do Windows
para conectar-se à instância local do AdventureWorksDB. O gerenciador de conexões OLE DB que
você criar também será referenciado por outros componentes que você criar posteriormente neste
tutorial, como, por exemplo, a transformação Pesquisa e o destino OLE DB.

Para adicionar e configurar um gerenciador de conexões OLE DB


1. Com o botão direito do mouse, clique em qualquer lugar na área Gerenciadores de
Conexões e em Nova Conexão OLE DB.

2. Na caixa de diálogo Configurar Gerenciador de Conexões OLE DB, clique em Novo.

3. Para Nome do servidor, digite localhost.


Quando você especifica localhost como o nome do servidor, o gerenciador de conexões se
conecta à instância padrão do SQL Server no computador local. Para usar uma instância
remota do SQL Server, substitua localhost pelo nome do servidor ao qual você deseja se
conectar.

4. No grupo Fazer logon no servidor, verifique se a opção Usar Autenticação do


Windows está selecionada.

5. No grupo Conectar a um banco de dados, na caixa Selecionar um digitar um nome


de banco de dados, digite ou selecione AdventureWorksDW.

6. Clique em Testar Conexão para verificar se as configurações de conexão que você


especificou são válidas.

7. Clique em OK.

8. Clique em OK.

9. No painel Conexões de Dados da caixa de diálogo Configurar Gerenciador de


Conexões OLE DB, verifique se a opçãolocalhost.AdventureWorksDW está
selecionada.

10. Clique em OK.

Tarefa 4: Adicionando uma tarefa de fluxo de dados ao


pacote
Depois de criar os gerenciadores de conexões para os dados de origem e destino, a próxima tarefa
é adicionar a tarefa Fluxo de Dados ao seu pacote. Essa tarefa encapsula o mecanismo de fluxo de
dados que move dados entre as origens e os destinos, além de fornecer funcionalidade para
transformar, limpar e modificar os dados à medida que são movidos. A tarefa Fluxo de Dados é
onde a maioria do trabalho de um processo de extração, transformação e carregamento (ETL)
acontece.

Observação:

SQL Server Integration Services separa o fluxo de dados de fluxo de controle. Essa separação de fluxos é uma
das diferenças significativas entre Integration Services e os Serviços de Transformação de Dados de Microsoft
SQL Server 2000.
Adicionar uma tarefa Fluxo de Dados
1. Clique na guia Fluxo de Controle.

2. Na Caixa de Ferramentas, expanda Itens de Fluxo de Controle e arraste uma Tarefa


de Fluxo de Dados para a superfície de design da guia Fluxo de Controle.

3. Na superfície de design Fluxo de Controle, clique com o botão direito do mouse


na Tarefa de Fluxo de Dados, clique em Renomear e altere o nome para Extrair
Dados de Moeda de Exemplo.

É uma boa idéia fornecer nomes exclusivos a todos os componentes que você adiciona a
uma superfície de design. Para facilitar o uso e a sustentabilidade, os nomes devem
descrever a função que cada componente executa. Seguir estas diretrizes de nomeação
permite que seus pacotes Integration Services sejam documentados automaticamente.
Outra forma para documentar seus pacotes é usar anotações. Para obter mais
informações sobre as anotações, consulte Usando anotações em pacotes.

4. Clique com o botão direito do mouse na tarefa Fluxo de Dados, clique em Propriedades e,
na janela Propriedades, verifique se a propriedade LocaleIDestá definida como Inglês
(Estados Unidos).

Tarefa 5: Adicionando e configurando a fonte de


arquivo simples
Nesta tarefa, você irá adicionar e configurar uma fonte de arquivo simples ao seu pacote. Uma
fonte de arquivo simples é um componente de fluxo de dados que usa metadados definidos por
um gerenciador de conexões de arquivo simples para especificar o formato e a estrutura dos
dados que serão extraídos do arquivo simples por um processo de transformação. Uma fonte de
arquivo simples pode ser configurada para extrair dados de uma única fonte de arquivo simples
usando a definição de formato de arquivo fornecida pelo gerenciador de conexões do arquivo
simples.

Para este tutorial, você irá configurar a fonte de arquivo simples para usar o gerenciador de
conexões Dados da Fonte de Arquivo Simples de Exemplo criada anteriormente.

Para adicionar um componente Fonte de Arquivo Simples


1. Abra o designer Fluxo de Dados, clicando duas vezes na tarefa de fluxo de
dados Extrair Dados de Moeda de Exemplo ou clicando na guia Fluxo de Dados.

2. Na Caixa de Ferramentas, expanda Origens do Fluxo de Dados e arraste uma Fonte


de Arquivo Simples para a superfície de design da guia Fluxo de Dados.

3. Na superfície de design Fluxo de Dados, clique com o botão direito do mouse na Fonte
de Arquivo Simples recém-adicionada, clique em Renomear e altere o nome
para Extrair Dados de Moeda de Exemplo.

4. Clique duas vezes na Fonte de Arquivo Simples para abrir a caixa de diálogo Editor da
Fonte de Arquivo Simples.

5. Na caixa Gerenciador de conexões de arquivo simples, digite ou selecione Dados de


Exemplo da Fonte de Arquivo Simples.

6. Clique em Colunas e verifique se os nomes das colunas estão corretos.

7. Clique em OK.

8. Clique com o botão direito do mouse na fonte de arquivo simples e clique


em Propriedades.

9. Na janela Propriedades, verifique se a propriedade LocaleID está definida como Inglês


(Estados Unidos).

Tarefa 6: Adicionando e configurando a transformação


Pesquisa
Depois de configurar a fonte de Arquivo Simples para extrair dados do arquivo de origem, a
próxima tarefa é definir as transformações Pesquisa necessárias para obter os valores
para CurrencyKey e TimeKey. Uma transformação Pesquisa executa uma pesquisa ao unir dados
na entrada coluna para uma coluna especificada em um conjunto de dados referenciado. O
conjunto de dados de referência pode ser uma tabela existente ou visualização, uma nova tabela
ou o resultado de uma instrução SQL. Neste tutorial, a transformação Pesquisa usa um
gerenciador de conexões OLE DB para conectar-se ao banco de dados que contém os dados que é
a fonte do conjunto de dados de referência.

Observação:

Você também pode configurar a transformação Pesquisa para conectar-se a um cache que contém o conjunto de
dados de referência. Para obter mais informações, consulte Transformação Pesquisa.
Para este tutorial, você irá adicionar e configurar os dois componentes de transformações Pesquisa
a seguir para o pacote:

• Uma transformação para executar uma pesquisa de valores na coluna CurrencyKey da


tabela de dimensões DimCurrency baseada nos valores da
colunaCurrencyID correspondentes do arquivo simples.
• Uma transformação para executar uma pesquisa de valores na coluna TimeKey da tabela
de dimensões DimTime baseada nos valores da colunaCurrencyDate correspondentes
do arquivo simples.
Em ambos os casos, as transformações Pesquisa utilizarão o gerenciador de conexões OLE DB que
você criou anteriormente.
Para adicionar e configurar a transformação Código de Moeda da
Pesquisa
1. Na Caixa de Ferramentas, expanda as Transformações Fluxo de Dados e, então,
arraste Pesquisa para a superfície de design da guia Fluxo de Dados. Coloque Pesquisa
diretamente abaixo da fonte Extrair Dados de Exemplo de Moeda .

2. Clique na fonte de arquivo simples Extrair Dados de Exemplo de Moeda e arraste a


seta verde para a recém-adicionada transformação Pesquisa para poder conectar os dois
componentes.

3. Na superfície de design de Fluxo de Dados, clique em Pesquisa na


transformação Pesquisa e altere o nome para Pesquisa de Código de Moeda .

4. Clique duas vezes na transformação Pesquisa de Código de Moeda .

5. Na página Geral, faça as seguintes seleções:

a. Selecione Cache cheio.


b. Na área Tipo de conexão, selecione Gerenciador de conexões OLE DB.
6. Na página Conexão, faça as seguintes seleções:

a. Na caixa Gerenciador de conexões OLE DB, verifique


se localhost.AdventureWorksDW está exibido.
b. Selecione Usar os resultados de uma consulta SQL e digite ou copie a
seguinte instrução SQL:

c. select * from (select * from [dbo].[DimCurrency]) as refTable

d. where [refTable].[CurrencyAlternateKey] = 'ARS'

e. OR

f. [refTable].[CurrencyAlternateKey] = 'AUD'

g. OR

h. [refTable].[CurrencyAlternateKey] = 'BRL'

i. OR

j. [refTable].[CurrencyAlternateKey] = 'CAD'

k. OR

l. [refTable].[CurrencyAlternateKey] = 'CNY'

m. OR

n. [refTable].[CurrencyAlternateKey] = 'DEM'

o. OR

p. [refTable].[CurrencyAlternateKey] = 'EUR'

q. OR

r. [refTable].[CurrencyAlternateKey] = 'FRF'

s. OR

t. [refTable].[CurrencyAlternateKey] = 'GBP'

u. OR

v. [refTable].[CurrencyAlternateKey] = 'JPY'

w. OR

x. [refTable].[CurrencyAlternateKey] = 'MXN'
y. OR

z. [refTable].[CurrencyAlternateKey] = 'SAR'

aa. OR

bb. [refTable].[CurrencyAlternateKey] = 'USD'

cc. OR

[refTable].[CurrencyAlternateKey] = 'VEB'

7. Na página Colunas, faça as seguintes seleções:

a. No painel Colunas de Entrada Disponíveis, arraste CurrencyID para o


painel Colunas de Pesquisa Disponíveis e solte emCurrencyAlternateKey.
b. Na lista Colunas de Pesquisa Disponíveis, marque a caixa de seleção à direita
de CurrencyKey.
8. Clique em OK para retornar à superfície de design Fluxo de Dados.

9. Clique com o botão direito do mouse na transformação Pesquisa de Códigos de Moeda,


clique em Propriedades.

10. Na janela Propriedades, verifique se a propriedade LocaleID está definida para Inglês
(Estados Unidos) e se propriedade DefaultCodePage está definida para 1252.

Para adicionar e configurar a transformação Pesquisa de Chave de Data


1. Na Caixa de Ferramentas, arraste Pesquisa até a superfície de design de Fluxo de
Dados . Coloque Pesquisa diretamente abaixo da transformaçãoLookup CurrencyKey .

2. Clique na transformação Pesquisa de Código de Moeda e depois arraste a seta verde


para a transformação recentemente adicionada Pesquisa para conectar os dois
componentes.

3. Na caixa de diálogo Seleção de Saída e Entrada, clique em Saída de


Correspondência de Pesquisa na caixa de listagem Saída e clique em OK.

4. Na superfície de design Fluxo de Dados, clique em Pesquisa na recém-adicionada


transformação Pesquisa e altere o nome para Pesquisa de Código de Data .

5. Clique duas vezes na transformação Pesquisa de Código de Data .

6. Na página Geral, selecione Cache parcial.

7. Na página Conexão, faça as seguintes seleções:

a. Na caixa Gerenciador de conexões OLE DB, verifique


se localhost.AdventureWorksDW está exibido.
b. Na caixa Usar uma tabela ou visualização, digite ou selecione [dbo].
[DimTime].
8. Na página Colunas, faça as seguintes seleções:

a. No painel Colunas de Entrada Disponíveis, arraste CurrencyDate para o


painel Colunas de Pesquisa Disponíveis e solte emFullDateAlternateKey.
b. Na lista Colunas de Pesquisa Disponíveis, marque a caixa de seleção à direita
de TimeKey.
9. Na página Avançado, examine as opções de cache.

10. Clique em OK para retornar à superfície de design Fluxo de Dados.

11. Clique com o botão direito na transformação Pesquisa de Código de Data, e clique
em Propriedades.

12. Na janela Propriedades, verifique se a propriedade LocaleID está definida para Inglês
(Estados Unidos) e se propriedade DefaultCodePage está definida para 1252.
Tarefa 7: Adicionando e configurando o destino OLE
DB
Seu pacote agora extrai dados de uma fonte de arquivo simples e transforma esses dados em um
formato compatível com o destino. A próxima tarefa é carregar os dados transformados no destino.
Para carregar os dados, você deve adicionar um destino OLE DB ao fluxo de dados. O destino do
OLE DB pode usar uma tabela, exibição de banco de dados ou um comando SQL para carregar os
dados em uma diversidade de bancos de dados compatíveis com o OLE DB.

Neste procedimento, você adiciona e configura um destino OLE DB para usar o gerenciador de
conexões OLE DB criado anteriormente.

Para adicionar e configurar a amostra de destino do OLE DB


1. Na Caixa de Ferramentas, expanda Destinos de Fluxo de Dados e arraste OLE
DB para a superfície de design da guia Fluxo de Dados. Coloque o destino de OLE DB
diretamente abaixo da transformação Chave de Data de Pesquisa.

2. Clique na transformação Chave de Data de Pesquisa e arraste a seta verde sobre o


recém-adicionado Destino OLE DB para conectar os dois componentes.

3. Na caixa de diálogo Seleção de Saída e Entrada, na caixa de listagem Saída, clique


em Saída de Correspondência de Pesquisa e clique em OK.

4. Na superfície de design de Fluxo de Dados, clique em Destino OLE DB, no componente


recém-adicionado Destino de OLE DB, e altere o nome paraExemplo de Destino de
OLE DB.

5. Clique duas vezes em Exemplo de Destino de OLE DB.

6. Na caixa de diálogo Editor de Destino do OLE DB , certifique-se de


que localhost.AdventureWorksDW está selecionado na caixa Gerente de Conexões
de OLE DB.

7. Na caixa Nome da tabela ou da exibição, digite ou selecione [dbo].


[FactCurrencyRate].

8. Clique em Mapeamentos.

9. Verifique se as colunas de
entrada AverageRate, CurrencyKey, EndOfDayRatee TimeKey estão mapeadas
corretamente para as colunas de destino. Se forem mapeadas colunas com o mesmo
nome, o mapeamento estará correto.

10. Clique em OK.

11. Clique com o botão direito do mouse no destino Exemplo de Destino OLE DB e clique
em Propriedades.

12. Na janela Propriedades, verifique se a propriedade LocaleID está definida como Inglês
(Estados Unidos) e se a propriedade DefaultCodePage está definida como 1252.

Tarefa 8: Tornando o pacote da Lição 1 mais fácil de


compreender
Agora que você concluiu a configuração do pacote da Lição 1, é uma boa idéia verificar o layout do
pacote. Se as formas dos layouts de controle e dos fluxos de dados são de tamanhos aleatórias ou
se as formas não estão alinhadas ou agrupadas, a funcionalidade de pacote pode ser mais difícil
de ser entendida.

O Business Intelligence Development Studio fornece ferramentas que tornam mais fácil e rápida a
formatação do layout do pacote. Os recursos de formatação incluem a capacidade de criar formas
do mesmo tamanho, alinhar formas e manipular o espaçamento horizontal e vertical entre os
espaçamentos.

Outro modo para melhorar a compreensão de funcionalidade de pacote é adicionar anotações que
descrevem a funcionalidade do pacote.
Nesta tarefa, você utilizará os recursos de formatação no Business Intelligence Development
Studio para melhorar o layout do fluxo de dados e também adicionar uma anotação ao fluxo de
dados.

Para formatar o layout do fluxo de dados


1. Se o pacote da Lição 1 ainda não estiver aberto, no Gerenciador de Soluções, clique duas
vezes em Lição 1.dtsx.

2. Clique na guia Fluxo de Dados.

3. Posicione o cursor na parte superior e à direita da transformação Extrair Moeda de


Exemplo e clique e arraste o cursor por todos os componentes do fluxo de dados.

Todos os componentes de fluxo de dados serão selecionados. A primeira forma


selecionada — a forma cujos indicadores selecionados é de cor branca — indica o tamanho
e o local usados na formatação do layout.

4. No menu Formatar, aponte para Igualar Tamanho e clique em Ambos.

5. Com os objetos de fluxo de dados selecionados, no menu Formatar, aponte


para Alinhar e clique em À esquerda.

Para adicionar uma anotação ao fluxo de dados


1. Clique com o botão direito do mouse no plano de fundo da superfície de design de fluxo
de dados e clique em Adicionar Anotação.

2. Digite ou cole o texto a seguir na caixa de anotação.

O fluxo de dados extrai os dados a partir de um arquivo, pesquisa valores na


coluna CurrencyKey da tabela DimCurrency e na coluna TimeKey na tabela
DimTime, além de gravar os dados na tabela FactCurrencyRate.

Para usar a quebra de linhas no texto da caixa de anotação, posicione o cursor no local
que deseja começar uma nova linha e pressione as teclas Ctrl e Enter.

Se você não inserir um texto na caixa de anotação, essa caixa desaparecerá ao clicar fora
dela.

Tarefa 9: Testando o pacote de tutorial da Lição 1


Nesta lição, você executou as seguintes tarefas:

• Criou um novo projeto do SSIS.


• Configurou os gerenciadores de conexões que o pacote precisa para estabelecer conexão
com os dados de origem e de destino.
• Adicionou um fluxo de dados que usa os dados de uma origem de arquivo simples,
desenvolve as transformações Pesquisa necessárias sobre os dados e configura os dados
para o destino.
Seu pacote está completo agora! Está na hora de testar seu pacote.

Verificando o layout do pacote


Antes de testar o pacote, é recomendável verificar se os fluxos de controle e de dados do pacote
da Lição 1 contêm os objetos mostrados nos diagramas a seguir.

Fluxo de Controle

Fluxo de Dados
Para executar o pacote de tutorial da Lição 1
1. No menu Depurar, clique em Iniciar Depuração.

O pacote será executado, resultando na adição bem-sucedida de 1097 linhas à tabela de


fatos FactCurrencyRate em AdventureWorksDW.

2. Terminada a execução do pacote, no menu Depurar, clique em Parar Depuração.

Lição 2: Adicionando loop


Na Lição 1: Criando o projeto e pacote básico, você criou um pacote que extraiu dados de uma
única fonte de arquivo simples, transformou os dados usando transformações Pesquisa e,
finalmente, carregou os dados na tabela de fatos FactCurrencyRate do banco de dados de
exemploAdventureWorksDW.

Porém, é raro para um processo de extração, transformação e carregamento (ETL) usar um único
arquivo simples. Um típico processo ETL extrairia dados de várias fontes de arquivo simples.
Extrair dados de várias fontes requer um fluxo de controle iterativo. Um dos recursos mais
antecipados do Microsoft Integration Services é a habilidade de adicionar iterações ou loops aos
pacotes de forma fácil.

O Integration Services fornece dois tipos de contêineres para efetuar loop através de pacotes: o
Loop Foreach e o Loop For. O contêiner Loop Foreach usa um enumerador para executar o loop,
enquanto que o Loop For geralmente usa uma expressão de variável. Esta lição usa o contêiner
Loop Foreach.

O contêiner Loop Foreach habilita um pacote a repetir o fluxo de controle para cada membro de
um enumerador especificado. Com o contêiner Loop Foreach, você pode enumerar:

• Conjuntos de registros ADO e informações de esquema


• Estruturas de arquivo e diretório
• Variáveis de sistema, pacote e usuário
• SQL Server Management Objects (SMO)
Nesta lição, você modificará o pacote ETL simples criado na lição 1 para aproveitar o contêiner
Loop Foreach. Você também ajustará as variáveis do pacote definidas pelo usuário para habilitar o
pacote do tutorial a ser iterado por todos os arquivos simples na pasta. Se você não tiver
completado a lição anterior, também poderá copiar o pacote da Lição 1 terminada, que está
incluído no tutorial.

Nesta lição, você não modificará o fluxo de dados, apenas o fluxo de controle.

Importante:
Este tutorial requer o banco de dados de exemplo AdventureWorksDW. Para obter mais informações
sobre como instalar e implantar oAdventureWorksDW, consulte Considerações para instalar exemplos e
bancos de dados de exemplo do SQL Server.
Tarefas da lição
Esta lição contém as seguintes tarefas:

• Tarefa 1: Copiando o pacote da Lição 1


• Tarefa 2: Adicionando e configurando o contêiner Loop Foreach
• Tarefa 3: Modificando o Gerenciador de Conexões de Arquivo Simples
• Tarefa 4: Testando o pacote de tutorial da Lição 2

Tarefa 1: Copiando o pacote da Lição 1


Nesta tarefa, você criará uma cópia do pacote Lesson 1.dtsx que você criou na lição 1. Se você
não completou a lição 1, poderá adicionar o pacote completo da lição 1 incluído com o tutorial do
projeto e, então, copiar esse pacote. Você usará esta cópia nova ao longo de toda a lição 2.

Para criar o pacote da lição 2


1. Se o Business Intelligence Development Studio ainda não estiver aberto, clique
em Iniciar, aponte para Todos os Programas, aponte para Microsoft SQL Server e
clique em Business Intelligence Development Studio.

2. No menu Arquivo, clique em Abrir, clique em Projeto/Solução, clique na


pasta Tutorial do SSIS, clique em Abrir e clique duas vezes em SSIS Tutorial.sln.

3. No Solution Explorer, clique com o botão direito em Lesson 1.dtsx e, em seguida, clique
em Copiar.

4. No Gerenciador de Soluções, clique com o botão direito do mouse em Pacotes SSIS e


clique em Colar.

Por padrão, o pacote copiado receberá o nome de Lesson 2.dtsx.

5. No Solution Explorer, clique duas vezes em Lesson 2.dtsx para abrir o pacote.

6. Clique com o botão direito do mouse no plano de fundo da superfície de design Fluxo de
Controle e clique em Propriedades.

7. Na janela Propriedades, atualize a propriedade Name para Lição 2.

8. Clique na caixa da propriedade ID e clique em <Gerar Nova ID>.

Para adicionar o pacote concluído da lição 1


1. Abra o Business Intelligence Development Studio e abra o projeto do Tutorial do SSIS.

2. No Gerenciador de Soluções, clique com o botão direito do mouse em Pacotes SSIS e


clique em Adicionar Pacote Existente.

3. Na caixa de diálogo Adicionar Cópia do Pacote Existente, em Local do Pacote,


selecione Sistema de Arquivos.

4. Clique no botão de navegação (...), navegue até C:\Arquivos de Programas\Microsoft SQL


Server\100\Exemplos\Integration Services\Tutorial\Criando um tutorial de pacote ETL
simples\Pacotes Concluídos, selecione Lesson 1.dtsx e, em seguida, clique em Abrir.

5. Copie e cole o pacote da Lição 1 conforme descrito nas etapas de 3 a 8 do procedimento


anterior.

Tarefa 2: Adicionando e configurando o contêiner Loop


Foreach
Nessa tarefa, você adicionará a capacidade de executar loop através de uma pasta de arquivos
simples e aplicará a mesma transformação Fluxo de Dados usada na Lição 1 para cada um desses
arquivos simples. Você faz isto adicionando e configurando um contêiner Loop Foreach ao fluxo de
controle.
O contêiner Loop Foreach que você adicionar deve ser capaz de se conectar a cada arquivo
simples na pasta. Como todos os arquivos da pasta têm o mesmo formato, o contêiner Loop
Foreach pode usar o mesmo gerenciador de conexões de Arquivo Simples para conectar-se a cada
um desses arquivos. O gerenciador de conexões de Arquivo Simples que o contêiner usará é o
mesmo gerenciador de conexões de Arquivo Simples que você criou na Lição 1.

Atualmente, o gerenciador de conexões de Arquivo Simples da Lição 1 se conecta a um único


arquivo simples específico. Para conectar-se iterativamente a cada arquivo simples da pasta, você
terá que configurar o contêiner Loop Foreach e o gerenciador de conexões de Arquivo Simples da
seguinte maneira:

• Contêiner Loop Foreach Você mapeará o valor enumerado do contêiner para uma
variável de pacote definida pelo usuário. O contêiner usará a variável definida pelo
usuário para modificar dinamicamente a propriedade ConnectionString do gerenciador
de conexões de Arquivo Simples, e conectar-se iterativamente a cada um dos arquivos
simples da pasta.
• Gerenciador de conexões de Arquivo Simples Você modificará o gerenciador de
conexões que criou na Lição 1 usando uma variável definida pelo usuário para popular a
propriedade ConnectionString do gerenciador de conexões.
Os procedimentos nessa tarefa mostram como você pode criar e modificar o contêiner Loop
Foreach para usar uma variável definida pelo usuário e adicionar a tarefa de fluxo de dados ao
loop. Você aprenderá como modificar o gerenciador de conexões de Arquivo Simples para usar
uma variável definida pelo usuário na próxima tarefa.

Após essas modificações no pacote, quando ele for executado, o contêiner Loop Foreach iterará
através dessa coleção de arquivos na pasta Dados de Exemplo. Toda vez que um arquivo é
encontrado e corresponde ao critério, o contêiner Loop Foreach irá popular a variável definida pelo
usuário com o nome do arquivo, mapeará a variável definida pelo usuário para a
propriedade ConnectionString do gerenciador de conexões do Arquivo Simples de Dados Moeda
de exemplo e, então, executará o fluxo de dados naquele arquivo. Portanto, em cada iteração do
Loop Foreach a tarefa de Fluxo de Dados consumirá um arquivo simples diferente.

Observação:

Como o Microsoft Integration Services separa o fluxo de controle do fluxo de dados, qualquer loop que você
adicionar ao fluxo de controle não exigirá modificações no fluxo de dados. Portanto, o fluxo de dados que você
criou na Lição 1 não tem que ser alterado.
Para adicionar um contêiner Loop Foreach
1. Em Business Intelligence Development Studio, clique na guia Fluxo de Controle.

2. Na Caixa de Ferramentas, expanda Itens de Fluxo de Controle e, então, arraste


um Contêiner Loop Foreach até a superfície de design na guiaFluxo de Controle.

3. Clique com o botão direito do mouse no recém-adicionado Contêiner Loop Foreach e


selecione Editar.

4. Na caixa de diálogo Editor de Loop Foreach, na página Geral, como Nome,


digite Arquivo Foreach na Pasta. Clique em OK.

5. Clique com o botão direito do mouse no contêiner Loop Foreach, clique


em Propriedades e na janela Propriedades, verifique se a propriedade LocaleIDestá
definida como Inglês (Estados Unidos).

Para configurar o enumerador para o contêiner Loop Foreach


1. Clique duas vezes no Arquivo Foreach para abrir novamente o Editor de Loop Foreach.

2. Clique em Coleção.

3. Na página Coleção, selecione Enumerador de Arquivo Foreach.

4. No grupo Configuração do Enumerador, clique em Procurar.

5. Na caixa de diálogo Procurar pasta, localize a pasta de dados de exemplo que contém os
dados de exemplo do tutorial.
Por padrão, a pasta de exemplos do tutorial está instalada na pasta C:\Arquivos de
Programas\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a
Simple ETL Package\Sample Data.

6. Na caixa Arquivos, digite Currency_*.txt.

Para mapear o enumerador para uma variável definida pelo usuário


1. Clique em Mapeamentos de Variáveis.

2. Na página Mapeamentos de Variáveis, na coluna Variável, clique na célula vazia e


selecione <Nova variável…>.

3. Na caixa de diálogo Adicionar Variável, para Nome, digite varFileName.

Importante:

Nomes de variáveis fazem diferenciação de maiúsculas e minúsculas.


4. Clique em OK.

5. Clique em OK novamente para fechar a caixa de diálogo Editor de Loop Foreach.

Para adicionar a tarefa de fluxo de dados ao loop


• Arraste a tarefa de fluxo de dados Extrair Dados de Moeda de Exemplo para o
contêiner Loop Foreach agora renomeado Arquivo Foreach na Pasta.

Tarefa 3: Modificando o Gerenciador de Conexões de


Arquivo Simples
Nesta tarefa, você modificará o gerenciador de conexões de arquivo simples que você criou e
configurou na Lição 1. Quando foi criado originalmente, o gerenciador de conexões de arquivo
simples foi configurado para carregar estatisticamente um único arquivo. Para habilitar o
gerenciador de conexões de arquivo simples para carregar arquivos iterativamente, você deve
modificar a propriedade ConnectionString do gerenciador de conexões para aceitar a variável
definida pelo usuário User:varFileName, que contém o caminho do arquivo a ser carregado no
tempo de execução.

Modificando o gerenciador de conexões para usar o valor da variável definida pelo


usuário, User::varFileName, para popular a propriedade ConnectionString do gerenciador
de conexões, o gerenciador de conexões poderá conectar-se a diferentes arquivos simples. No
tempo de execução, cada iteração do contêiner Loop Foreach atualizará dinamicamente a
variável User::varFileName. Atualizar a variável, por sua vez, faz com que o gerenciador de
conexões se conecte a um arquivo simples diferente e a tarefa de fluxo de dados processe um
conjunto diferente de dados.

Para configurar o gerenciador de conexões de arquivo simples para usar


uma variável para a cadeia de conexão
1. No painel Gerenciadores de Conexões, clique com o botão direito do mouse em Dados
de Fonte de Arquivo Simples de Exemplo e selecionePropriedades.

2. Na janela Propriedades, para Expressões, clique na célula vazia e então clique no botão
de reticências (...).

3. Na caixa de diálogo Editor de Expressões de Propriedades, na coluna Propriedade,


digite ou selecione ConnectionString.

4. Na coluna Expressão, clique no botão de reticências (...) para abrir a caixa de


diálogo Construtor de Expressões.

5. Na caixa de diálogo Construtor de Expressão, expanda o nó Variáveis.

6. Arraste a variável, User::varFileName, para a caixa Expressão.

7. Clique em OK para fechar a caixa de diálogo Construtor de Expressão.

8. Clique em OK novamente para fechar a caixa de diálogo Editor de Expressões de


Propriedades.
Tarefa 4: Testando o pacote de tutorial da Lição 2
Com o contêiner Loop Foreach e o gerenciador de conexões de Arquivo Simples agora configurado,
o pacote da Lição 2 pode iterar através da coleção de 14 arquivos simples na pasta Dados de
Exemplo. Cada vez que um nome de arquivo é encontrado e corresponde aos critérios de nome de
arquivo especificado, o contêiner Loop Foreach popula a variável definida pelo usuário com o nome
do arquivo. Essa variável, por sua vez, atualiza a propriedade ConnectionString do gerenciador
de conexões de Arquivo Simples e uma conexão é criada para o novo arquivo simples. O contêiner
Loop Foreach, então, executa a tarefa de fluxo de dados não modificados em relação aos dados no
novo arquivo simples, antes de se conectar ao próximo arquivo na pasta.

Use o procedimento a seguir para testar a nova funcionalidade de loop que você adicionou ao seu
pacote.

Verificando o layout do pacote


Antes de testar o pacote você deve verificar se os fluxos de controle e de dados do pacote da lição
2 contêm os objetos mostrados nos diagramas a seguir. O fluxo de dados deve ser idêntico ao
fluxo de dados na lição 1.

Fluxo de controle

Fluxo de dados

Para testar o pacote de tutorial da lição 2


1. No menu Depurar, clique em Iniciar Depuração.

O pacote será executado. Você pode verificar o status de cada loop na janela Saída ou
clicando na guia Progresso. Por exemplo, você pode ver que foram adicionadas 1097
linhas à tabela de destino do arquivo Currency_VEB.txt.

2. Terminada a execução do pacote, no menu Depurar, clique em Parar Depuração.

Lição 3: Adicionando configurações de pacote


As configurações de pacote deixam você definir propriedades de tempo de execução e variáveis de
fora do ambiente de desenvolvimento. As configurações permitem que você desenvolva pacotes
que são flexíveis e fáceis de implementar e distribuir. O Microsoft Integration Services oferece os
seguintes tipos de configuração:

• Arquivo de configuração XML


• Variável de ambiente
• Entrada de registro
• Variável de pacote pai
• Tabela SQL Server
Nesta lição, você irá modificar o pacote simples Integration Services criados no Lição 2:
Adicionando loop para aproveitar as configurações de pacote. Você também pode copiar o pacote
concluído da Lição 2 que está incluso no tutorial. Usando o Assistente de Configuração de Pacote,
você irá criar uma configuração XML que atualiza a propriedade Directory do contêiner Loop
Foreach utilizando uma variável de nível de pacote mapeada para a propriedade do Diretório.
Depois de criar um arquivo de configuração, você modificará o valor da variável de fora do
ambiente de desenvolvimento e apontará a propriedade modificada para uma nova pasta de dados
de exemplo. Quando você executa o pacote novamente, o arquivo de configuração popula o valor
da variável e a variável por sua vez atualiza a propriedade Directory . Como resultado, o pacote
itera através dos arquivos na nova pasta de dados, em vez de iterar através de arquivos na pasta
original que foi codificada no pacote.

Importante:

Este tutorial requer o banco de dados de exemplo AdventureWorksDW. Para obter mais informações sobre
como instalar e implantar oAdventureWorksDW, consulte Considerações para instalar exemplos e bancos de
dados de exemplo do SQL Server.

Tarefas da lição
Esta lição contém as seguintes tarefas:

• Tarefa 1: Copiando o pacote da Lição 2


• Tarefa 2: Configurando e habilitando configurações de pacote
• Tarefa 3: Modificando o valor de configuração da propriedade de diretório
• Tarefa 4: Testando o pacote de tutorial da Lição 3

Tarefa 1: Copiando o pacote da Lição 2


Nesta tarefa, você criará uma cópia do pacote Lesson 2.dtsx criado na Lição 2. Como alternativa,
é possível adicionar o pacote concluído da Lição 2 incluído com o tutorial do projeto e copiá-lo.
Você usará esta cópia nova ao longo de toda a lição 3.

Para criar o pacote da lição 2


1. Se o Business Intelligence Development Studio ainda não estiver aberto, clique
em Iniciar, aponte para Todos os Programas, aponte para Microsoft SQL Server e
clique em Business Intelligence Development Studio.

2. No menu Arquivo, clique em Abrir, clique em Projeto/Solução, selecione Tutorial do


SSIS, clique em Abrir e clique duas vezes em SSIS Tutorial.sln.

3. No Gerenciador de Soluções, clique com o botão direito do mouse em Lesson 2.dtsx e


clique em Copiar.

4. No Gerenciador de Soluções, clique com o botão direito do mouse em Pacotes SSIS e


clique em Colar.

Por padrão, o pacote copiado recebe o nome de Lesson 3.dtsx.

5. No Gerenciador de Soluções, clique duas vezes em Lesson 3.dtsx para abrir o pacote.

6. Clique com o botão direito do mouse em qualquer local do plano de fundo da guia Fluxo
de Controle e clique em Propriedades.

7. Na janela Propriedades, atualize a propriedade Name para Lição 3.


8. Clique na caixa da propriedade ID e, na lista, clique em <Gerar Nova ID>.

Para adicionar o pacote concluído da lição 2


1. Abra o Business Intelligence Development Studio e abra o projeto do Tutorial do SSIS.

2. No Gerenciador de Soluções, clique com o botão direito do mouse em Pacotes SSIS e


clique em Adicionar Pacote Existente.

3. Na caixa de diálogo Adicionar Cópia do Pacote Existente, em Local do Pacote,


selecione Sistema de Arquivos.

4. Clique no botão de navegação (...), navegue até C:\Arquivos de Programas\Microsoft SQL


Server\100\Exemplos\Integration Services\Tutorial\Criando um pacote ETL
simples\Pacotes Concluídos, selecione Lesson 2.dtsx e clique em Abrir.

5. Copie e cole o pacote da Lição 2 conforme descrito nas etapas de 3 a 8 do procedimento


anterior.

Tarefa 2: Configurando e habilitando configurações de


pacote
Nesta tarefa, você habilitará configurações de pacote que usam o Assistente de Configuração de
Pacote. Você usará esse assistente para gerar um arquivo de configuração XML que contenha
definições de configuração para a propriedade Directory do contêiner Loop Foreach. O valor da
propriedade de diretório é fornecido por uma nova variável de nível de pacote que você pode
atualizar no tempo de execução. Adicionalmente, você populará uma pasta de dados de exemplo
para usar durante o teste.

Para criar uma nova variável de nível de pacote mapeada para a


propriedade de diretório
1. Clique no plano de fundo da guia Fluxo de Controle no Designer SSIS. Isso define o
escopo da variável que você criará para o pacote.

2. No menu SSIS, selecione Variáveis.

3. Na janela Variáveis, clique no ícone Adicionar Variável.

4. Na caixa Nome, digite varFolderName.

Importante:

Nomes de variáveis fazem diferenciação de maiúsculas e minúsculas.


5. Verifique se a caixa Escopo mostra o nome do pacote, Lição 3.

6. Defina o valor da caixa Tipo de Dados da variável varFolderName como Cadeia de


Caracteres.

7. Retorne à guia Fluxo de Controle e clique duas vezes no contêiner Arquivo Foreach na
Pasta.

8. Na página Coleção do Editor do Loop Foreach, clique em Expressões e, em seguida,


clique no botão de reticências (...).

9. No Editor de Expressões de Propriedades, clique na lista Propriedade e


selecione Diretório.

10. Na caixa Expressão, clique no botão de reticências (...).

11. No Construtor de Expressões, expanda a pasta Variáveis e arraste a


variável User::varFolderName para a caixa Expressão.

12. Clique em OK para sair do Construtor de Expressões.

13. Clique em OK para sair do Editor de Expressões de Propriedades.

Para habilitar configurações de pacote


1. Clique no plano de fundo da guia Fluxo de Controle no Designer SSIS.

2. No menu SSIS , clique em Configurações de Pacote.

3. Na caixa de diálogo Organizador de Configurações do Pacote, selecione Habilitar


Configurações do Pacote e clique em Adicionar.

4. Na página inicial do Assistente de Configuração de Pacotes, clique em Avançar.

5. Na página Selecionar Tipo de Configuração, verifique se o Tipo de Configuração está


definido como Arquivo de Configuração XML.

6. Na página Selecionar Tipo de Configuração, clique em Procurar.

7. Por padrão, a caixa de diálogo Selecionar Local do Arquivo de Configuração abrirá a


pasta do projeto.

8. Na caixa de diálogo Selecionar Local do Arquivo de Configuração, em Nome do


Arquivo, digite SSISTutorial e clique em Salvar.

9. Na página Selecionar Tipo de Configuração, clique em Avançar.

10. Na página Selecionar Propriedades para Exportar, no painel Objetos,


expanda Variáveis, varFolderName, Propriedades e, em seguida, selecione Valor.

11. Na página Selecionar Propriedades para Exportar, clique em Avançar.

12. Na página Concluindo o Assistente, digite um nome de configuração para a


configuração, como Configuração do Diretório de Tutoriais do SSIS. Esse é o nome
de configuração exibido na caixa de diálogo Organizador de Configurações do Pacote.

13. Clique em Concluir.

14. Clique em Fechar.

15. O assistente cria um arquivo de configuração, chamado SSISTutorial.dtsConfig, que


contém as definições de configuração de value da variável que define a
propriedade Directory do enumerador.

Observação:

Um arquivo de configuração geralmente contém informações complexas sobre as propriedades do pacote, mas,
para este tutorial, a única informação deveria ser [User::varFolderName].Properties[Value].

Para criar e popular uma nova pasta de dados de exemplo


1. No Windows Explorer, no nível da raiz de sua unidade (por exemplo, C:\), crie uma nova
pasta chamada Novos Dados de Exemplo.

2. Abra a pasta c:\Arquivos de Programas\Microsoft SQL Server\100\Samples\Integration


Services\Tutorial\Creating a Simple ETL Package\Sample Data e copie um dos três
arquivos de exemplo da pasta.

3. Na pasta Novos Dados de Exemplo, cole os arquivos copiados.

Tarefa 3: Modificando o valor de configuração da


propriedade de diretório
Nesta tarefa, você modificará a definição de configuração, armazenada no arquivo de configuração
SSISTutorial.dts, para a propriedade Value da variável de nível de
pacote User::varFolderName. A variável atualiza a propriedade Directory do contêiner Loop
Foreach. O valor modificado apontará para a pasta Novos Dados de Exemplo que você criou na
tarefa anterior. Depois de modificar a definição de configuração e executar o pacote, a
propriedade Directory será atualizada pela variável, usando o valor preenchido pelo arquivo de
configuração e não o valor de diretório originalmente configurado no pacote.

Para modificar a definição de configuração da propriedade de diretório


1. No Bloco de notas ou em qualquer outro editor de texto, localize e abra o arquivo de
configuração SSISTutorial.dts criado usando o Assistente para Configuração de Pacote na
tarefa anterior.

2. Altere o valor do elemento ConfiguredValue para corresponder ao caminho da


pasta Novos Dados de Exemplo criada na tarefa anterior. Não coloque o caminho entre
aspas. Se a pasta Novos Dados de Exemplo estiver no nível da raiz de sua unidade (por
exemplo, C:\), o XML atualizado deverá ser semelhante ao seguinte exemplo:

<?xml
version="1.0"?><DTSConfiguration><DTSConfigurationHeading><DTSCo
nfigurationFileInfo GeneratedBy="Domain\UserName"
GeneratedFromPackageName="Lesson 3"
GeneratedFromPackageID="{99396D72-2F8D-4A37-8362-96346AD53334}"
GeneratedDate="11/12/2005 12:46:13
PM"/></DTSConfigurationHeading><Configuration
ConfiguredType="Property"
Path="\Package.Variables[User::varFolderName].Properties[Value]"
ValueType="String"><ConfiguredValue>C:\New Sample
Data</ConfiguredValue></Configuration></DTSConfiguration>
A informações de
título, GeneratedBy, GeneratedFromPackageID e GeneratedDate serão diferentes
em seu arquivo. O elemento a ser anotado éConfiguration. A propriedade Value da
variável, User::varFolderName, agora contém C:\Novos Dados de Exemplo.

3. Salve a alteração e feche o editor de textos.

Tarefa 4: Testando o pacote de tutorial da Lição 3


Em tempo de execução, o pacote irá obter o valor da propriedadeDirectory de uma variável
atualizada em tempo de execução, ao invés de utilizar o nome original de diretório que foi
especificado quando você criou o pacote. O valor da variável é populado pelo arquivo
SSISTutorial.dtsConfig.

Para verificar se, em tempo de execução, o pacote atualizou corretamente o Diretório com o novo
valor, simplesmente execute o pacote. Devido a serem copiados apenas três arquivos de dados de
exemplo para o novo diretório, o fluxo de dados irá executar apenas três vezes ao invés de
interagir com 14 arquivos da pasta original.

Verificando o layout do pacote


Antes de testar o pacote deve-se verificar se os fluxos de controle e de dados do pacote da Lição 3
contêm os objetos mostrados nos diagramas a seguir. O fluxo de controle deve ser idêntico ao
fluxo de controle da lição 2. O fluxo de dados deve ser idêntico ao fluxo de dados das lições 1 e 2.

Fluxo de Controle

Fluxo de Dados
Para testar o pacote de tutorial da Lição 3
1. No menu Depurar, clique em Iniciar Depuração.

2. Terminada a execução do pacote, no menu Depurar, clique em Parar Depuração.

Lição 4: Adicionando log


O Microsoft Integration Services inclui recursos de log que permite que você solucione problemas
e monitore a execução do pacote ao fornecer um rastreamento de eventos de tarefa e contêiner.
Os recursos de log são flexíveis, e podem ser habilitados no nível do pacote ou em tarefas
individuais e contêineres dentro do pacote. Você pode selecionar quais eventos quer você anotar,
e criar múltiplos logs vários em um único pacote.

O log é fornecido por um provedor de log. Cada provedor de log pode escrever informações de log
em diferentes formatos e tipos de destino. O Integration Services fornece os seguintes provedores
de log:

• Arquivo de texto
• SQL Server Profiler
• Janela Evento de Log
• SQL Server
• Arquivo XML
Nesta lição, você irá criar uma cópia do pacote que criou em Lição 3: Adicionando configurações
de pacote. Trabalhando com este novo pacote, você irá adicionar e então configurar o log para
monitorar eventos específicos durante a execução de pacote. Se você não tiver completado
nenhuma das anteriores lições, poderá também copiar o pacote da Lição 3 terminada, que está
inclusa no tutorial.

Importante:

Este tutorial requer o banco de dados de exemplo AdventureWorksDW. Para obter mais informações sobre como instalar
e implantar oAdventureWorksDW, consulte Considerações para instalar exemplos e bancos de dados de exemplo do SQL
Server.
Tarefas da lição
Esta lição contém as seguintes tarefas:

• Tarefa 1: Copiando o pacote da Lição 3


• Tarefa 2: Adicionando e configurando registro em log
• Tarefa 3: Testando o pacote de tutorial da Lição 4
Tarefa 1: Copiando o pacote da Lição 3
Nesta tarefa, você criará uma cópia do pacote Lesson 3.dtsx criado na Lição 3. Como alternativa,
é possível adicionar o pacote concluído da Lição 3 incluído com o tutorial do projeto e copiá-lo.
Você usará esta cópia nova ao longo de toda a Lição 4.

Como as informações de configuração do pacote são copiadas junto com o próprio pacote, você
também deve modificar a configuração do pacote para reverter uma das alterações feitas na lição
anterior e apontar o Loop Foreach de volta para a pasta Dados de Exemplo original.

Para criar o pacote da Lição 4


1. Se o Business Intelligence Development Studio ainda não estiver aberto, clique
em Iniciar, aponte para Todos os Programas, aponte para Microsoft SQL Server e
clique em Business Intelligence Development Studio.

2. No menu Arquivo, clique em Abrir, clique em Projeto/Solução, selecione Tutorial do


SSIS, clique em Abrir e clique duas vezes em SSIS Tutorial.sln.

3. No Gerenciador de Soluções, clique com o botão direito do mouse em Lesson 3.dtsx e


clique em Copiar.

4. No Gerenciador de Soluções, clique com o botão direito do mouse em Pacotes SSIS e


clique em Colar.

Por padrão, o pacote copiado recebe o nome de Lesson 4.dtsx.

5. No Gerenciador de Soluções, clique duas vezes em Lesson 4.dtsx para abrir o pacote.

6. Clique com o botão direito do mouse em qualquer local do plano de fundo da guia Fluxo
de Controle e clique em Propriedades.

7. Na janela Propriedades, atualize a propriedade Name para Lição 4.

8. Clique na caixa da propriedade ID e, na lista, clique em <Gerar Nova ID>.

Para adicionar o pacote concluído da lição 3


1. Abra o Business Intelligence Development Studio e abra o projeto do Tutorial do SSIS.

2. No Gerenciador de Soluções, clique com o botão direito do mouse em Pacotes SSIS e


clique em Adicionar Pacote Existente.

3. Na caixa de diálogo Adicionar Cópia do Pacote Existente, em Local do Pacote,


selecione Sistema de Arquivos.

4. Clique no botão de navegação (...), navegue até C:\Arquivos de Programas\Microsoft SQL


Server\100\Exemplos\Integration Services\Tutorial\Criando um pacote ETL
simples\Pacotes Concluídos, selecione Lesson 3.dtsx e clique em Abrir.

5. Copie e cole o pacote da lição 3 conforme descrito nas etapas de 3 a 8 do procedimento


anterior.

Para modificar a configuração do pacote


1. No Bloco de notas ou em qualquer outro editor de texto, localize e abra o arquivo de
configuração SSISTutorial.dts criado usando o Assistente para configuração de pacote na
lição anterior. Se estiver começando a partir desta lição e não tiver criado um arquivo de
configuração, poderá usar o arquivo de configuração localizado na pasta c:\Arquivos de
Programas\SQL Server\100\Exemplos\Integration Services/Tutorial/Criando um pacote
ETL simples\Pacotes Concluídos.

2. Retorne o valor do elemento Valor Configurado para a pasta de dados de exemplo


original. Por padrão, a pasta de exemplos está instalada na pasta C:\Arquivos de
Programas\Microsoft SQL Server\100\Exemplos\Integration Services\Tutorial\Criando um
pacote ETL simples\Dados de Exemplo. Se estiver começando a partir desta lição e não
tiver modificado este arquivo anteriormente, não precisará fazer alterações.

Observação:
Não é necessário colocar o caminho entre aspas no arquivo de configuração XML.
3. Salve a alteração e feche o editor de textos.

Tarefa 2: Adicionando e configurando registro em log


Nesta tarefa você ativará o log para o fluxo de dados do pacote Lição 4. Então, você configurará
um provedor de log de arquivo de texto para armazenar os eventos PipelineExecutionPlan e
PipelineExecuteTrees em log. O provedor de log de arquivos de texto cria logs que são fáceis
exibir e transportar. A simplicidade destes arquivos de log faz estes arquivos especialmente úteis
durante a fase de teste básico de um pacote. É possível também exibir as entradas de log na
janela Eventos de Log do Designer SSIS.

Adicionar log ao pacote


1. No menu SSIS, clique em Registro.

2. Na caixa de diálogo Configurar SSIS Logs, no painel Contêineres, certifique-se que o


objeto mais alto, que representa o pacote Lição 4, está selecionado.

3. Na guia Provedores e Logs, na caixa Tipo de provedor, selecione SSIS provedor de


log para Arquivos de Texto, e clique Adicionar.

O Integration Services adiciona um novo provedor de log para arquivos de texto para o
pacote, com o nome padrão SSIS provedor de logo para arquivos de texto. Agora é
possível configurar o novo provedor de log.

4. Na coluna Nome, digite Lesson 4 Log File.

5. Opcionalmente, modifique a Descrição.

6. Na coluna Configuração, clique em <Nova Conexão> para especificar o destino para o


qual as informações de log são gravadas.

Na caixa de diálogo Editor do Gerenciador de Conexões de Arquivos, para Tipo de


uso, selecione Criar Arquivo e clique em Procurar. Por padrão, a caixa de
diálogo Selecione Arquivo abrirá a pasta do projeto, mas você pode salvar o log em
qualquer localização.

7. Na caixa de diálogo Selecionar Arquivo, em Nome do Arquivo digite TutorialLog.log,


e clique em Abrir.

8. Clique em OK para fechar a caixa de diálogo Editor do Gerenciador de Conexões de


Arquivos.

9. No painel Contêineres, expandir todos os nós da hierarquia do contêiner do pacote, e


limpe todas as caixas de seleção, inclusive a caixa de seleçãoExtrair Dados de Exemplo
de Moeda. Agora marque a caixa de seleção Extrair Dados de Exemplo de
Moeda para adquirir só os eventos para este nó.

Importante:

Se o estado da caixa de seleção Extrair Dados de Exemplo de Moeda estiver esmaecido ao invés de marcada, a
tarefa usará as configurações de log do contêiner pai e não será possível ativar os eventos de log específicos para a
tarefa.
10. Na guia Detalhes, na coluna Eventos, selecione os
eventos PipelineExecutionPlan e PipelineExecutionTrees.

11. Clique em Avançado para revisar os detalhes que o provedor de log escreverá no log
para cada evento. Por padrão, todas as categorias de informações são selecionadas
automaticamente para os eventos especificados por você.

12. Clique em Básico para ocultar as categorias de informações.

13. Na guia Provedor e Logs, na coluna Nome, selecione Arquivo de Log da Lição 4.
Assim que tiver criado um provedor de log para seu pacote, poderá, como opção, retirar a
seleção para temporariamente desligar o registro em log, sem ter que excluir e recriar o
provedor de log.

14. Clique em OK.

Tarefa 3: Testando o pacote de tutorial da Lição 4


Nesta tarefa, você executará o pacote Lesson4.dtsx. Quando o pacote for executado, a janela
Eventos de Log listará as entradas de log gravadas no arquivo de log. Após a execução do pacote
ser concluída, você verificará o conteúdo do arquivo de log gerado pelo provedor do log.

Verificando o layout do pacote


Antes de testar o pacote, é recomendável verificar se os fluxos de controle e de dados do pacote
da Lição 4 contêm os objetos mostrados nos diagramas a seguir. O fluxo de controle deve ser
idêntico ao fluxo de controle das lições 2 e 3. O fluxo de dados deve ser idêntico ao fluxo de dados
nas lições 1 a 3.

Fluxo de controle

Fluxo de dados

Para executar o pacote de tutorial da lição 4


1. No menu SSIS, clique em Eventos de Log.

2. No menu Depurar, clique em Iniciar Depuração.

3. Terminada a execução do pacote, no menu Depurar, clique em Parar Depuração.

Para examinar o arquivo de log gerado


• Com o bloco de notas ou qualquer outro editor de texto, abra o arquivo TutorialLog.log.
Embora as semânticas das informações geradas para os
eventos PipelineExecutionPlan e PipelineExecutionTrees estejam além do escopo
deste tutorial, você pode ver que a primeira linha lista os campos de informações
especificados na guia Detalhes da caixa de diálogo Configurar Logs de SSIS. Além
disso, é possível verificar se os dois eventos selecionados, PipelineExecutionPlan e
PipelineExecutionTrees, foram conectados para cada iteração do Loop Foreach.

Para obter mais informações sobre como trabalhar com arquivos de log,
consulte Implementando logs em pacotes.

Lição 5: Adicionando redirecionamento de fluxo de erro


Para tratar erros que podem ocorrer no processo de transformação, o Microsoft Integration
Services fornece a capacidade de decidir, em termos de componente e coluna, como tratar dados
que não podem ser transformados. Você pode escolher ignorar uma falha em determinadas
colunas, redirecionar toda a linha com falha ou apenas causar falha no componente. Por padrão,
todos os componentes no Integration Services são configurados para falhar quando ocorrerem
erros. Causar falha em um componente, por sua vez, faz com que o pacote falhe e todo o
processamento subseqüente pare.

Em vez de permitir que as falhas interrompam a execução do pacote, é bom configurar e tratar
erros de processamento em potencial conforme ocorrem dentro da transformação. Como você
pode escolher ignorar as falhas para garantir que seu pacote seja executado com êxito,
freqüentemente é melhor redirecionar a linha com falhas para outro caminho de processamento,
em que os dados e o erro podem ser persistentes, examinados e reprocessados posteriormente.

Nesta lição, você criará uma cópia do pacote desenvolvido em Lição 4: Adicionando log. Ao
trabalhar com este pacote novo, você criará uma versão corrompida de um dos arquivos de dados
de exemplo. O arquivo corrompido forçará a ocorrência de um erro de processamento quando
você executar o pacote.

Para tratar os dados de erro, você adicionará e configurará um destino de Arquivo Simples que
gravará qualquer linha que não localize um valor de pesquisa na transformação Pesquisa de
Códigos de Moeda em um arquivo.

Antes que os dados de erro sejam gravados em um arquivo, você incluirá um componente Script
que utiliza script para obter as descrições de erro. Você reconfigurará, então, a transformação
Pesquisa de Códigos de Moeda para redirecionar qualquer dado que não possa ser processado
para a transformação Script.

Importante:

Este tutorial requer o banco de dados de exemplo AdventureWorksDW. Para obter mais informações sobre como
instalar e implantar oAdventureWorksDW, consulte Considerações para instalar exemplos e bancos de dados de
exemplo do SQL Server.
Tarefas da lição
Esta lição contém as seguintes tarefas:

• Tarefa 1: Copiando o pacote da Lição 4


• Tarefa 2: Criando um arquivo corrompido
• Tarefa 3: Adicionando redirecionamento de fluxo de erro
• Tarefa 4: Adicionando um destino de arquivo simples
• Tarefa 5: Testando o pacote de tutorial da Lição 5

Tarefa 1: Copiando o pacote da Lição 4


Nesta tarefa, você criará uma cópia do pacote Lesson 4.dtsx criado na Lição 4. Se você não tiver
completado a lição 4, poderá adicionar o pacote completo da lição 4, incluído no tutorial do projeto,
e então trabalhar com uma cópia. Você usará esta cópia nova ao longo de toda a lição 5.

Para criar o pacote da lição 5


1. Se o Business Intelligence Development Studio ainda não estiver aberto, clique
em Iniciar, aponte para Todos os Programas, aponte para Microsoft SQL Server e
clique em Business Intelligence Development Studio.

2. No menu Arquivo, clique em Abrir, clique em Projeto/Solução, selecione Tutorial do


SSIS, clique em Abrir e clique duas vezes em SSIS Tutorial.sln.
3. No Gerenciador de Soluções, clique com o botão direito do mouse em Lesson 4.dtsx e,
em seguida, clique em Copiar.

4. No Gerenciador de Soluções, clique com o botão direito do mouse em Pacotes SSIS e


clique em Colar.

Por padrão, o pacote copiado recebe o nome de Lesson 5.dtsx.

5. No Gerenciador de Soluções, clique duas vezes no pacote Lesson 5.dtsx para abri-lo.

6. Clique com o botão direito do mouse no plano de fundo da guia Fluxo de Controle e
clique em Propriedades.

7. Na janela Propriedades, atualize a propriedade Name para Lição 5.

8. Clique na caixa da propriedade ID e, na lista, clique em <Gerar Nova ID>.

Para adicionar o pacote concluído da lição 4


1. Abra o Business Intelligence Development Studio e abra o projeto do Tutorial do SSIS.

2. No Gerenciador de Soluções, clique com o botão direito do mouse em Pacotes SSIS e


clique em Adicionar Pacote Existente.

3. Na caixa de diálogo Adicionar Cópia do Pacote Existente, em Local do Pacote,


selecione Sistema de Arquivos.

4. Clique no botão de navegação (...), navegue para C:\Arquivos de Programas\Microsoft


SQL Server\100\Exemplos\Integration Services\Tutorial\Criando um tutorial de pacote
ETL simples\Pacotes Concluídos, selecione Lesson 4.dtsx e, em seguida, clique em Abrir.

5. Copie e cole o pacote da Lição 4 conforme descrito nas etapas de 3 a 8 do procedimento


anterior.

Tarefa 2: Criando um arquivo corrompido


Para demonstrar a configuração e o tratamento de erros de transformação, você terá que criar um
arquivo simples de amostra que no processamento causa a falha de um componente.

Nesta tarefa, você criará uma cópia de um arquivo simples de amostra existente. Você deverá
então abrir o arquivo no Bloco de Notas e editar a coluna CurrencyID para certificar-se de que
não produzirá uma correspondência durante a pesquisa de transformações. Quando o arquivo
novo for processado, a falha na pesquisa irá causar a falha da transformação Pesquisa de Códigos
de Moeda e criará, portanto, uma falha no resto do pacote. Depois de criar o arquivo de amostra
corrompido, você executará o pacote para exibir a falha do pacote.

Para criar um arquivo simples de amostra corrompido


1. No Bloco de Notas ou em qualquer outro editor de texto, abra o arquivo Currency_VEB.txt.

Por padrão, o arquivo Currency_VEB.txt é instalado na pasta C:\Arquivos de


Programas\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a
Simple ETL Package\Sample Data.

2. Use o recurso de localizar e substituir do editor de texto para encontrar todas as


instâncias de VEB e substituí-los por BAD.

3. Na mesma pasta dos outros arquivos de dados de exemplo, salve o arquivo modificado
como Currency_BAD.txt.

Importante:

Certifique-se de que o arquivo Currency_BAD.txt será salvo na pasta c:\Arquivos de Programas\Microsoft


SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Sample Data.
4. Feche seu editor de texto.

Para verificar se um erro acontecerá durante o tempo de execução


1. No menu Depurar, clique em Iniciar Depuração.
Na terceira repetição do fluxo de dados, uma transformação Pesquisa de Códigos de
Moeda tenta processar o arquivo Currency_BAD.txt e a transformação irá falhar. O
fracasso da transformação fará o pacote inteiro falhar.

2. No menu Depurar, clique em Parar Depuração.

3. Na superfície de design, clique na guia Resultados da Execução.

4. Procure no log e verifique se o seguinte erro sem tratamento ocorreu:

[Lookup Currency Key[30]] Error: Row yielded no match during


lookup.

Observação:

O número 30 é a ID do componente. Esse valor é atribuído quando você cria o fluxo de dados, ou seja, o
valor do seu pacote pode ser diferente.

Tarefa 3: Adicionando redirecionamento de fluxo de


erro
Conforme mostrado na tarefa anterior, a transformação Pesquisa de Códigos de Moeda não pode
gerar uma correspondência quando a transformação tenta processar o arquivo simples de amostra
corrompido que produziu um erro. Como a transformação usa as configurações padrão da saída de
erro, qualquer erro faz a transformação falhar. Quando a transformação falha, o resto do pacote
também falha.

Em vez de permitir a falha da transformação, você pode configurar o componente para


redirecionar a linha com falha para outro caminho de processamento usando a saída de erro. O
uso de um caminho de tratamento separado de erro permite que você faça várias coisas. Por
exemplo, você pode tentar limpar os dados e depois reprocessar a linha com falha. Também é
possível salvar a linha com falha junto com informações de erro adicionais para verificação e
reprocessamento posteriores.

Nesta tarefa, você configurará a transformação Pesquisa de Códigos de Moeda para redirecionar
linhas com falha para a saída de erro. Na ramificação de erro do fluxo de dados, essas filas serão
gravadas em um arquivo.

Por padrão as duas colunas extras em uma saída de erro do Integration


Services, ErrorCode e ErrorColumn, só contêm códigos numéricos que representam um número
de erro e a ID da coluna na qual o erro aconteceu. Esses valores numéricos podem ser de uso
limitado sem a descrição de erro correspondente.

Para aumentar a utilidade da saída de erro, antes de o pacote gravar as linhas com falha no
arquivo, você usará um componente Script para acessar a API do Integration Services e obter
uma descrição do erro.

Para configurar uma saída de erro


1. Na Caixa de Ferramentas, expanda Transformações de Fluxo de Dados e depois
arraste o Componente Script para a superfície de design da guiaFluxo de Dados.
Coloque Script à direita da transformação Pesquisa de Códigos de Moeda.

2. Na caixa de diálogo Selecionar Tipo de Componente do Script, clique


em Transformação e clique em OK.

3. Clique na transformação Pesquisa de Códigos de Moeda e depois arraste a seta


vermelha sobre a transformação Scripts adicionada recentemente para conectar os dois
componentes.

A seta vermelha representa a saída de erro da transformação Pesquisa de Códigos de


Moeda. Usando a seta vermelha para conectar a transformação ao componente Script,
você pode redirecionar qualquer erro de processamento ao componente Script, que então
processará os erros e os enviará ao destino.

4. Na caixa de diálogo Configurar Saída de Erro, na coluna Erro, selecione Redirecionar


linha e, em seguida, clique em OK.
5. Na superfície de design de Fluxo de Dados, clique em Componente Script, no recém-
adicionado Componente Script, e altere o nome para Obter Descrição de Erro.

6. Clique duas vezes na transformação Obter Descrição do Erro.

7. Na caixa de diálogo Editor de Transformação Scripts, na página Colunas de Entrada,


selecione a coluna ErrorCode.

8. Na página Entradas e Saídas, expanda Saída 0, clique em Colunas de Saída e clique


em Adicionar Coluna.

9. Na propriedade Name, digite ErrorDescription e defina a


propriedade DataType como cadeia de caracteres [DT_WSTR].

10. Na página Script, verifique se a propriedade LocaleID está definida como Inglês
(Estados Unidos).

11. Clique em Editar Script para abrir o Microsoft Visual Studio Tools for Applications (VSTA).
No método Input0_ProcessInputRow, digite ou cole o código a seguir.

[Visual Basic]

Row.ErrorDescription =

Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)

[Visual C#]

Row.ErrorDescription =
this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);

A sub-rotina concluída se parecerá com o código a seguir.

[Visual Basic]

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

Row.ErrorDescription =

Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)

End Sub

[Visual C#]

public override void Input0_ProcessInputRow(Input0Buffer Row)

Row.ErrorDescription =
this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);

12. Crie o script para salvar suas alterações e depois feche o VSTA.

13. Clique em OK para fechar a caixa de diálogo Editor de Transformação Scripts.

Tarefa 4: Adicionando um destino de arquivo simples


A saída de erro da transformação Pesquisa de Códigos de Moeda redireciona para a transformação
Script todas as linhas de dados que falharam na operação de pesquisa. Para aprimorar as
informações sobre os erros que ocorreram, a transformação Script executa um script que adquire
a descrição de erros.

Nessa tarefa, você salvará todas essas informações sobre as linhas com falha em um arquivo
delimitado, para processamento posterior. Para salvar as linhas com falha, você deve adicionar e
configurar um gerenciador de conexões de arquivo simples para o arquivo de texto que conterá os
dados de erro e um arquivo simples de destino. Ao definir propriedades no gerenciador de
conexões de arquivo simples que o arquivo simples usa, você pode especificar como o destino do
arquivo simples formata e escreve o arquivo de texto. Para obter mais informações,
consulte Gerenciador de conexões de arquivo simples e Destino de arquivo simples.

Para adicionar e configurar um destino de arquivo simples


1. Clique na guia Fluxo de Dados.

2. Na Caixa de Ferramentas, expanda Destinos de Fluxo de Dados e arraste Destino


de Arquivo Simples sobre a superfície de design de fluxo de dados. Coloque Destino de
Arquivo Simples diretamente embaixo da transformação Obter Descrição do Erro.

3. Clique na transformação Obter Descrição do Erro e arraste a seta verde sobre o


novo Destino de Arquivo Simples.

4. Na superfície de design de Fluxo de Dados, clique em Destino de Arquivo Simples, na


recém-adicionada transformação Destino de Arquivo Simples, e altere o nome
para Linhas com Falha.

5. Clique com o botão direito do mouse na transformação Linhas com Falha, clique
em Editar e, em seguida, no Editor de Destino de Arquivo Simples, clique em Novo.

6. Na caixa de diálogo Formato de Arquivo Simples, verifique se Delimitado está


selecionado e depois clique em OK.

7. No Editor do Gerenciador de Conexões de Arquivos Simples, no tipo de caixa Nome


do Gerenciador de Conexões digite Dados do Erro.

8. Na caixa de diálogo Editor do Gerenciador de Conexões de Arquivo Simples, clique


em Procurar e localize a pasta em que o arquivo será armazenado.

9. Na caixa de diálogo Abrir, para tipo de Nome do arquivo, digite ErrorOutput.txt e


depois clique em Abrir.

10. Na caixa de diálogo Editor do Gerenciador de Conexões de Arquivo Simples,


verifique se a caixa Localidade contém Inglês (Estados Unidos) ePágina de
código contém 1252 (ANSI - Latin I).

11. No painel de opções, clique em Colunas.

Observe que, além das colunas do arquivo de dados de origem, três colunas novas estão
presentes: ErrorCode, ErrorColumn e ErrorDescription. Essas colunas são geradas pela
saída de erro da transformação Pesquisa de Códigos de Moeda e pelo script na
transformação Obter Descrição do Erro e podem ser usadas para diagnosticar a causa da
linha com falha.

12. Clique em OK.

13. No Editor de Destino de Arquivo Simples, desmarque a caixa de seleção Substituir


dados no arquivo.

Ao desmarcar essa caixa de seleção, os erros sobre as execuções de vários pacotes serão
mantidos.

14. No Editor de Destino de Arquivo Simples, clique em Mapeamentos para verificar se


todas as colunas estão corretas. Como alternativa, você pode renomear as colunas no
destino.

15. Clique em OK.

Tarefa 5: Testando o pacote de tutorial da Lição 5


No tempo de execução, o arquivo corrompido, Currency_BAD.txt, não gerará uma correspondência
dentro da transformação Pesquisa de Códigos de Moeda. Como a saída de erro de Pesquisa de
Códigos de Moeda foi configurada para redirecionar linhas com falhas para o novo destino de
linhas com falha, o componente não falha e o pacote é executado com êxito. Todas as linhas com
erro são gravadas em ErrorOutput.txt.

Nesta tarefa, você testará a configuração de saída do erro revisado executando o pacote. Com a
execução bem-sucedida do pacote, você verá o conteúdo do arquivo ErrorOutput.txt.

Observação:

Se você não quiser acumular linhas de erro no arquivo ErrorOutput.txt, exclua manualmente o conteúdo do
arquivo entre execuções de pacotes.
Verificando o layout do pacote
Antes de você testar o pacote, é recomendável verificar se o fluxo de controle e o fluxo de dados
do pacote da lição 5 contêm os objetos mostrados nos diagramas seguintes. O fluxo de controle
deve ser idêntico ao fluxo de controle das lições 2 - 4.

Fluxo de controle

Fluxo de dados

Para executar o pacote de tutorial da lição 5


1. No menu Depurar, clique em Iniciar Depuração.

2. Terminada a execução do pacote, no menu Depurar, clique em Parar Depuração.

Para verificar o conteúdo do arquivo ErrorOutput.txt


• No Bloco de Notas ou qualquer outro editor de texto, abra o arquivo ErrorOutput.txt. A
ordem de colunas padrão é: AverageRate, CurrencyID, CurrencyDate, EndOfDateRate,
ErrorCode, ErrorColumn, ErrorDescription.
Observe que todas as linhas do arquivo contêm o valor CurrencyID de BAD, o valor
ErrorCode de -1071607778, o valor ErrorColumn de 0 e o valor ErrorDescription de "Row
yielded no match during lookup." O valor de ErrorColumn é definido como 0 porque o erro
não é específico da coluna. A operação de pesquisa que falhou. .

Você também pode gostar