Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Środowisko SSIS Integration Runtime w usłudze Azure Data Factory
W przepływie sterowania pakietu Integration Services, który wykonuje inkrementalne obciążenie danych zmian, pierwszym zadaniem jest obliczenie punktów końcowych przedziału zmian. Te punkty końcowe to wartości datetime i będą przechowywane w zmiennych pakietu do późniejszego wykorzystania w pakiecie.
Note
Aby uzyskać opis całego procesu projektowania przepływu sterowania, zobacz Change Data Capture (SSIS).
Skonfiguruj zmienne pakietu dla punktów końcowych
Przed skonfigurowaniem zadania Execute SQL do obliczenia punktów końcowych, należy zdefiniować zmienne pakietowe, które będą je przechowywać.
Aby skonfigurować zmienne pakietu
W SQL Server Data Tools (SSDT) otwórz nowy projekt Integration Services.
W oknie Zmienne stwórz następujące zmienne:
Stwórz zmienną z typem danych datetime , która będzie zawierać punkt początkowy dla przedziału.
W tym przykładzie używa nazwy zmiennej, ExtractStartTime.
Stwórz kolejną zmienną z typem danych datetime , aby utrzymać punkt końcowy dla interwału.
W tym przykładzie używa się nazwy zmiennej, ExtractEndTime.
Jeśli obliczasz punkty końcowe w pakiecie głównym, który wykonuje wiele pakietów podrzędnych, możesz użyć konfiguracji typu Parent Package Variable do przekazania wartości tych zmiennych do każdego pakietu podrzędnego. Aby uzyskać więcej informacji, zobacz Wykonywanie zadania pakietu i Używanie wartości zmiennych i parametrów w pakiecie podrzędnym.
Oblicz punkt początkowy i końcowy dla danych zmian
Po skonfigurowaniu zmiennych pakietowych dla punktów końcowych przedziałów możesz obliczyć rzeczywiste wartości tych punktów końcowych i odwzorować je na odpowiadające im zmienne pakietowe. Ponieważ te punkty końcowe to wartości datetime , będziesz musiał używać funkcji, które mogą obliczać lub pracować z wartościami datetime . Zarówno język wyrażeń Integration Services, jak i Transact-SQL udostępniają funkcje działające na wartościach datetime:
Funkcje w języku wyrażeń Integration Services, które działają na wartościach data/godzina
Funkcje w Transact-SQL, które działają z wartościami datetime
Typy danych i funkcje datowe i czasowe (Transact-SQL).
Zanim użyjesz którejkolwiek z tych funkcji czasu datowego do obliczenia punktów końcowych, musisz ustalić, czy przedział jest stały i występuje według regularnego harmonogramu. Zazwyczaj chcesz regularnie stosować zmiany, które zaszły w tabelach źródłowych, do tabel docelowych. Na przykład możesz chcieć wprowadzać te zmiany na godzinę, dzień lub tydzień.
Gdy już zrozumiesz, czy Twój przedział zmian jest stały, czy bardziej losowy, możesz obliczyć punkty końcowe:
Obliczanie daty i godziny rozpoczęcia pracy. Używasz daty zakończenia i czasu z poprzedniego ładowania jako aktualnej daty i godziny rozpoczęcia. Jeśli używasz stałego przedziału dla obciążeń przyrostowych, możesz obliczyć tę wartość, używając funkcji czasu datowego Transact-SQL lub języka wyrażeń Integration Services. W przeciwnym razie może być konieczne zachowanie punktów końcowych pomiędzy kolejnymi uruchomieniami oraz użycie zadania Execute SQL lub zadania Script w celu wczytania poprzedniego punktu końcowego.
Obliczanie daty i godziny zakończenia. Jeśli używasz stałego przedziału dla obciążeń przyrostowych, oblicz aktualną datę i czas zakończenia jako przesunięcie od daty i godziny rozpoczęcia. Ponownie można obliczyć tę wartość za pomocą funkcji datetime języka Transact-SQL lub języka wyrażeń usług Integration Services.
W poniższej procedurze stosowany jest stały interwał zmian i zakłada się, że pakiet ładowania przyrostowego jest uruchamiany codziennie bez wyjątku. W przeciwnym razie dane zmiany dotyczące pominiętych interwałów zostałyby utracone. Punkt początkowy tego okresu to północ przedwczoraj, czyli między 24 a 48 godzinami temu. Punkt końcowy tego okresu to północ wczoraj, czyli poprzednia noc, między 0 a 24 godzinami temu.
Aby obliczyć punkt początkowy i końcowy dla interwału przechwytu
Na zakładce Control Flow w SSIS Designer dodaj zadanie Execute SQL do pakietu.
Otwórz Edytor zadań SQL Execute i na stronie Ogólne w edytorze wybierz następujące opcje:
Dla ResultSet wybierz pojedynczy wiersz.
Skonfiguruj prawidłowe połączenie z bazą danych źródłową.
W polu SQLSourceType wybierz opcję Wprowadzanie bezpośrednie.
Aby uzyskać SQLStatement, wpisz następujące polecenie SQL:
SELECT DATEADD(dd,0, DATEDIFF(dd,0,GETDATE()-1)) AS ExtractStartTime, DATEADD(dd,0, DATEDIFF(dd,0,GETDATE())) AS ExtractEndTime
Na stronie Result Set w oknie Execute SQL Task Editor zamapuj wynik ExtractStartTime na zmienną pakietową ExtractStartTime, a wynik ExtractEndTime na zmienną pakietową ExtractEndTime.
Note
Gdy używasz wyrażenia do ustawienia wartości zmiennej Integration Services, wyrażenie jest oceniane za każdym razem, gdy wartość tej zmiennej jest dostępna.