Você está na página 1de 10

12

12.1 INTRODUO

12

INTEGRATION SERVICES

O SQL Server Integration Services, conjuntamente com o Reporting Services e o Analysis Services, aquilo a que a Microsoft denomina Business Intelligence. O SSIS uma plataforma ETL (Extraction, Transformation and Loading), que inclui ferramentas, caractersticas e funcionalidades que permitem a criao de rotinas, ou aplicaes que permitem transportar dados de ou para outra base de dados ou DBMS.

Uma das mais importantes alteraes, no que respeita ao Business Intelligence, do SQL Server 2000 para o SQL Server 2005, e agora o 2008, foi sem dvida a substituio do Data Transformation Services (DTS) pelo SQL Server Integration Services (SSIS). O Integration Services uma soluo que oferece integrao de dados e solues de fluxo de trabalho, quando o objectivo a transformao, extraco, ou carregamento de dados de vrias fontes para vrios destinos. O SSIS composto por quatro partes principais: o servio Integration Services; o modelo de objectos do Integration Services; o runtime e executveis de runtime; e as tarefas de fluxo de dados que envolvem o motor de fluxo de dados e os componentes de fluxo de dados (Figura 12.1): Servio Integration Services Este componente da arquitectura do Integration Services responsvel pela monitorizao dos pacotes conforme so executados e por gerir o armazenamento desses pacotes. O seu trabalho principal guardar os dados dos fornecedores, e monitorizar que pacotes esto a ser executados e quais os pacotes que so armazenados; Modelo de objectos do Integration Services O modelo de objectos inclui uma interface de programao de aplicaes (API)
FCA Editora de Informtica

496

SQL SERVER 2008 CURSO COMPLETO

administradas para obter acesso s ferramentas, utilitrios de linha de comandos e aplicaes personalizadas do Integration Services;

FIGURA 12.1 Arquitectura do SSIS

Runtime de execuo de servios Guarda o desenho dos pacotes, executa pacotes e administra todas as funcionalidades adicionais dos pacotes, tais como registos, ponto de interrupo, configurao, ligaes e transaces. Os executveis especficos que fazem parte do runtime incluem pacotes, contentores, tarefas e controladores de

FCA Editora de Informtica

INTEGRATION SERVICES

497

eventos que englobam o Integration Services, assim como tarefas personalizadas; Fluxo de dados do Integration Services Dentro de um pacote SSIS, uma tarefa de controlo de dados cria instncias do motor de fluxo de dados. O motor de fluxo de dados responsvel pela movimentao de dados em memria desde a origem at ao destino dos mesmos. Adicionalmente, administra as transformaes que modificam os dados, assim como os destinos que carregam os dados ou colocam os dados disposio de outros processos. So trs os componentes do motor de fluxo de dados: origens de dados, transformaes e destinos. A origem de dados fornece a conectividade para, e extrai dados de, uma grande variedade de fontes, tais como tabelas, views, folhas de clculo, ou mesmo ficheiros XML. O Destino permite a insero, a actualizao e a eliminao de dados de um conjunto similar de destinos. Por fim, a transformao permite modificar os dados de origem antes de serem carregados no destino. Agora, vejamos os restantes componentes da arquitectura: Desenhador SSIS uma ferramenta grfica que permite a criao e a manuteno de pacotes Integration Services. Est disponvel no Business Intelligence Development Studio (BIDS); Motor runtime Guarda o desenho dos pacotes, executa pacotes e admite registos, pontos de interrupo (breakpoints), configurao, ligaes e transaces; Tarefas e outros executveis Os executveis em runtime do Integration Services so os pacotes, os contentores, as tarefas e os controladores de eventos. Os executveis em runtime incluem tambm tarefas personalizadas desenvolvidas pelo utilizador; Assistente para importao e exportao de dados O assistente, ou feiticeiro, para importao e exportao de dados pode copiar dados de e para qualquer origem de dados, tendo, para isso, disponvel um fornecedor de dados .Net Framework administrado ou um fornecedor OLE DB nativo. Este assistente assegura o processo mais simples para criar um pacote do Integration Services e para copiar dados de uma determinada origem para um determinado destino;
FCA Editora de Informtica

498

SQL SERVER 2008 CURSO COMPLETO

Outras ferramentas, assistentes e utilitrios de linha de comandos O Integration Services inclui tambm ferramentas, assistentes e utilitrios de linha de comandos, que permitem a execuo e a administrao de pacotes do Integration Services.

12.2 COMO DESENHAR PACOTES DO SSIS


Quer se esteja a criar um novo pacote do Integration Services, ou a migrar um pacote do DTS para o SSIS, vamos usar uma ferramenta denominada Business Intelligence Development Studio (BIDS). Este ambiente de desenvolvimento permite desenhar pacotes, organiz-los em solues e projectos, depur-los, e gerir fontes e controlar as verses mesmo em projectos multiutilizador. No fundo, o BIDS um atalho para o Visual Studio 2008, e quem j alguma vez usou o Visual Studio 2005 ou 2008 vai encontrar um ambiente de desenvolvimento muito familiar.

12.2.1 O AMBIENTE DE DESENVOLVIMENTO Ao trabalhar com o Visual Studio, trabalhamos no contexto de uma soluo e um projecto. A soluo como uma pasta que pode incluir um ou mais projectos, e cada projecto pode ser de um tipo diferente do outro, isto , podemos ter uma soluo que engloba simultaneamente um projecto de Integration Services, um projecto do Reporting Services, e, porque no tambm, um projecto do Analysis Services. Vamos arrancar com o BIDS e, no menu File escolher New e, de seguida, Project. No tipo de projecto, vamos seleccionar o template Integration Services Project. Vamos escolher um nome para o projecto, por exemplo teste, e premir OK. Como podemos ver na Figura 12.2, em Solution Explorer, um projecto de Integration Services tem quatro pastas: Data Sources, Data Source Views, SSIS Packages e Miscellaneous. Os pacotes criados no projecto sero colocados na pasta SSIS Packages. A janela principal est subdividida em vrias partes. Vamos analisar cada uma delas:

FCA Editora de Informtica

INTEGRATION SERVICES

499

Solution Explorer o organizador do projecto. Nele esto os ficheiros do projecto e origens de dados; Properties Mostra e permite alterar as propriedades do objecto seleccionado no Solution Explorer, como por exemplo alterar o nome do ficheiro do pacote; no entanto, no esquecer de manter a extenso .dtsx;

FIGURA 12.2 O BIDS

Toolbox Mostra iconograficamente os itens que podemos acrescentar ao projecto. Cada cone pode ser arrastado para a rea de desenho. Cada aco acrescenta o cdigo necessrio para criar uma instncia do item no projecto activo. A apresentao dos cones contextualizada, pelo que a sua apresentao varia de acordo com o separador seleccionado no Package Designer; Package Designer a principal rea de trabalho. Tem cinco separadores que so usados para construir e testar o pacote: Control Flow Usado para gerir tarefas, contentores e desenhar o fluxo de controlo num pacote SSIS; Data Flow Usado para definir o fluxo de dados entre a origem e o destino, assim como qualquer transformao aplicada aos dados aquando da transferncia;
FCA Editora de Informtica

500

SQL SERVER 2008 CURSO COMPLETO

Event Handlers Usado para acrescentar tarefas que so executadas somente quando eventos especficos ocorrem, como por exemplo a falha de execuo de uma tarefa; Package Explorer Usado para consultar o pacote numa vista em rvore e aceder s propriedades de um objecto seleccionado; Progress Este separador s fica visvel aps a execuo do pacote. Permite rever o estado dos executveis, a durao dos mesmos e erros ou avisos gerados durante a execuo do pacote.

12.2.1.1 DATA SOURCES

Um ficheiro Data Source, ou de origem de dados, contm as informaes e credenciais de ligao usadas pelo Integration Services para estabelecer a ligao aos dados que queremos usar. Para criar uma nova origem de dados, fazer clique com a tecla direita do rato sobre Data Sources, premir New Data Source e seguir as indicaes do assistente na criao da origem dos dados.

12.2.1.2 DATA SOURCE VIEWS

Data Source View (DSV) um ficheiro que mostra tabelas ou views seleccionadas de uma fonte de dados. Um Data Source simplesmente uma ligao a uma base de dados relacional. Um Data Source View visa estabelecer relaes entre tabelas, executar clculos, etc. Esta opo bastante til quando no temos permisses para alterar a estrutura de dados na origem. Quando usamos o DSV num componente de fluxo de dados, o desenhador de pacotes traduz essas relaes, comandos ou expresses em instrues SQL que sero guardados com o componente.

12.2.1.3 CRIAR UM PACOTE ATRAVS DO BIDS

Vamos criar um pequeno exemplo de um pacote SSIS, em que vamos copiar dados de dois campos de uma tabela e junt-los num nico campo da tabela de destino atravs da execuo de uma stored procedure.

FCA Editora de Informtica

INTEGRATION SERVICES

501

Antes de criar o pacote, vamos criar as tabelas do nosso exemplo e a stored procedure. Para isso vamos executar o cdigo seguinte na base de dados AdventureWorks:
-- CRIA TABELA DE ORIGEM

USE AdventureWorks CREATE TABLE dbo.Nomes ( Nome varchar (50) NOT NULL, Apelido varchar (50) NOT NUll ) GO
-- CRIA TABELA DE DESTINO

CREATE TABLE dbo.NomeComp ( EmpId int IDENTITY(1,1)NOT NULL, EmpNome varchar (150) NOT NULL ) GO
-- CRIA A STORED PROCEDURE QUE VAI --TABELA COPIAR OS DADOS DOS CAMPOS

NOME E APELIDO DA

NOMES,

JUNTANDO-OS NO CAMPO

EMPNOME DA TABELA DESTINO,

PELA ORDEM

APELIDO, NOME

CREATE PROCEDURE [dbo].[InsereNome] @Nome varchar (50), @Apelido varchar (50) WITH EXECUTE AS CALLER AS Insert into NomeComp(EmpNome) values (@Apelido + ', ' + @Nome) GO
-- AGORA VAMOS ACRESCENTAR ALGUNS DADOS TABELA NOMES, PARA VERMOS O FUNCIONAMENTO -- DO EXEMPLO

Insert into Nomes(Nome, Apelido) values ('Alberto', 'Magalhaes') ,('Joaquim', 'Sousa') ,('Manuel', 'Cunha')
FCA Editora de Informtica

502

SQL SERVER 2008 CURSO COMPLETO ,('Isabel', 'Costa') ,('Mariana', 'Oliveira')

GO

Agora vamos criar um pacote que vai ler na tabela Nomes os campos Nome e Apelido, e vai colocar os respectivos dados no campo EmpNome da tabela NomeComp atravs da stored procedure InsereNome. A stored procedure vai ligar os dados das colunas Nome e Apelido, e coloca os valores resultantes na coluna EmpNome da tabela NomeComp. A primeira coisa a fazer criar o projecto que vai conter o pacote, abrir o BIDS, seleccionar File New Project e, na janela New Project, seleccionar Integration Services Project e dar-lhe o nome SSISTeste. O que vamos criar uma tarefa de fluxo de dados com dois componentes: um OLE DB Source e um OLE DB Command. Para comear, vamos seleccionar o separador Data Flow e arrastar da Toolbox o objecto OLE DB Source (Figura 12.3).

FIGURA 12.3 Criao da tarefa de fluxo de dados


FCA Editora de Informtica

INTEGRATION SERVICES

503

Fazendo duplo clique sobre o objecto OLE DB Source, teremos acesso ao ecr OLE DB Source Editor, onde vamos especificar a fonte de dados, assim como o nome da tabela origem que vai ser usada na transformao (Figura 12.4). Para isso, tendo seleccionado Connection Manager, vamos premir o boto New, aceitar as opes apresentadas e premir OK. Em Data access mode manter a opo Table or view e, em Name of the table or view, seleccionar a tabela Nomes; no final premir OK. Agora vamos arrastar da seco Transformations da Toolbox o objecto OLE DB Command e, seleccionando o OLE DB Source, vamos poder estabelecer a ligao com o novo objecto, arrastando at ele a seta verde. Aps estabelecer a ligao, fazer duplo clique sobre o objecto. Na janela Advanced Editor for OLE DB Command preencher o ecr correspondente ao Connection Manager (Figura 12.4).

FIGURA 12.4 Criar a ligao

Seleccionar o separador Component Properties e indicar a stored procedure que vai ser executada em SqlCommand (Figura 12.5)

FIGURA 12.5 Comando do SQL a ser executado


FCA Editora de Informtica

504

SQL SERVER 2008 CURSO COMPLETO

O comando a introduzir o seguinte:


Exec dbo.InsereNome ?,?

Exec o comando de execuo da stored procedure e os pontos de interrogao aps o nome da stored procedure so os parmetros que sero fornecidos durante a execuo, @Apelido e @Nome. No separador Column Mappings, vamos ligar as colunas da tabela de origem e os parmetros da stored procedure (Figura 12.6). No fim premir OK.

FIGURA 12.6 Ligar os campos aos parmetros da stored procedure

Pronto, temos o nosso pacote Integration Services completo. Para executar o pacote premir a tecla F5 e, aps alguns segundos, podemos examinar o resultado. Caso o pacote tenha sido executado com sucesso, teremos um resultado idntico ao da Figura 12.8. Se consultarmos a tabela NomeComp, teremos um resultado como o da Figura 12.7.

FIGURA 12.7 Tabela resultante


FCA Editora de Informtica