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çã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 do Integration Services no Codeplex. |
Definir variáveis de pacote para os pontos de extremidade
Antes de configurar a tarefa Execute SQL para calcular os pontos de extremidade, é preciso definir as variáveis de pacote que irão armazenar os pontos de extremidade.
Para definir variáveis do pacote
No Business Intelligence Development Studio, abra um novo Integration Services.
Na janela Variáveis, criar as seguintes variáveis:
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.
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:
Funções na linguagem de expressão Integration Services que trabalham com valores datetime
Funções em Transact-SQL que trabalham com valores datetime
Funções Date e Time (Transact-SQL).
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
Na guia Fluxo de Controle do Designer SSIS, adicione uma tarefa Execute SQL ao pacote.
Abra o Editor da tarefa Execute SQL e na página Geral do editor, selecione as seguintes opções:
Para Conjunto de Resultados, selecione Linha simples.
Configure uma conexão válida com o banco de dados de origem.
Para SQLSourceType, selecione Entrada direta.
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
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çã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
|
Consulte também