Tworzenie obiektów niestandardowych dla usług Integration Services

Dotyczy:SQL Server Środowisko SSIS Integration Runtime w usłudze Azure Data Factory

Gdy obiekty przepływu sterowania i przepływu danych zawarte w SQL Server Integration Services nie spełniają całkowicie Twoich wymagań, możesz samodzielnie tworzyć wiele typów niestandardowych obiektów, w tym:

  • Zadania niestandardowe.

  • Własne menedżery połączeń. Połącz się z zewnętrznymi źródłami danych, które obecnie nie są obsługiwane.

  • Niestandardowe dostawcy logów. Loguj zdarzenia pakietów w formatach, które obecnie nie są obsługiwane.

  • Niestandardowe enumeratory. Wspierać iterację nad zestawem obiektów lub formatów wartości, które obecnie nie są obsługiwane.

  • Niestandardowe komponenty przepływu danych. Można je skonfigurować jako źródła, transformacje lub miejsca docelowe.

Model obiektowy Integration Services ułatwia ten niestandardowy rozwój z klasami bazowymi, które zapewniają spójne i niezawodne ramy dla Twojej niestandardowej implementacji.

Jeśli nie musisz ponownie używać niestandardowej funkcjonalności w wielu pakietach, zadanie Script i komponent Script dają pełną moc zarządzanego języka programowania przy znacznie mniejszej ilości kodu infrastrukturalnego do napisania. Więcej informacji można znaleźć w artykule Porównanie rozwiązań skryptowych i niestandardowych obiektów.

Kroki w tworzeniu niestandardowego obiektu dla usług integracyjnych

Gdy tworzysz niestandardowy obiekt do użycia w Integration Services, tworzysz Bibliotekę Klas (DLL), która będzie ładowana w czasie projektowania i w czasie działania przez SSIS Designer oraz przez runtime Integration Services. Najważniejsze metody, które musisz zaimplementować, to nie metody wywoływane z własnego kodu, lecz te, które środowisko uruchomieniowe wywołuje w odpowiednich momentach, aby zainicjować i zweryfikować komponent oraz wywołać jego funkcjonalność.

Oto kroki, które wykonujesz, tworząc niestandardowy obiekt:

  1. Stwórz nowy projekt typu Class Library w preferowanym przez siebie języku zarządzanego programowania.

  2. Dziedziczenie z odpowiedniej klasy bazowej, jak pokazano w poniższej tabeli.

  3. Przypisz odpowiedni atrybut do nowej klasy, jak pokazano w poniższej tabeli.

  4. Nadpisuj metody klasy bazowej w razie potrzeby i pisz kod dla niestandardowej funkcjonalności obiektu.

  5. Opcjonalnie zbuduj niestandardowy interfejs użytkownika dla swojego komponentu. Dla ułatwienia wdrożenia możesz chcieć rozwijać interfejs użytkownika jako osobny projekt w ramach tego samego rozwiązania i budować go jako osobny asemble.

  6. Opcjonalnie wyświetl link do przykładów i zawartości pomocy dla niestandardowego obiektu w skrzynce narzędzi SSIS.

  7. Buduj, wdrażaj i debuguj swój nowy niestandardowy obiekt zgodnie z opisem w sekcji Budowanie, wdrażanie i debugowanie niestandardowych obiektów.

Klasy bazowe, atrybuty i ważne metody

Ta tabela zapewnia łatwe odniesienie do najważniejszych elementów modelu obiektowego Integration Services dla każdego typu niestandardowego obiektu, który możesz opracować.

Obiekt niestandardowy Klasa bazowa Attribute Ważne metody
Zadanie Task DtsTaskAttribute Execute
Menedżer połączeń ConnectionManagerBase DtsConnectionAttribute AcquireConnection, ReleaseConnection
Dostawca usług dziennika LogProviderBase DtsLogProviderAttribute OpenLog, Log, CloseLog
Wylicznik ForEachEnumerator DtsForEachEnumeratorAttribute GetEnumerator
Komponent przepływu danych PipelineComponent DtsPipelineComponentAttribute ProvideComponentProperties, PrimeOutput, ProcessInput

Aby wyświetlić link w skrzynce narzędzi SSIS do przykładów i zawartości pomocy dla niestandardowego obiektu napisanego w kodzie zarządzanym, użyj następujących właściwości.

Aby wyświetlić link do przykładów i zawartości Help dla niestandardowego obiektu napisanego w natywnym kodzie, dodaj wpisy w pliku Registry Script (.rgs) dla SamplesTag, HelpKeyword i HelpCollection. Poniżej przedstawiono przykład.

val HelpKeyword = s 'sql11.dts.designer.executepackagetask.F1'

val SamplesTag = s 'ExecutePackageTask'

Udostępnianie niestandardowego interfejsu użytkownika

Aby umożliwić użytkownikom niestandardowego obiektu konfigurację jego właściwości, być może będziesz musiał opracować także własny interfejs użytkownika. W przypadkach, gdy niestandardowy interfejs użytkownika nie jest ściśle wymagany, możesz zdecydować się na stworzenie takiego, który zapewni bardziej przyjazny dla użytkownika interfejs niż domyślny edytor.

W projekcie lub asemblerze z niestandardowym interfejsem użytkownika zazwyczaj masz dwie klasy -a klasę, która implementuje interfejs Integration Services dla interfejsów użytkownika dla konkretnego typu niestandardowego obiektu, oraz Windows formę, którą wyświetla do zbierania informacji od użytkownika. Interfejsy, które implementujesz, mają tylko kilka metod, a stworzenie niestandardowego interfejsu użytkownika nie jest trudne.

Note

Wielu dostawców logów Integration Services posiada niestandardowy interfejs użytkownika, który implementuje IDtsLogProviderUI i zastępuje pole tekstowe Konfiguracja filtrowaną listą rozwijanych dostępnych menedżerów połączeń. Jednak niestandardowe interfejsy użytkownika dla niestandardowych dostawców logów nie są zaimplementowane w tej wersji Integration Services. Określenie wartości UITypeName własności nie DtsLogProviderAttribute ma żadnego efektu.

Poniższa tabela daje łatwy odnośnik do interfejsów, które musisz zaimplementować, tworząc niestandardowy interfejs użytkownika dla każdego typu niestandardowego obiektu. Wyjaśnia również, co użytkownik widzi, jeśli zdecydujesz się nie tworzyć niestandardowego interfejsu użytkownika dla swojego obiektu lub jeśli nie połączysz obiektu z jego interfejsem użytkownika, używając właściwości UITypeName w atrybucie obiektu. Chociaż potężny Edytor zaawansowany może być satysfakcjonujący dla komponentu przepływu danych, okno Właściwości jest mniej przyjaznym rozwiązaniem dla menedżerów zadań i połączeń, a niestandardowy enumerator ForEach nie może być skonfigurowany bez niestandardowego formularza.

Obiekt niestandardowy Klasa bazowa interfejsu użytkownika Domyślne zachowanie edycji, jeśli nie ma niestandardowego interfejsu użytkownika
Zadanie IDtsTaskUI okno Właściwości only
Menedżer połączeń IDtsConnectionManagerUI okno Właściwości only
Dostawca usług dziennika IDtsLogProviderUI

(Nie zaimplementowane w Integration Services)
Pole tekstowe w kolumnie Konfiguracja
Wylicznik ForEachEnumeratorUI okno Właściwości only. Obszar konfiguracji enumeratora w edytorze jest pusty.
Komponent przepływu danych IDtsComponentUI Edytor zaawansowany