Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
SSIS Integration Runtime em Azure Data Factory
O Microsoft Integration Services e o SSIS Designer incluem funcionalidades e ferramentas que pode usar para resolver problemas nos fluxos de dados num pacote de Serviços de Integração.
O SSIS Designer fornece visualizadores de dados.
O SSIS Designer e as transformações do Integration Services fornecem contagem de linhas.
O SSIS Designer fornece relatórios de progresso em tempo de execução.
Visualizadores de Dados
Os visualizadores de dados apresentam dados entre dois componentes num fluxo de dados. Os visualizadores de dados podem mostrar dados quando os dados são extraídos de uma fonte de dados e entram primeiro num fluxo de dados, antes e depois de uma transformação atualizar os dados, e antes de os dados serem carregados no seu destino.
Para visualizar os dados, associa-se os visualizadores de dados ao caminho que liga dois componentes do fluxo de dados. A capacidade de visualizar dados entre componentes do fluxo de dados facilita a identificação de valores inesperados de dados, a perceção de como uma transformação altera os valores das colunas e a descoberta da razão pela qual uma transformação falha. Por exemplo, pode verificar que uma consulta numa tabela de referência falha, e para corrigir isto pode querer adicionar uma transformação que forneça dados padrão para colunas em branco.
Um visualizador de dados pode mostrar dados numa grelha. Usando uma grelha, seleciona as colunas a exibir. Os valores das colunas selecionadas são apresentados em formato tabular.
Também pode incluir vários visualizadores de dados num percurso. Pode mostrar os mesmos dados em formatos diferentes — por exemplo, criar uma vista de gráfico e uma vista em grelha dos dados — ou criar visualizadores de dados diferentes para colunas diferentes.
Quando adiciona um visualizador de dados a um caminho, o SSIS Designer adiciona um ícone de visualizador de dados à superfície de design do separador Data Flow , ao lado do caminho. Transformações que podem ter múltiplas saídas, como a transformação de Divisão Condicional, podem incluir um visualizador de dados em cada caminho.
Em tempo de execução, abre-se uma janela do Visualizador de Dados e apresenta a informação especificada pelo formato do visualizador de dados. Por exemplo, um visualizador de dados que utiliza o formato de grelha mostra os dados das colunas selecionadas, o número de linhas de saída passadas para o componente de fluxo de dados e o número de linhas exibidas. A informação é apresentada de buffer a buffer e, dependendo da largura das linhas no fluxo de dados, um buffer pode conter mais ou menos linhas.
Na caixa de diálogo do Visualizador de Dados, pode copiar os dados para a Área de Transferência, limpar todos os dados da tabela, reconfigurar o Visualizador de Dados, retomar o fluxo de dados e desligar ou anexar o Visualizador de Dados.
Para adicionar um visualizador de dados
Contagens de Linhas
O número de linhas que passaram por um caminho é apresentado na área de design do separador Data Flow no SSIS Designer, ao lado do caminho. O número é atualizado periodicamente enquanto os dados avançam pelo caminho.
Também pode adicionar uma transformação de Contagem de Linhas ao fluxo de dados para capturar a contagem final de linhas numa variável. Para obter mais informações, consulte Transformação da contagem de linhas.
Relatórios de Progresso
Quando executa um pacote, o SSIS Designer representa o progresso na superfície de design do separador Data Flow , exibindo cada componente do fluxo de dados numa cor que indica o estado. Quando cada componente começa a desempenhar o seu trabalho, muda de sem cor para amarelo, e quando termina com sucesso, muda para verde. Uma cor vermelha indica que o componente falhou.
A tabela seguinte descreve a codificação por cores.
| Cor | Description |
|---|---|
| Sem cor | À espera de ser chamado pelo motor de fluxo de dados. |
| Yellow | Realizar uma transformação, extrair dados ou carregar dados. |
| Green | Correu com sucesso. |
| vermelho | Correu com erros. |
Análise do Fluxo de Dados
Pode usar a vista da base de dados catalog.execution_data_statistics, SSISDB para analisar o fluxo de dados dos pacotes. Esta vista mostra uma linha cada vez que um componente de fluxo de dados envia dados para um componente a jusante. A informação pode ser usada para obter uma compreensão mais profunda das linhas enviadas a cada componente.
Observação
O nível de registo deve ser definido como Verbose para captar a informação com a vista catalog.execution_data_statistics.
O exemplo seguinte mostra o número de linhas enviadas entre componentes de um pacote.
use SSISDB
select package_name, task_name, source_component_name, destination_component_name, rows_sent
from catalog.execution_data_statistics
where execution_id = 132
order by source_component_name, destination_component_name
O exemplo seguinte calcula o número de linhas por milissegundo enviadas por cada componente para uma execução específica. Os valores calculados são:
total_rows - a soma de todas as linhas enviadas pelo componente
wall_clock_time_ms - o tempo total de execução decorrido, em milissegundos, para cada componente
num_rows_per_millisecond - o número de linhas por milissegundo enviadas por cada componente
A cláusula HAVING é usada para evitar um erro de divisão por zero nos cálculos.
use SSISDB
select source_component_name, destination_component_name,
sum(rows_sent) as total_rows,
DATEDIFF(ms,min(created_time),max(created_time)) as wall_clock_time_ms,
((0.0+sum(rows_sent)) / (datediff(ms,min(created_time),max(created_time)))) as [num_rows_per_millisecond]
from [catalog].[execution_data_statistics]
where execution_id = 132
group by source_component_name, destination_component_name
having (datediff(ms,min(created_time),max(created_time))) > 0
order by source_component_name desc
Configurar uma saída de erro num componente de fluxo de dados
Muitos componentes de fluxo de dados suportam saídas de erro e, dependendo do componente, o SSIS Designer fornece diferentes formas de configurar uma saída de erro. Para além de configurar uma saída de erro, também pode configurar as colunas de uma saída de erro. Isto inclui configurar as colunas ErrorCode e ErrorColumn que são adicionadas pelo componente.
Configuração de uma Saída de Erro
Para configurar uma saída de erro, tens duas opções:
Use a caixa de diálogo Configurar Erro de Saída . Pode usar esta caixa de diálogo para configurar uma saída de erro em qualquer componente de fluxo de dados que suporte uma saída de erro.
Usa a caixa de diálogo do editor para o componente. Alguns componentes permitem configurar as saídas de erro diretamente a partir da caixa de diálogo do editor. No entanto, não é possível configurar as saídas de erro a partir da caixa de diálogo do editor para a fonte de dados ADO NET, a transformação Import Column, a transformação OLE DB Command ou o destino do SQL Server Compact.
Os procedimentos seguintes descrevem como usar estas caixas de diálogo para configurar as saídas de erro.
Para configurar uma saída de erro usando a caixa de diálogo Configurar Saída de Erro
No SSDT (SQL Server Data Tools), abra o projeto Integration Services que contém o pacote desejado.
No Gerenciador de Soluções, clique duas vezes no pacote para abri-lo.
No SSIS Designer, clique na aba Fluxo de Dados.
Arraste a saída do erro, representada pela seta vermelha, do componente que é a fonte dos erros para outro componente no fluxo de dados.
Na caixa de diálogo Configurar Saída de Erro, selecione uma ação nas colunas Erro e Truncamento para cada coluna na entrada do componente.
Para salvar o pacote atualizado, no menu Arquivo , clique em Salvar Itens Selecionados.
Para adicionar uma saída de erro usando a caixa de diálogo do editor para o componente
No SSDT (SQL Server Data Tools), abra o projeto Integration Services que contém o pacote desejado.
No Gerenciador de Soluções, clique duas vezes no pacote para abri-lo.
No SSIS Designer, clique no separador Data Flow.
Clique duas vezes nos componentes do fluxo de dados onde pretende configurar uma saída de erro e, dependendo do componente, faça um dos seguintes passos:
Clique em Configurar Saída de Erro.
Clique em Erro de Saída.
Defina a opção Erro para cada coluna.
Defina a opção Truncamento para cada coluna.
Clique em OK.
Para salvar o pacote atualizado, no menu Arquivo , clique em Salvar Itens Selecionados.
Configuração das Colunas de Saída de Erro
Para configurar as colunas de saída de erro, tens de usar o separador Propriedades de Entrada e Saída da caixa de diálogo do Editor Avançado .
Para configurar as colunas de saída de erros
No SSDT (SQL Server Data Tools), abra o projeto Integration Services que contém o pacote desejado.
No Gerenciador de Soluções, clique duas vezes no pacote para abri-lo.
No SSIS Designer, clique no separador Data Flow.
Clique com o botão direito no componente cujas colunas de erro quer configurar e clique em Mostrar Editor Avançado.
Clique no separador Propriedades de Entrada e Saída e expanda <o nome> do componente Erro Saída e depois expanda Colunas de Saída.
Clique numa coluna e atualize as suas propriedades.
Observação
A lista de colunas inclui as colunas na entrada do componente, as colunas ErrorCode e ErrorColumn adicionadas por saídas de erro anteriores, e as colunas ErrorCode e ErrorColumn adicionadas por este componente.
Clica OK.
Para salvar o pacote atualizado, no menu Arquivo , clique em Salvar Itens Selecionados.
Adicionar um Visualizador de Dados a um Fluxo de Dados
Este tópico descreve como adicionar e configurar um visualizador de dados num fluxo de dados. Um visualizador de dados apresenta dados que se movem entre dois componentes do fluxo de dados. Por exemplo, um visualizador de dados pode mostrar os dados extraídos de uma fonte de dados antes de uma transformação no fluxo de dados modificar os dados.
Um caminho liga componentes num fluxo de dados ligando a saída de um componente do fluxo de dados à entrada de outro componente.
Antes de poder adicionar visualizadores de dados a um pacote, este deve incluir uma tarefa de Fluxo de Dados e pelo menos dois componentes de fluxo de dados que estejam ligados.
Adicione um visualizador de dados a uma saída de erro para ver a descrição do erro e o nome da coluna onde o erro ocorreu. Por defeito, a saída de erro inclui apenas identificadores numéricos para o erro e para a coluna.
Para adicionar um visualizador de dados a um fluxo de dados
No SSDT (SQL Server Data Tools), abra o projeto Integration Services que contém o pacote desejado.
No Gerenciador de Soluções, clique duas vezes no pacote para abri-lo.
Clique no separador Control Flow , se ainda não estiver ativo.
Clique na tarefa Fluxo de Dados ao qual quer anexar um visualizador de dados e depois clique no separador Fluxo de Dados.
Clique com o botão direito num caminho entre dois componentes do fluxo de dados e clique em Editar.
Na página Geral , pode visualizar e editar propriedades do caminho. Por exemplo, pode selecionar a anotação que aparece ao lado do caminho a partir da lista suspensa PathAnnotation.
Na página de Metadados , pode visualizar os metadados das colunas e copiar os metadados para a Área de Transferências.
Na página do Visualizador de Dados , clique em Ativar visualizador de dados.
Na área de Colunas para exibir, selecione as colunas que quer mostrar no visualizador de dados. Por defeito, todas as colunas disponíveis são selecionadas e listadas na lista de Colunas Exibidas . Mova as colunas que não quer usar para a lista de Colunas Não Usadas , selecionando-as e depois clicando na seta da esquerda.
Observação
Na grelha, os valores que representam os tipos de dados DT_DATE, DT_DBTIME2, DT_FILETIME, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 e DT_DBTIMESTAMPOFFSET aparecem como cadeias formatadas pela ISO 8601 e um separador de espaço substitui o separador T . Os valores que representam os tipos de dados DT_DATE e DT_FILETIME incluem sete dígitos para frações de segundo. Como o DT_FILETIME tipo de dado armazena apenas três dígitos de frações de segundo, a grelha mostra zeros para os quatro dígitos restantes. Os valores que representam o DT_DBTIMESTAMP tipo de dado incluem três dígitos para frações de segundo. Para valores que representam os tipos de dados DT_DBTIME2, DT_DBTIMESTAMP2 e DT_DBTIMESTAMPOFFSET, o número de dígitos durante frações de segundo corresponde à escala especificada para o tipo de dado da coluna. Para mais informações sobre os formatos ISO 8601, consulte Formatos de Data e Hora. Para mais informações sobre tipos de dados, consulte Tipos de Dados de Serviços de Integração.
Clique em OK.
Torneiras de Fluxo de Dados
Pode adicionar um ponto de escuta de dados no percurso de fluxo de dados de um pacote durante a execução e redirecionar a saída do ponto de escuta de dados para um ficheiro externo. Para utilizar esta funcionalidade, deve implementar o seu projeto SSIS usando o modelo de implementação do projeto num servidor SSIS. Após implantar o pacote no servidor, precisa executar scripts T-SQL na base de dados SSISDB para adicionar pontos de dados antes de executar o pacote. Aqui está um exemplo de cenário:
Crie uma instância de execução de um pacote utilizando o procedimento armazenado catalog.create_execution (Base de Dados SSISDB).
Adicione uma captação de dados usando o procedimento armazenado catalog.add_data_tap ou catalog.add_data_tap_by_guid.
Inicie a instância de execução do pacote usando o catalog.start_execution (Base de Dados SSISDB).
Aqui está um script SQL de exemplo que executa os passos descritos no cenário acima:
Declare @execid bigint
EXEC [SSISDB].[catalog].[create_execution] @folder_name=N'ETL Folder', @project_name=N'ETL Project', @package_name=N'Package.dtsx', @execution_id=@execid OUTPUT
EXEC [SSISDB].[catalog].add_data_tap @execution_id = @execid, @task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt'
EXEC [SSISDB].[catalog].[start_execution] @execid
O nome da pasta, nome do projeto e parâmetros do nome do pacote do procedimento create_execution armazenado correspondem aos nomes de pasta, projeto e pacote no catálogo dos Serviços de Integração. Pode obter os nomes das pastas, projetos e pacotes para usar na chamada create_execution a partir do SQL Server Management Studio, como mostrado na imagem seguinte. Se não vir o seu projeto SSIS aqui, pode ser que ainda não tenha implementado o projeto para o servidor SSIS. Clique com o botão direito no projeto SSIS no Visual Studio e clique em Deploy para implantar o projeto no servidor SSIS esperado.
Em vez de escrever as instruções SQL, pode gerar o script de execução do pacote executando os seguintes passos:
Clique com o botão direito em Package.dtsx e clique em Executar.
Clique no botão da barra de ferramentas Script para gerar o script.
Agora, adicione a declaração add_data_tap antes da chamada start_execution.
O parâmetro "task_package_path" do procedimento armazenado add_data_tap corresponde à propriedade PackagePath da tarefa de fluxo de dados do Visual Studio. No Visual Studio, clique com o botão direito na Tarefa de Fluxo de Dados e clique em Propriedades para abrir a janela de Propriedades. Note o valor da propriedade PackagePath para usá-lo como valor do parâmetro task_package_path na chamada de procedimento armazenado add_data_tap.
O parâmetro dataflow_path_id_string do procedimento armazenado add_data_tap corresponde à propriedade IdentificationString do caminho de fluxo de dados ao qual pretende adicionar um ponto de dados. Para obter a dataflow_path_id_string, clique no caminho do fluxo de dados (seta entre tarefas no fluxo de dados) e note o valor da propriedade IdentificationString na janela Properties.
Quando executas o script, o ficheiro de saída é armazenado em <Program Files>\Microsoft SQL Server\110\DTS\DataDumps. Se um ficheiro com esse nome já existir, é criado um novo ficheiro com um sufixo (por exemplo: output[1].txt).
Como mencionado anteriormente, pode também utilizar o procedimento armazenado catalog.add_data_tap_by_guid em vez de utilizar o procedimento armazenado add_data_tap. Este procedimento armazenado assume o ID da tarefa de fluxo de dados como parâmetro em vez de task_package_path. Podes obter o ID da tarefa de fluxo de dados a partir da janela de propriedades no Visual Studio.
Remoção de um ponto de extração de dados
Pode remover uma captação de dados antes de iniciar a execução usando o procedimento catalog.remove_data_tap armazenado. Este procedimento armazenado recebe o ID do "data tap" como parâmetro, o qual pode ser obtido como resultado do procedimento armazenado add_data_tap.
DECLARE @tap_id bigint
EXEC [SSISDB].[catalog].add_data_tap @execution_id = @execid, @task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt' @data_tap_id=@tap_id OUTPUT
EXEC [SSISDB].[catalog].remove_data_tap @tap_id
Listagem de todas as captações de dados
Também pode listar todas as taps de dados usando a vista catalog.execution_data_taps. O exemplo seguinte extrai pontos de captação de dados para uma instância de execução de especificação (ID: 54).
select * from [SSISDB].[catalog].execution_data_taps where execution_id=@execid
Considerações sobre o desempenho
Ativar um nível de registo detalhado e adicionar data taps aumenta as operações de I/O realizadas pela sua solução de integração de dados. Por isso, recomendamos que adicione apenas captações de dados para fins de resolução de problemas
Vídeos
Este vídeo no TechNet demonstra como adicionar/usar pontos de coleta de dados no catálogo do SQL Server 2012 SSISDB que ajudam a depurar pacotes programaticamente e a capturar resultados parciais em tempo de execução. Também discute como listar/remover estas escutas de dados e as melhores práticas para o uso de escutas de dados em pacotes SSIS.