Especificar um intervalo de dados de alteração
Aplica-se a: SQL Server SSIS Integration Runtime no Azure Data Factory
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, confira Captura de dados de alterações (SSIS);.
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 as variáveis do pacote
No SQL Server Data Tools (SSDT), 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 Usar os valores de variáveis e parâmetros 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 o Transact-SQL têm funções que funcionam com valores datetime :
Funções na linguagem de expressão Integration Services que funcionam com valores datetime
Funções no Transact-SQL que funcionam com valores datetime
Tipos de Dados e Funções de Data e Hora (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, será possível calcular este valor usando as funções datetime do 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 do 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 SQLe 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 fonte.
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ê usa uma expressão para definir o valor de uma variável Integration Services, a expressão é avaliada sempre que o valor da variável é acessado.
Próxima etapa
Depois de 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: Determinar se os dados da alteração estão prontos
Confira também
Usar variáveis em pacotes
Expressões do SSIS (Integration Services)
Tarefa Executar SQL
Tarefa Script