Compartilhar via


Especificando um Intervalo de Dados de Alteração

No fluxo de controle de um pacote Integration Services que realiza uma carga incremental de dados de alteração, a primeira tarefa serve para calcular os pontos de extremidade do intervalo de alteração. Estes pontos de extremidade são valores datetime e são armazenados em variáveis do pacote para uso posterior.

ObservaçãoObservação

Para obter uma descrição do processo geral de criação do fluxo de controle, consulte Melhorando cargas incrementais com Change Data Capture.

Para ver exemplos completos que demonstram o uso do Change Data Capture em pacotes, consulte os exemplos Change Data Capture for Specified Interval Package e Change Data Capture since Last Request Package em Codeplex.

Definir Variáveis do Pacote para os Pontos de Extremidade

Antes de configurar a tarefa Execute SQL para calcular os pontos de extremidade, as variáveis do pacote que irão armazenar os pontos de extremidade devem ter sido definidas.

Para definir variáveis do pacote

  1. No Business Intelligence Development Studio, abra um novo Integration Services.

  2. Na janela Variáveis, criar as seguintes variáveis:

    1. Crie uma variável com o tipo de dados datetime para guardar o ponto inicial para o intervalo.

      Este exemplo usa o nome de variável, ExtractStartTime.

    2. Crie outra variável com o tipo de dados datetime para guardar o ponto final para o intervalo.

      Este exemplo usa o nome de variável, ExtractEndTime.

Ao se calcular os pontos de extremidade em um pacote mestre que executa vários pacotes filho, é possível usar as configurações de Variável de Pacote Pai para passar os valores destas variáveis para cada pacote filho. Para obter mais informações, consulte Tarefa Executar Pacote e Como usar os valores de variáveis pai em um pacote filho.

Calcule um Ponto Inicial e um Ponto Final para Dados de Alteração

Depois de definir as variáveis do pacote para os pontos de extremidade do intervalo, é possível calcular os valores reais para esses pontos de extremidade e mapear esses valores para as variáveis correspondentes. Devido a esses pontos de extremidade serem valores datetime, deve-se usar funções que podem calcular ou trabalhar com valores datetime. A linguagem de expressão Integration Services e a Transact-SQL têm funções que trabalham com valores datetime:

Antes de usar uma destas funções datetime para calcular os pontos de extremidade, deve-se determinar se o intervalo é fixo e se ocorre regularmente. Normalmente, você quer aplicar alterações que aconteceram em tabelas fonte para tabelas destino em um período regular. Por exemplo, você poderia querer aplicar essas alterações de hora em hora, diariamente, ou semanalmente.

Depois que você entender se seu intervalo de alteração é fixo ou é mais aleatório, você pode calcular os pontos de extremidade:

  • Calculando a data e hora inicial. Usar a data e hora final da carga anterior como a data e hora inicial atual. Se você usar um intervalo fixo para cargas incrementais, calcule este valor usando as funções datetime da Transact-SQL ou da linguagem de expressão Integration Services. Caso contrário, talvez seja preciso manter os pontos de extremidade entre execuções e usar uma tarefa Execute SQL ou uma tarefa Script para carregar o ponto de extremidade anterior.

  • Calculando a data e hora final. Se você usar um intervalo fixo para cargas incrementais, calcule a data e hora final atual como um deslocamento da data e hora inicial. Novamente, é possível calcular este valor usando as funções datetime da Transact-SQL ou da linguagem de expressão Integration Services.

No procedimento seguinte, o intervalo de alteração usa um intervalo fixo e assume que o pacote de carga incremental é executado diariamente sem exceção. Caso contrário, os dados de alteração para intervalos ausentes seriam perdidos. O ponto inicial para o intervalo é meia-noite de anteontem, ou seja, entre 24 e 48 horas atrás. O ponto final para o intervalo é meia-noite de ontem, ou seja, a noite anterior, entre 0 e 24 horas atrás.

Para calcular o ponto inicial e final para o intervalo de captura

  1. Na guia Fluxo de Controle do Designer SSIS, adicione uma tarefa Execute SQL ao pacote.

  2. Abra o Editor da tarefa Execute SQL e na página Geral do editor, selecione as seguintes opções:

    1. Para Conjunto_de_Resultados, selecione Linha simples.

    2. Configure uma conexão válida com o banco de dados de origem.

    3. Para SQLSourceType, selecione Entrada direta.

    4. Para SQLStatement, digite a seguinte instrução SQL:

      SELECT DATEADD(dd,0, DATEDIFF(dd,0,GETDATE()-1)) AS ExtractStartTime,
        DATEADD(dd,0, DATEDIFF(dd,0,GETDATE())) AS ExtractEndTime
      
  3. Na página Conjunto de Resultados do Editor da tarefa Executar SQL, mapeie o resultado de ExtractStartTime para a variável do pacote ExtractStartTime e o resultado de ExtractEndTime para a variável do pacote ExtractEndTime.

    ObservaçãoObservação

    Quando você utiliza uma expressão para definir o valor de uma variável Integration Services, a expressão é avaliada toda vez que o valor da variável é acessada.

Próxima Etapa

Após você calcular o ponto inicial e final para um intervalo de alterações, a próxima etapa é determinar se os dados de alteração estão prontos.

Próximo tópico:Determinando se os Dados de Alteração estão prontos

Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os mais recentes downloads, artigos, exemplos e vídeos da Microsoft, bem como soluções selecionadas da comunidade, visite a página Integration Services no MSDN ou TechNet:

Para receber uma notificação automática das atualizações, assine os feeds RSS disponíveis na página.