Udostępnij za pośrednictwem


Tworzenie synchroniczne transformacja składnika skryptów

Składnik transformacja jest używany w przepływ danych Integration Services pakiet do modyfikowania i analizowania danych, gdy przechodzi od urządzenie źródłowe do obiekt docelowy. transformacja z wyjść synchronicznie przetwarza każdy wiersz danych wejściowych przechodząca składnika.transformacja z asynchronicznego wyjść czeka, aż po odebraniu wszystkich wierszy danych wejściowych do zakończenia ich przetwarzania.W tym temacie omówiono synchroniczne transformacja.Aby uzyskać informacje na temat przekształceń asynchronicznych zobacz Tworzenie transformacja asynchroniczny przy użyciu składnika skryptów. Aby uzyskać więcej informacji na temat różnicy między składnikami synchronicznych i asynchronicznych zobacz Opis przekształcenia synchroniczne i asynchroniczne.

Aby zapoznać się z omówieniem składnika skryptów zobacz Rozszerzanie przepływ danych w składniku skryptów.

Składnik skryptów i kodu infrastruktury, który generuje można znacznie uprościć proces tworzenia niestandardowego składnik przepływ danych.Niemniej jednak aby zrozumieć, w jaki sposób działa składnik skryptów, może się okazać, że przydatne do odczytania kroki, które należy wykonać w tworzeniu składnika przepływ danych niestandardowych w sekcji na Rozwijanie niestandardowy składnik przepływ danych, a zwłaszcza Rozwijanie składnik transformacja niestandardowe z synchroniczne wyjścia.

Wprowadzenie do korzystania ze składnikiem transformacja synchroniczne

Po dodaniu składnika skryptów do okienka przepływ danych SSIS Projektant, Wybierz typ składnika skryptów , okno dialogowe zostanie otwarty i wyświetli monit o wybranie typu urządzenie źródłowe, obiekt docelowy lub transformacja składnika.W tym oknie dialogowym Wybierz transformacja.

Konfigurowanie składnika synchroniczne transformacja w trybie projektowania metadane

Po wybraniu opcji tworzenia składnika transformacja należy skonfigurować składnika za pomocą Skrypt transformacja edytora.Aby uzyskać więcej informacji zobaczConfiguring the Script Component in the Script Component Editor.

Aby zestaw język skryptów dla składników skryptów można zestaw ScriptLanguage Właściwość Skrypt stronaSkrypt transformacja edytora.

Uwaga

Aby ustawić domyślny język dla składnika skrypt skryptowy, za pomocą Język wykonywanie wykonywanie skryptów Opcja Ogólne stronaOpcje -okno dialogowe.Aby uzyskać więcej informacji zobaczStrona ogólnych.

Składnik transformacja przepływ danych ma jedno wejście i obsługuje jeden lub więcej wyników.Konfigurowanie danych wejściowych i wyjściowych dla składnika jest jednym z kroków, które należy wykonać w trybie projektowania metadane za pomocą Skrypt transformacja edytora, zanim napisać skrypt niestandardowy.

Konfigurowanie kolumn wprowadzania

Składnik transformacja ma jedno wejście.

Na Kolumny danych wejściowych stronaSkrypt transformacja edytorze na liście kolumna pokazuje dostępne kolumny z danych wyjściowych "pod prąd" składnik przepływ danych.Zaznacz kolumny, którą chcesz przekształcić lub przechodzić przez.Oznacz wszystkie kolumny, które chcesz przekształcić w miejscu, w trybie odczytu/zapisu.

Aby uzyskać więcej informacji na temat Kolumny danych wejściowych stronaSkrypt transformacja edytora, see Skrypt transformacja Edytor (strona wprowadzania kolumny).

Konfigurowanie wejściowych, wyjść i kolumny wyjściowe

Składnik transformacja obsługuje jeden lub więcej wyników.

Na Wejść i wyjść stronaSkrypt transformacja edytora, można wyświetlić że pojedyncze danych wyjściowych został utworzony, ale dane wyjściowe nie ma kolumn.Na tej stronie ten edytor może konieczne jest, należy skonfigurować następujące elementy.

  • Należy utworzyć jeden lub więcej dodatkowych wyjść, na przykład danych wyjściowych błąd symulowane wiersze zawierające wartości nieoczekiwane.Użycie Dodawanie danych wyjściowych and Usuwanie danych wyjściowych przyciski do zarządzania wyjść z składnik synchroniczne transformacja.Wszystkie wiersze danych wejściowych są kierowane do wszystkie dostępne dane wyjściowe, chyba że wskazują zamierzają przekierować dane wyjściowe jednego lub drugiego każdego wiersza.Wskazuje zamierzają przekierować wierszy, określając wartość niezerową liczbą całkowitą ExclusionGroup Właściwość wyjść. W szczególnych całkowitą ExclusionGroup do identyfikowania wyjścia nie ma znaczenia, ale muszą używać tej samej liczby całkowitej stale dla określonej grupy produktów.

    Uwaga

    Można również użyć innych niż zero ExclusionGroup wartość właściwość z jednym danych wyjściowych, jeśli nie chcesz wyprowadzić wszystkie wiersze. Jednak w takim przypadek należy jawnie wywołać DirectRowTo<outputbuffer> Metoda dla każdego wiersza, który chcesz wysłać dane wyjściowe.

  • Przypisz bardziej opisową nazwę dla danych wejściowych i wyjściowych.Składnik skryptów używa tych nazw do generowania właściwości metoda dostępu pisma, które będzie używany do odwoływania się do danych wejściowych i wyprowadza w skrypcie.

  • Pozostaw kolumn jest dla przekształceń synchronicznych.Zazwyczaj synchroniczne transformacja nie powoduje dodania kolumny dla przepływ danych.Dane są modyfikowane w miejsce w buforze, a bufor zostaje przeniesiona na następną składnika w przepływ danych.Jeśli tak jest, nie trzeba dodać i skonfigurować kolumn wyjściowych jawnie na wydruk transformacja.Dane wyjściowe są wyświetlane w edytorze bez żadnych kolumn jawnie zdefiniowane.

  • Dodać kolumny do wyjść symulowanego błędu dla błędów poziom wiersza.Zazwyczaj wielu Wyświetla w tym samym ExclusionGroup mają ten sam zestaw kolumn wyjściowych. Jednak podczas tworzenia produkcji symulowanego błędu, można dodać więcej kolumn, które zawierają informacje o błędach.Aby dowiedzieć się, jak przepływ danych wierszy błędów aparatu procesów Zobacz Za pomocą błąd wyjścia w składnik przepływ danych. Należy zauważyć, że w składniku skryptów należy napisać własny kod, aby wypełnić dodatkowe kolumny z informacjami o odpowiednie.Aby uzyskać więcej informacji zobaczSymulowanie Error wyjścia dla składnika skryptów.

Aby uzyskać więcej informacji na temat Wejść i wyjść stronaSkrypt transformacja edytora, see Skrypt transformacja Edytor (wejściowych i wyjść strona).

Dodawanie zmiennych

Jeśli chcesz używać istniejących zmiennych w skrypcie, możesz je dodać w ReadOnlyVariables i ReadWriteVariables właściwość pola na Skrypt stronaSkrypt transformacja edytora.

Po dodaniu wielu zmiennych w polach właściwość nazwy zmiennych należy oddzielić przecinkami.Wiele zmiennych można także wybrać, klikając przycisk wielokropka () znajdujący się obok ReadOnlyVariables i ReadWriteVariables pola właściwość, a następnie wybierając zmiennych w Umożliwia wybór zmiennych -okno dialogowe.

Aby uzyskać ogólne informacje dotyczące sposobu korzystania ze składnikiem skrypt zmiennych zobacz Za pomocą zmiennych w składniku skryptów.

Aby uzyskać więcej informacji na temat Skrypt stronaSkrypt transformacja edytora, see Skrypt transformacja Edytor (skrypt strona).

Składnik synchroniczne transformacja w trybie projektowania kodu wykonywanie wykonywanie skryptów

Po skonfigurowaniu metadane dla składnika, można napisać skrypt niestandardowy.In the Script Transformation Editor, on the Script page, click Edit Script to open the Microsoft Visual Studio Tools for Applications (VSTA) IDE where you can add your custom script.The scripting language that you use depends on whether you selected Microsoft Visual Basic 2008 or Microsoft Visual C# 2008 as the script language for the ScriptLanguage property on the Script page.

Aby uzyskać ważne informacje, dotyczy wszystkich rodzajów elementów utworzonych za pomocą składnika skryptów zobacz Kodowanie i debugowanie składnika skryptów.

Opis kod jest generowany automatycznie

Po otwarciu IDE VSTA po utworzeniu i skonfigurowaniu składnika transformacja, edytowalnych ScriptMain Klasa pojawia się w edytorze kodu ze skrótowej na ProcessInputRow Metoda. The ScriptMain class is where you will write your custom code, and ProcessInputRow is the most important metoda in a transformacja component.

Jeśli otworzysz Eksplorator projektu okna VSTA, można wyświetlić składnik skryptów wygenerował również tylko do odczytu BufferWrapper i ComponentWrapper elementy projektu. The ScriptMain class inherits from the UserComponent class in the ComponentWrapper project element.

Przy uruchomieniu czas, aparat przepływ danych wywołuje ProcessInput Metoda UserComponent klasy, która zastępuje ProcessInput(Int32, PipelineBuffer) Metoda ScriptComponent Klasa nadrzędna. The ProcessInput metoda in turn loops through the rows in the input buffer and calls the ProcessInputRow metoda one czas for each row.

Zapisywanie swój kod niestandardowy

Składnik transformacja z synchronicznej Wyjście jest najprostszym wszystkich składników przepływ danych do zapisu.Na przykład przykładzie danych wyjściowych pojedyncze w dalszej części tego tematu składa się z następującego kodu niestandardowego:

    Row.City = UCase(Row.City)
    Row.City = (Row.City).ToUpper();

Aby zakończyć tworzenie składnika niestandardowego synchroniczne transformacja, należy użyć zastąpiona ProcessInputRow Metoda do przekształcania danych w każdym wierszu w buforze wejściowym. Aparat przepływ danych przekazuje tego buforu podczas pełnego do następnego składnika w przepływ danych.

W zależności od wymagań, można również napisać skrypt PreExecute i PostExecute metody dostępne w ScriptMain Klasa do przetwarzania wstępnego lub końcowych.

Praca z wieloma wyjścia

Kierowanie wprowadzania wierszy na jeden z dwóch lub większej liczby możliwych wyjść nie wymaga znacznie więcej kodu niestandardowego niż scenariuszu dane wyjściowe jednego omawiane wcześniej.Na przykład przykładzie danych wyjściowych dwóch w dalszej części tego tematu składa się z następującego kodu niestandardowego:

 [Visual Basic]
    Row.City = UCase(Row.City)
    If Row.City = "REDMOND" Then
        Row.DirectRowToMyRedmondAddresses()
    Else
        Row.DirectRowToMyOtherAddresses()
    End If
 [C#]
        Row.City = (Row.City).ToUpper();

        if (Row.City=="REDMOND")
        {
            Row.DirectRowToMyRedmondAddresses();
        }
        else
        {
            Row.DirectRowToMyOtherAddresses();
        }

W tym przykładzie generuje składnika skryptów DirectRowTo<OutputBufferX> metody, na podstawie nazw produktów, które można konfigurować. Podobne kod umożliwia bezpośrednie wierszy błędów do wyjścia symulowanego błędu.

Przykłady

W tym miejscu w przykładach pokazano niestandardowy kod, który jest wymagany w ScriptMain Klasa tworzenia składnika transformacja synchronicznych.

Uwaga

These examples use the Person.Address table in the AdventureWorks sample database and pass its first and fourth columns, the intAddressID and nvarchar(30)City columns, through the data flow.Te same dane, jest używany w źródle, przekształcania i próbek obiekt docelowy w tej sekcji.Dodatkowe wymagania wstępne i założenia są udokumentowane na przykład każdy.

Jeden przykład transformacja synchroniczne wyjście

W przykładzie pokazano składnik synchroniczne transformacja z pojedynczych wyników.Wynikiem tej transformacja przechodzi przez AddressID Kolumna konwertujeMiasto kolumna na wielkie litery.

Jeśli chcesz uruchomić ten kod przykładowy, należy skonfigurować pakiet i składnika w następujący sposób:

  1. Dodać nowy składnik skryptów do powierzchni projektanta przepływ danych i skonfigurować go jako transformacja.

  2. Połączyć nowy składnik transformacja w danych wyjściowych, urządzenie źródłowe lub z innego transformacja SSIS Projektant. Te dane wyjściowe należy podać dane z Person.Address tabelaAdventureWorks przykładowej bazy danych, na który zawiera AddressID and Miasto kolumny.

  3. Otwórz Skrypt transformacja edytora.Na Kolumny danych wejściowych strona, zaznacz AddressID and Miasto kolumny.Oznacz Miasto kolumna w trybie odczytu/zapisu.

  4. Na Wejść i wyjść strona, zmienić dane wejściowe i wyjściowe z bardziej opisowe nazwy, takie jak MyAddressInput and MyAddressOutput.Zwróć uwagę, że SynchronousInputID dane wyjściowe odpowiada ID danych wejściowych. Dlatego nie trzeba dodać i skonfigurować kolumn wyjściowych.

  5. Na Skrypt strona, kliknij przycisk Edytowanie skryptu i wpisz skrypt, który następuje.Następnie zamknij środowiska programistycznego skryptu, Skrypt transformacja edytora.

  6. Utwórz i skonfiguruj docelowego składnika, który oczekuje AddressID and Miasto kolumny, takie jak SQL Server obiekt obiekt docelowy lub składnika docelowego przykładowych pokazano w Tworzenie obiekt docelowy przy użyciu składnika skryptów.Następnie z danych wyjściowych transformacja do obiekt docelowy składnika.Można utworzyć tabela docelową, wykonując następujące czynności Transact-SQL polecenia w AdventureWorks Baza danych:

    CREATE TABLE [Person].[Address2](
        [AddressID] [int] NOT NULL,
        [City] [nvarchar](30) NOT NULL
    )
    
  7. Uruchom w próbce.

Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As MyAddressInputBuffer)

        Row.City = UCase(Row.City)

    End Sub

End Class
 [C#]
public class ScriptMain:
    UserComponent

{
    public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer Row)
    {

        Row.City = (Row.City).ToUpper();

    }

}

Przykład transformacja synchroniczne dwa wyjścia

W przykładzie pokazano składnik synchroniczne transformacja z dwoma wyjść.Wynikiem tej transformacja przechodzi przez AddressID Kolumna konwertujeMiasto kolumna na wielkie litery.Jeśli nazwa miasta jest Redmond, kieruje on wiersza danych wyjściowych w jeden, kieruje on wszystkich pozostałych wierszy do innej produkcji.

Jeśli chcesz uruchomić ten kod przykładowy, należy skonfigurować pakiet i składnika w następujący sposób:

  1. Dodać nowy składnik skryptów do powierzchni projektanta przepływ danych i skonfigurować go jako transformacja.

  2. Połączyć nowy składnik transformacja w danych wyjściowych, urządzenie źródłowe lub z innego transformacja SSIS Projektant. Te dane wyjściowe należy podać dane z Person.Address tabelaAdventureWorks przykładowej bazy danych, na który zawiera co najmniej AddressID and Miasto kolumny.

  3. Otwórz Skrypt transformacja edytora.Na Kolumny danych wejściowych strona, zaznacz AddressID and Miasto kolumny.Oznacz Miasto kolumna w trybie odczytu/zapisu.

  4. Na Wejść i wyjść strona, Utwórz drugą danych wyjściowych.Po dodaniu nowych danych wyjściowych, należy upewnić się, że użytkownik zestaw jego SynchronousInputID Aby ID danych wejściowych. Ta właściwość jest już zestaw pierwszego produkcja, która jest tworzona domyślnie.Dla każdego produktu, należy ustawić ExclusionGroup Właściwość tę samą wartość różną od zera oznacza, że podzieli wprowadzania wierszy między dwiema wzajemnie wykluczających wyjść. Nie trzeba dodawać żadnych kolumn danych wyjściowych do wyjść.

  5. Zmienianie nazwy wejście i wyjście z bardziej opisowe nazwy, takie jak MyAddressInput, MyRedmondAddresses, and MyOtherAddresses.

  6. Na Skrypt strona, kliknij przycisk Edytowanie skryptu i wpisz skrypt, który następuje.Następnie zamknij środowiska programistycznego skryptu, Skrypt transformacja edytora.

  7. Utwórz i skonfiguruj dwa składniki obiekt obiekt docelowy, które oczekują, że AddressID and Miasto kolumny, takie jak SQL Server obiekt obiekt docelowy, obiekt obiekt docelowy pliku płaski lub składnika docelowego przykładowych pokazano w Tworzenie obiekt docelowy przy użyciu składnika skryptów.Podłącz każdy wyjściowych transformacja do jednego z obiekt docelowy składników.Można utworzyć obiekt docelowy tabel, uruchamiając Transact-SQL polecenie podobne do następującego (z tabela unikatowej nazwy) AdventureWorks Baza danych:

    CREATE TABLE [Person].[Address2](
        [AddressID] [int] NOT NULL,
        [City] [nvarchar](30) NOT NULL
    
  8. Uruchom w próbce.

Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As MyAddressInputBuffer)

        Row.City = UCase(Row.City)

        If Row.City = "REDMOND" Then
            Row.DirectRowToMyRedmondAddresses()
        Else
            Row.DirectRowToMyOtherAddresses()
        End If

    End Sub

End Class
public class ScriptMain:
    UserComponent

public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer Row)
    {

        Row.City = (Row.City).ToUpper();

        if (Row.City == "REDMOND")
        {
            Row.DirectRowToMyRedmondAddresses();
        }
        else
        {
            Row.DirectRowToMyOtherAddresses();
        }

    }
}
Integration Services icon (small) Konfiguracja w aktualizacji z usług integracja Services pobytu

Najnowsze pliki do pobrania, artykuły, próbki, i pliki wideo firmy Microsoft, jak również wybranego rozwiązania od Wspólnoty, odwiedź witrynę Integration Services strona w witrynie MSDN lub TechNet:

Automatycznego powiadomienie tych aktualizacji należy subskrybować źródła danych RSS, które jest dostępne strona.