Solucionando problemas do SQL Server 2005 Integration Services Pedro Antonio Galvão Junior Latex São Roque – Analista de Sistemas/DBA MVP – Windows Server System – SQL Server [email protected] Agenda • • • • • O que é Integration Services? Arquitetura. Perguntas Freqüentes. Benefícios do SSIS. Ferramentas SSIS. – Demo. • Overview of SSIS. – Entradas de pacotes filhos em pacotes pais. – Usando Breakpoints. • Log Data para Troubleshooting. – Demo • 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 Arquitetura Standard transforms Custom transforms Data Destination Adapters Data Source Adapters XML Package Sequences Loops Tasks XML Package Event Handlers Wizards DTS Designer Command Line Antes do Integration Services Notificação Dados semi estruturados Mineração Data mining ETL Staging Staging Legado: Arquivos Decodificação ETL Bancos de Dados ETL Limpeza & ETL Staging Warehouse Relatórios Acesso Móvel •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 Com o Integration Services Notificação Mineração Mineração Outras Fontes Fusão Fontes Padrão Limpeza Acesso Móvel Dados semi estruturados Warehouse Legado: Arquivos Banco de Dados Integration Services •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 Relatórios 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 SSIS Installer File set deploy BI Studio Deployment Import Export Wizard packages SSIS packages Dtutil.exe execução View running packages import\export Dtexec.exe Dtexecui.exe SSIS Service Mgt Studio SQL Server Business Intelligence Integração • • Aquisição de dados e integração. Transformação de dados. Análise • • Enriquecimento dos dados, com Lógica de negócios Data mining Report • • Apresentação de dados e distribuição. Acesso de dados para a massa demo SSIS Overview Tour pelo Business Intelligence Studio Connection Manager Segurança no SSIS • Composta de algumas camadas para suportar cenários SQL e arquivos externos. • Os Packages podem ser criptografados ou assinados por certificado digital. • Packages podem ser armazenados em bancos SQL Server e protegidos com SQL roles. Segurança no SSIS SQL DB Roles Roles de leitura e escrita nos pacotes armazenados no banco MSDB Package Protection Level Property Criptografa ou limpa propriedades B sensíveis A Assinatura do pacote Permissões NTFS Controle de acesso a pastas ou nos arquivos dos pacotes • (A) Um pacote pode ser criptografado via Package Protection level ou armazenadp dentro do MSDB, onde o acesso ao pacote é limitado pelos SQL Database roles • (B) Um pacote pode ser criptografado pelo Package Protection level ou o arquivo do pacote pode ser controlado por permissões em pastas e arquivos (NTFS). SSIS Windows Service • Monitora e gerencia pacotes rodando ou armazenados, através do SQL Management Studio • O Serviço é instalado quando instalamos o SSIS • O Serviço não é necessário para design ou execução dos pacotes • Os pacotes armazenados (Stored Packages) é baseado em um arquivo XML. • Podemos customizar conteúdos de arquivos, nomes e localidade • Tem eventos Windows para o serviço, ou seja, se se o serviço inicia, pára, falha ao iniciar, iniciou um pacote , um pacote parou …) Posso criar meu próprio client • Quero criar uma console administrativa em asp.NET. Como posso listar os pacotes? • Podemos fazer isso através do service interface no Application Object. static void Main(string[] args) { Application app = new Application(); PackageInfos pInfos = app.GetDtsServerPackageInfos(@"File System", "yourserver"); foreach (PackageInfo pinfo in pInfos) Console.WriteLine(pinfo.Folder + " " + pinfo.Description); } demo SSIS Overview Mostrar Log Provider Mostrar Log Events Progress Pane/Output Log Data para Troubleshooting • Logging e Error Flow são principais recursos para troubleshooting • Pode ser salvo e carregado • Package IDs Necessitam ser únicos. Se precisar, poderá re-gerar o ID via BIDS ou dtutil.exe – Exemplo: O comando abaixo irá regenerar o ID do pacote para todos os pacotes numa pasta. • for %%f in (C:\_work\SSISPackages\_quick\Notepad\*.dts x) do dtutil.exe /i /File %%f Entradas de pacotes filhos em pacotes pais 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 Breakpoints • Configurar breakpoints na caixa de diálogo Set Breakpoint • Especificar as condições de break • Desabilitar e apagar os breakpoints Conclusão • Devemos utilizar o SSIS! • Ferramentas do SSIS • Utilizando o SQL Server Bussinnes Inteligence • Segurança dos pacotes • Usando Logs e breakpoints para tratar os erros Seu potencial. Nossa inspiração. © 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. MR