Pedro Antonio Galvão JuniorPedro Antonio Galvão Junior
Latex São Roque – Analista de Sistemas/DBALatex São Roque – Analista de Sistemas/DBA
MVP – Windows Server System – SQL ServerMVP – Windows Server System – SQL Server
[email protected]@gmail.com
Solucionando problemas do SQL Server 2005 Integration Services
Agenda
• O que é Integration Services?O que é Integration Services?• Arquitetura.Arquitetura.• Perguntas Freqüentes.Perguntas Freqüentes.• Benefícios do SSIS.Benefícios do SSIS.• Ferramentas SSIS. Ferramentas SSIS.
– Demo.Demo.
• Overview of SSIS.Overview of SSIS.– Entradas de pacotes filhos em pacotes pais.Entradas de pacotes filhos em pacotes pais.– Usando Breakpoints.Usando Breakpoints.
• Log Data para Troubleshooting.Log Data para Troubleshooting.– DemoDemo
• Conclusão.Conclusão.
O que é Integration Services?
• Plataforma para construção das novas soluções de integração de dados
• Sucessor do DTS – Data Transformation Services
• Parte da plataforma de Business Intelligence da Microsoft
Arquitetura
• Separação entre o Work flow e o Data Flow– Data Transformation Runtime (DTR)
• Control Flow = Runtime = Task
– Data Transformation Pipeline (DTP)• Data Flow = Pilepine = Transforms
• Views separadas
Sequences
Loops
ArquiteturaStandard transforms Custom transforms
DataDestinationAdapters
Data SourceAdapters
XMLPackage
XMLPackage
Command Line
Tasks
DTS DesignerWizards
EventHandlers
Antes do Integration Services
Dados semi estruturados
Legado: Arquivos
Bancos de Dados
ETL Warehouse
Relatórios
AcessoMóvel
Data mining
Notificação
•Integração e warehousing requerem operações e estágios separados•Preparação de dados requer diferentes ferramentas•Grandes volumes de dados tornam o processo mais demorado
Decodi-ficação
StagingMineração
ETL Staging
Limpeza &
ETL
Staging
ETL
Com o Integration Services
Dados semi estruturados
Legado: Arquivos
Banco de Dados
Notificação
•Integração e warehousing faz parte da mesma operação•Extração, transformação e carga no mesmo processo (aditáveis)•Notificação pode compor uma tarefa dentro do package•Escalável
Integration Services
Mineração
OutrasFontes
FontesPadrão
Limpeza
Fusão
Mineração
Warehouse
Relatórios
Acesso Móvel
Como o SSIS Funciona
•Podem ser escolhidas vários Data Sources•Possibilidade de transformação utilizando vários formatos diferentes•Dados são roteados obedecendo regras de negócio ou condições de erro•Implementa concorrência•A carga pode ser feita em várias destinos paralelamente
Perguntas Freqüentes
• Por que a execução dos pacotes é tão lenta?• Por que eles utilizam tantos recursos?• Por que eles não utilizam determinados recursos• Por que eles não utilizam mais recursos• Devo usar o banco de dados ou o SSIS? • Como eu carrego dados mais rápido no SSIS? • Tenho mais parâmetros para configurar? • O SSIS é mais rápido que o DTS? • Quais recursos estão disponíveis?
Benefícios do SSIS
• Performance– Data Flow manipula grandes volumes de dados de forma mais
eficiente– Suporte a operações mais complexas
• Facilidade– Vários adaptadores disponíveis reduzem o “hand coding”– Extensibilidade habilita o desenvolvimento dos seus próprios
adaptadores que funcionaram como se fossem nativos– Ambiente visual mais produtivo com suporte a debugging
• Agilidade– A limpeza de dados pode ser feita durante a carga– Facilidade no tratamento de regras de negócio dentro do
workflow
Ferramentas do SSISFerramentas do SSIS
SSIS SSIS packagespackagespackagespackages
BI StudioBI Studio
SSIS ServiceSSIS Service
Mgt StudioMgt Studio
Import Export WizardImport Export Wizard
DeploymentDeployment
Installer File setInstaller File set
Dtexec.exeDtexec.exe
Dtexecui.exeDtexecui.exe
Dtutil.exeDtutil.exe
execuçãoexecuçãoView running packages View running packages import\exportimport\export
deploydeploy
• Aquisição de dados e Aquisição de dados e integração.integração.
• Transformação de Transformação de dados.dados.
• Enriquecimento Enriquecimento dos dados, com dos dados, com Lógica de negóciosLógica de negócios
• Data miningData mining
• Apresentação de Apresentação de dados e dados e distribuição.distribuição.
• Acesso de dados Acesso de dados para a massapara a massa
IntegraçãoIntegração AnáliseAnálise ReportReport
SQL Server Business IntelligenceSQL Server Business Intelligence
SSIS OverviewSSIS Overview
Tour pelo Business Intelligence StudioTour pelo Business Intelligence Studio
Connection Manager Connection Manager
demodemo
Segurança no SSISSegurança no SSIS
• Composta de algumas camadas para suportar Composta de algumas camadas para suportar cenários SQL e arquivos externos.cenários SQL e arquivos externos.
• Os Packages podem ser criptografados ou Os Packages podem ser criptografados ou assinados por certificado digital.assinados por certificado digital.
• Packages podem ser armazenados em bancos Packages podem ser armazenados em bancos SQL Server e protegidos com SQL roles.SQL Server e protegidos com SQL roles.
Segurança no SSISSegurança no SSIS
• (A) Um pacote pode ser criptografado via Package Protection level ou (A) Um pacote pode ser criptografado via Package Protection level ou armazenadp dentro do MSDB, onde o acesso ao pacote é limitado armazenadp dentro do MSDB, onde o acesso ao pacote é limitado pelos SQL Database rolespelos SQL Database roles
Permissões
NTFS
Controle de acesso a Controle de acesso a pastas ou nos pastas ou nos arquivos dos pacotes arquivos dos pacotes
Package Protection
Level Property
Roles de leitura e Roles de leitura e escrita nos pacotes escrita nos pacotes armazenados no armazenados no banco MSDBbanco MSDB
SQL DBSQL DB RolesRoles
AAB
• (B) Um pacote pode ser criptografado pelo Package Protection level ou o (B) Um pacote pode ser criptografado pelo Package Protection level ou o arquivo do pacote pode ser controlado por permissões em pastas e arquivo do pacote pode ser controlado por permissões em pastas e arquivos (NTFS).arquivos (NTFS).
Criptografa ou limpa propriedades
sensíveis
Assinatura do pacote
SSIS Windows ServiceSSIS Windows Service• Monitora e gerencia pacotes rodando ou Monitora e gerencia pacotes rodando ou
armazenados, através do SQL Management Studio armazenados, através do SQL Management Studio • O Serviço é instalado quando instalamos o SSISO Serviço é instalado quando instalamos o SSIS• O Serviço não é necessário para design ou O Serviço não é necessário para design ou
execução dos pacotesexecução dos pacotes• Os pacotes armazenados (Stored Packages) é Os pacotes armazenados (Stored Packages) é
baseado em um arquivo XML. baseado em um arquivo XML. • Podemos customizar conteúdos de arquivos, Podemos customizar conteúdos de arquivos,
nomes e localidadenomes e localidade• Tem eventos Windows para o serviço, ou seja, se Tem eventos Windows para o serviço, ou seja, se
se o serviço inicia, pára, falha ao iniciar, iniciou um se o serviço inicia, pára, falha ao iniciar, iniciou um pacote , um pacote parou …)pacote , um pacote parou …)
Posso criar meu próprio clientPosso criar meu próprio client • Quero criar uma console administrativa em Quero criar uma console administrativa em
asp.NET. Como posso listar os pacotes? asp.NET. Como posso listar os pacotes?
• Podemos fazer isso através do service interface no Podemos fazer isso através do service interface no Application Object. Application Object.
static void Main(string[] args) static void Main(string[] args) { { Application app = new Application(); Application app = new Application(); PackageInfos pInfos = app.GetDtsServerPackageInfos(@"File PackageInfos pInfos = app.GetDtsServerPackageInfos(@"File System", "yourserver"); System", "yourserver"); foreach (PackageInfo pinfo in pInfos) foreach (PackageInfo pinfo in pInfos) Console.WriteLine(pinfo.Folder + " " + pinfo.Description); Console.WriteLine(pinfo.Folder + " " + pinfo.Description); } }
SSIS OverviewSSIS Overview
Mostrar Log ProviderMostrar Log Provider
Mostrar Log EventsMostrar Log Events
Progress Pane/OutputProgress Pane/Output
demodemo
Log Data para TroubleshootingLog Data para Troubleshooting• Logging e Error Flow são principais recursos para Logging e Error Flow são principais recursos para
troubleshootingtroubleshooting• Pode ser salvo e carregadoPode ser salvo e carregado• Package IDs Necessitam ser únicos. Se precisar, Package IDs Necessitam ser únicos. Se precisar,
poderá re-gerar o ID via BIDS ou dtutil.exe poderá re-gerar o ID via BIDS ou dtutil.exe – Exemplo: O comando abaixo irá regenerar o ID Exemplo: O comando abaixo irá regenerar o ID
do pacote para todos os pacotes numa pasta.do pacote para todos os pacotes numa pasta.• for %%f in (C:\_work\SSISPackages\_quick\for %%f in (C:\_work\SSISPackages\_quick\
Notepad\*.dtsx) do dtutil.exe /i /File %%fNotepad\*.dtsx) do dtutil.exe /i /File %%f
Entradas de pacotes filhos em pacotes Entradas de pacotes filhos em pacotes paispais
Event Source SourceID ExecutionID
User:OnPreExecute Child1 12460949-3505-4 57CDDEAE-681B-4
User:OnPostExecute Child1 12460949-3505-4 57CDDEAE-681B-4
User:OnPreExecute Execute Package Task_child1 B2488939-1412-4 57CDDEAE-681B-4
User:OnPostExecute Execute Package Task_child1 B2488939-1412-4 57CDDEAE-681B-4
OnPostExecute Execute Package Task_parent BD73EC3F-ED36-4 57CDDEAE-681B-4
OnPreExecute Execute Package Task_parent BD73EC3F-ED36-4 57CDDEAE-681B-4
OnPostExecute Parent 3EC3B689-C151-4 57CDDEAE-681B-4
PackageEnd Parent 3EC3B689-C151-4 57CDDEAE-681B-4
PackageStart Parent 3EC3B689-C151-4 57CDDEAE-681B-4
OnPreExecute Parent 3EC3B689-C151-4 57CDDEAE-681B-4
User:OnPreExecute Send Mail Task_child1 0B513B33-72A2-4 57CDDEAE-681B-4
User:OnPostExecute Send Mail Task_child1 0B513B33-72A2-4 57CDDEAE-681B-4
OnPreExecute Send Mail Task_parent 4D6E4F65-7A57-4 57CDDEAE-681B-4
OnPostExecute Send Mail Task_parent 4D6E4F65-7A57-4 57CDDEAE-681B-4
Usando BreakpointsUsando Breakpoints
• Configurar breakpoints na caixa de diálogo Configurar breakpoints na caixa de diálogo Set BreakpointSet Breakpoint
• Especificar as condições de breakEspecificar as condições de break
• Desabilitar e apagar os breakpointsDesabilitar e apagar os breakpoints
ConclusãoConclusão
• Devemos utilizar o SSIS!Devemos utilizar o SSIS!
• Ferramentas do SSIS Ferramentas do SSIS
• Utilizando o SQL Server Bussinnes InteligenceUtilizando o SQL Server Bussinnes Inteligence
• Segurança dos pacotesSegurança dos pacotes
• Usando Logs e breakpoints para tratar os errosUsando Logs e breakpoints para tratar os erros
© 2006 Microsoft Corporation. Todos os direitos reservados.© 2006 Microsoft Corporation. Todos os direitos reservados.O propósito desta apresentação é apenas informativa. Microsoft não faz nenhuma garantia expressa ou implícita nesta apresentação.O propósito desta apresentação é apenas informativa. Microsoft não faz nenhuma garantia expressa ou implícita nesta apresentação.
Seu potencial. Nossa inspiração.Seu potencial. Nossa inspiração.MRMR