Transcript
Page 1: Tutorial Do SQL Server Integration Services

Tutorial do

SQL Server 2008

Integration Services

Page 2: Tutorial Do SQL Server Integration Services

Sumário Tutorial: Criando um pacote ETL simples .............................................................................. 3

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

Tarefa 1: Criando um novo projeto do Integration Services ............................................ 7

Tarefa 2: Adicionando e configurando um gerenciador de conexões de arquivo

simples ..................................................................................................................................... 8

Tarefa 3: Adicionando e configurando um gerenciador de conexões OLE DB .......... 11

Tarefa 4: Adicionando uma tarefa de fluxo de dados ao pacote .................................. 12

Tarefa 5: Adicionando e configurando a fonte de arquivo simples ............................... 13

Tarefa 6: Adicionando e configurando a transformação Pesquisa ............................... 14

Tarefa 7: Adicionando e configurando o destino OLE DB ............................................. 16

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

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

Lição 2: Adicionando loop ....................................................................................................... 19

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

Tarefa 2: Adicionando e configurando o contêiner Loop Foreach ................................ 21

Tarefa 3: Modificando o Gerenciador de Conexões de Arquivo Simples .................... 23

Tarefa 4: Testando o pacote de tutorial da Lição 2......................................................... 24

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

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

Tarefa 2: Configurando e habilitando configurações de pacote ................................... 28

Tarefa 3: Modificando o Gerenciador de Conexões de Arquivo Simples .................... 30

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

Lição 4: Adicionando log ......................................................................................................... 32

Tarefa 1: Copiando o pacote da Lição 3 ........................................................................... 33

Tarefa 2: Adicionando e configurando registro em log ................................................... 35

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

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

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

Tarefa 2: Criando um arquivo corrompido ........................................................................ 40

Tarefa 3: Adicionando redirecionamento de fluxo de erro ............................................. 41

Tarefa 4: Adicionando um destino de arquivo simples ................................................... 43

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

Page 3: Tutorial Do SQL Server Integration Services

Tutorial: Criando um pacote ETL simples

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.

Este tutorial também requer dados de exemplo. Os dados de exemplo são instalados junto com as amostras.

Page 4: Tutorial Do SQL Server Integration Services

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 menu Ferramenta.

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.

Page 5: Tutorial Do SQL Server Integration Services

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.

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

Page 6: Tutorial Do SQL Server Integration Services

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 valoresCurrencyKey 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

Page 7: Tutorial Do SQL Server Integration Services

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 ServerBusiness 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).

Page 8: Tutorial Do SQL Server Integration Services

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álogoSugerir 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álogo Editor 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.

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.

Page 9: Tutorial Do SQL Server Integration Services

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: o Altere a propriedade de nome da Coluna 0 para AverageRate. o Altere a propriedade de nome da Coluna 1 para CurrencyID. o Altere a propriedade de nome da Coluna 2 para CurrencyDate. o 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 OutputColumnWidth de 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

Page 10: Tutorial Do SQL Server Integration Services

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 deDimCurrency.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.

Page 11: Tutorial Do SQL Server Integration Services

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ção localhost.AdventureWorksDW está selecionada.

10. Clique em OK.

Page 12: Tutorial Do SQL Server Integration Services

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.

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 LocaleID está definida como Inglês (Estados Unidos).

Page 13: Tutorial Do SQL Server Integration Services

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).

Page 14: Tutorial Do SQL Server Integration Services

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.

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 coluna CurrencyID 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 coluna CurrencyDate 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:

1. Selecione Cache cheio. 2. 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: 1. Na caixa Gerenciador de conexões OLE DB, verifique

se localhost.AdventureWorksDW está exibido. 2. Selecione Usar os resultados de uma consulta SQL e digite ou copie a

seguinte instrução SQL:

select * from (select * from [dbo].[DimCurrency]) as refTable where [refTable].[CurrencyAlternateKey] = 'ARS' OR [refTable].[CurrencyAlternateKey] = 'AUD' OR [refTable].[CurrencyAlternateKey] = 'BRL' OR [refTable].[CurrencyAlternateKey] = 'CAD' OR [refTable].[CurrencyAlternateKey] = 'CNY' OR [refTable].[CurrencyAlternateKey] = 'DEM'

Page 15: Tutorial Do SQL Server Integration Services

OR [refTable].[CurrencyAlternateKey] = 'EUR' OR [refTable].[CurrencyAlternateKey] = 'FRF' OR [refTable].[CurrencyAlternateKey] = 'GBP' OR [refTable].[CurrencyAlternateKey] = 'JPY' OR [refTable].[CurrencyAlternateKey] = 'MXN' OR [refTable].[CurrencyAlternateKey] = 'SAR' OR [refTable].[CurrencyAlternateKey] = 'USD' OR [refTable].[CurrencyAlternateKey] = 'VEB'

7. Na página Colunas, faça as seguintes seleções: 1. No painel Colunas de Entrada Disponíveis, arraste CurrencyID para o

painel Colunas de Pesquisa Disponíveis e solte em CurrencyAlternateKey. 2. 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ção Lookup 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:

1. Na caixa Gerenciador de conexões OLE DB, verifique se localhost.AdventureWorksDW está exibido.

2. Na caixa Usar uma tabela ou visualização, digite ou selecione [dbo]. [DimTime].

8. Na página Colunas, faça as seguintes seleções: 1. No painel Colunas de Entrada Disponíveis, arraste CurrencyDate para o

painel Colunas de Pesquisa Disponíveis e solte em FullDateAlternateKey. 2. 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.

Page 16: Tutorial Do SQL Server Integration Services

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çãoChave 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 para Exemplo 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.

Page 17: Tutorial Do SQL Server Integration Services

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.

Page 18: Tutorial Do SQL Server Integration Services

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.

Page 19: Tutorial Do SQL Server Integration Services

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 exemplo AdventureWorksDW.

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.

Page 20: Tutorial Do SQL Server Integration Services

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.

Page 21: Tutorial Do SQL Server Integration Services

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 guia Fluxo 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 LocaleID está definida como Inglês (Estados Unidos).

Page 22: Tutorial Do SQL Server Integration Services

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.

Page 23: Tutorial Do SQL Server Integration Services

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 selecione Propriedades.

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.

Page 24: Tutorial Do SQL Server Integration Services

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

Page 25: Tutorial Do SQL Server Integration Services

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.

Page 26: Tutorial Do SQL Server Integration Services

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

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

Page 27: Tutorial Do SQL Server Integration Services

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.

Page 28: Tutorial Do SQL Server Integration Services

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

Page 29: Tutorial Do SQL Server Integration Services

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 pacoteUser::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 exemplo:

<?xml version="1.0"?><DTSConfiguration><DTSConfigurationHeading><DTSConfigurationFileInfo 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 propriedadeValue da variável, User::varFolderName, agora contém C:\Novos Dados...

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

Page 30: Tutorial Do SQL Server Integration Services

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 selecione Propriedades.

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.

Page 31: Tutorial Do SQL Server Integration Services

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

Em tempo de execução, o pacote irá obter o valor da propriedade Directory 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.

Page 32: Tutorial Do SQL Server Integration Services

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.

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

Page 33: Tutorial Do SQL Server Integration Services

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

Page 34: Tutorial Do SQL Server Integration Services

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.

Page 35: Tutorial Do SQL Server Integration Services

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ção Extrair 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.

Page 36: Tutorial Do SQL Server Integration Services

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.

Page 37: Tutorial Do SQL Server Integration Services

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.

Page 38: Tutorial Do SQL Server Integration Services

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.

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

Page 39: Tutorial Do SQL Server Integration Services

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.

Page 40: Tutorial Do SQL Server Integration Services

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.

Page 41: Tutorial Do SQL Server Integration Services

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 guia Fluxo 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 ComponenteScript, 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].

Page 42: Tutorial Do SQL Server Integration Services

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.

Page 43: Tutorial Do SQL Server Integration Services

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 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) e Pá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.

Page 44: Tutorial Do SQL Server Integration Services

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.

Page 45: Tutorial Do SQL Server Integration Services

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

Page 46: Tutorial Do SQL Server Integration Services

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. .


Recommended