Przy użyciu profilowania zadania w przepływie pracy pakiet danych

Profilowanie danych i oczyszczania nie są kandydatami do automatycznego procesu ich wczesnym etapie.In SQL Server Integration Services, the output of the Data Profiling task usually requires visual analysis and human judgment to determine whether reported violations are meaningful or excessive.Nawet po UZNAJĄC problemy z jakością danych, nadal istnieje musi być starannie thought-out planu, który dotyczy optymalne dla oczyszczania.

Jednak po ustaleniu kryteriów jakości danych można zautomatyzować okresowych analiz i oczyszczanie źródło danych.Należy rozważyć następujące scenariusze:

  • Sprawdzanie jakości danych przed przyrostową obciążenia.Użyj zadania profilowania danych do obliczenia kolumna Null profilu stosunek nowe dane przeznaczone do kolumna wybrać pola NazwaKlienta w tabela Klienci.Jeśli procent wartości null jest większa niż 20%, należy wysłać wiadomość e-mail zawierającą wyjściowego profilu z operator i zakończyć pakiet.W przeciwnym razie kontynuuj przyrostowe obciążenia.

  • Oczyszczanie automatyzacji, gdy zostaną spełnione określone warunki.Profilowanie danych zadań można użyć, aby obliczyć profilu włączenia wartość w kolumnie Stan w tabela odnośników państw i kolumna Kod POCZTOWY i pocztowy kod tabela wyszukiwania kodów pocztowych.Jeśli siła włączenia wartości stanu jest mniejsza niż 80%, ale siła włączenia wartości kodów pocztowych kod POCZTOWY jest większa niż 99%, oznacza to dwie rzeczy.Po pierwsze dane Państwo jest zły.Po drugie danych kodów pocztowych kod POCZTOWY jest dobra.Uruchamianie zadania przepływu danych oczyszcza dane o stanie, przeprowadzając wyszukiwanie wartości poprawnego stanu z bieżącej wartości kodów pocztowych kod pocztowy.

Po umieszczeniu przepływu pracy, w którym można dołączyć zadanie przepływu danych, trzeba zrozumieć kroki, które są wymagane, aby dodać to zadanie.Następnej sekcji opisano ogólny proces uwzględniania zadanie przepływu danych.Końcowe dwóch sekcjach opisano, jak połączyć zadania przepływu danych albo bezpośrednio do danych źródło lub do przekształcenia danych z przepływu danych.

Definiowanie ogólny przepływ pracy dla zadania przepływu danych

Poniższa procedura przedstawia w zarysie ogólne podejście do używania wyjścia profilowania dane zadanie przepływu pracy pakiet.

Umożliwia wyjście Programując profilowania dane zadaniepakiet

  1. Dodawanie i konfigurowanie zadania profilowania danych w pakiet.

  2. Skonfiguruj pakiet zmiennych do przechowywania wartości, które chcesz pobrać z wyniki profilu.

  3. Dodawanie i konfigurowanie zadania skryptu.Połączyć zadania skryptu profilowania dane zadanie.W przypadku zadania skryptu napisanie kodu, który odczytuje plik wyjściowy profilowania dane zadanie żądane wartości i wypełnia zmiennych pakiet.

  4. W więzów kolejności, łączące oddziały niższego rzędu w przepływie pracy zadania skryptu pisać wyrażenia wartości zmiennych do skierowania przepływu pracy.

Podczas włączania profilowania dane zadanie do przepływu pracy pakiet, należy pamiętać o funkcje te dwa zadania:

  • Zadania produkcji.Profilowanie dane zadanie zapisuje dane wyjściowe do pliku lub zmiennej pakiet w formacie XML, zgodnie ze schematem DataProfile.xsd.Dlatego należy zbadać dane wyjściowe XML, jeśli chcesz użyć profilu wyniki w przepływie pracy warunkowe pakiet.Język kwerend Xpath można łatwo kwerendy to dane wyjściowe XML.Badanie struktury te dane wyjściowe XML, można otworzyć przykładowy plik wyjściowy lub sam schemat.To open the output file or schema, you can use Microsoft Visual Studio, another XML editor, or a text editor, such as Notepad.

    Ostrzeżenie

    Niektóre wyniki profilu, które są wyświetlane w Przeglądarka profilu danych są obliczone wartości, które nie zostały znalezione bezpośrednio w danych wyjściowych.Na przykład wyjściowego profilu stosunek Null kolumna zawiera całkowitą liczbę wierszy i liczby wierszy, które zawierają wartości null.Należy zbadać te dwie wartości, a następnie obliczyć procent wierszy zawierających wartości null do uzyskania stosunku null kolumna.

  • Zadanie wprowadzania.Profilowanie dane zadanie odczytuje dane wejściowe, jej z SQL Server tabele.Dlatego należy zapisać dane w pamięci tymczasowej tabel, jeśli chcesz danych profilu, który został już załadowany i przekształcone przepływ danych.

Następujące sekcje dotyczą tego ogólny obieg profilowania danych, który pochodzi bezpośrednio z zewnętrznego źródło danych lub który pochodzi przekształconych zadanie przepływu danych.Sekcje te również przedstawiają obsługi wymagania zadanie przepływu danych wejściowych i wyjściowych.

Łączenie danych profilowania zadania bezpośrednio do zewnętrznego źródła danych

Profilowanie dane zadanie można profilu danych, który pochodzi bezpośrednio ze źródło danych.Aby zilustrować tej możliwości, w poniższym przykładzie użyto zadania profilowania danych do obliczenia kolumny zerowy współczynnik profil w kolumnach tabela Person.Address w AdventureWorks2008R2 bazy danych.Następnie w tym przykładzie użyto zadania skryptu do pobierania wyniki z pliku wyjściowego i wypełnić pakiet zmiennych, które mogą być używane do kierowania przepływu pracy.

Ostrzeżenie

Kolumna AddressLine2 został wybrany do ten prosty przykład, ponieważ kolumna ta zawiera wysoki procent wartości null.

W tym przykładzie składa się z następujących czynności:

  • Konfigurowanie menedżerów połączenia łączące się z danymi zewnętrznymi źródło i do pliku wyjściowego, zawierające wyniki profilu.

  • Konfigurowanie zmiennych pakiet przechowujące wartości wymagane przez profilowanie dane zadanie.

  • Konfigurowanie zadań profilowania danych do obliczenia kolumny zerowy współczynnik profilu.

  • Konfigurowanie zadania skryptu pracy dane wyjściowe XML profilowania dane zadanie.

  • Konfigurowanie ograniczeń pierwszeństwo sterujące, które oddziały niższego rzędu w przepływie pracy są uruchamiane na podstawie wyniki zadania danych profilowania.

Skonfigurować menedżerowie połączenia

Na przykład istnieją menedżerowie dwa połączenia:

  • ADO.NET menedżer połączeń, która łączy się z AdventureWorks2008R2 bazy danych.

  • menedżer połączeń do pliku, który tworzy plik wyjściowy będzie wyniki profilowania dane zadanie.

Aby skonfigurować menedżerowie połączenia

  1. W Business Intelligence Development Studio, Utwórz nowy Integration Services pakiet.

  2. Dodaj ADO.NET menedżer połączeń do pakiet.Konfigurowanie menedżer połączeń, to do używania dostawcy danych netto dla SQL Server (SqlClient) i połączyć się z wystąpienie dostępne AdventureWorks2008R2 bazy danych.

    Domyślnie Menedżer połączeń ma następującą nazwę: <Nazwa serwera>.AdventureWorks1.

  3. Dodawanie pliku menedżer połączeń do pakiet.Skonfiguruj ten menedżer połączeń do utworzenia pliku wyjściowego dla zadania profilowania danych.

    W tym przykładzie użyto nazwy pliku DataProfile1.xml.Domyślnie Menedżer połączeń ma taką samą nazwę jak plik.

Skonfiguruj pakiet zmiennych

W tym przykładzie użyto dwie zmienne pakiet:

  • Zmienna ProfileConnectionName przekazuje nazwę pliku menedżer połączeń do zadania skryptu.

  • Zmienna AddressLine2NullRatio przekazuje pakiet obliczony współczynnik null kolumna tego zadania skryptu.

Aby skonfigurować zmiennych pakiet, które będą przechowywane wyniki profilu

  • W zmiennych okna, dodać i skonfigurować następujące zmienne dwóch pakiet:

    • Wprowadź nazwę, ProfileConnectionName, dla jednej ze zmiennych i zestaw typu zmienna do ciąg.

    • Wprowadź nazwę, AddressLine2NullRatio, zmienna i zestaw typu zmienna do podwójne.

Konfigurowanie danych profilowania zadania

Profilowanie dane zadanie musi być skonfigurowany w następujący sposób:

  • Aby użyć danych z ADO.NET dostarcza menedżer połączeń jako danych wejściowych.

  • Wykonywanie profilu zerowy współczynnik kolumny w danych wejściowych.

  • Aby zapisać wyniki profilu do pliku, który jest skojarzony z pliku menedżer połączeń.

Aby skonfigurować zadanie danych profilowania

  1. Przepływ sterowania dodać profilowania dane zadanie.

  2. Otwórz Danych profilowania zadanie edytora skonfigurować zadanie.

  3. Na Ogólne strona edytora, dla docelowy, zaznacz nazwę pliku menedżer połączeń, który został uprzednio skonfigurowany.

  4. Na Żądania profilu strona edytora, należy utworzyć nowy profil stosunek puste kolumny.

  5. W żądania właściwości okienku dla ConnectionManager, wybierz opcję ADO.NET menedżer połączeń, który został uprzednio skonfigurowany.Następnie dla TableOrView, zaznacz Person.Address.

  6. Zamknij dane zadanie edytora profilowania.

Konfigurowanie zadania skryptu

Zadania skryptu musi być skonfigurowany do pobierania wyniki z pliku wyjściowego i wypełnić zmiennych pakiet, które uprzednio zostały skonfigurowane.

Aby skonfigurować zadania skryptu

  1. Przepływ sterowania Dodaj zadanie skryptu.

  2. Połączyć zadania skryptu profilowania dane zadanie.

  3. Otwórz Script Editor zadania skonfigurować zadanie.

  4. Na skryptu strona, wybierz preferowany język programowania.Następnie udostępnia pakiet dwie zmienne skryptu:

    1. Dla ReadOnlyVariables, wybierz opcję ProfileConnectionName.

    2. Dla ReadWriteVariables, wybierz opcję AddressLine2NullRatio.

  5. Wybierz Edytowanie skryptu otworzyć środowiska programistycznego skryptu.

  6. Dodaj odwołanie do nazw przestrzenią nazw System.Xml.

  7. Wprowadź kod przykładowy, który odpowiada Twój język programowania:

    Imports System
    Imports Microsoft.SqlServer.Dts.Runtime
    Imports System.Xml
    
    Public Class ScriptMain
    
      Private FILENAME As String = "C:\ TEMP\DataProfile1.xml"
      Private PROFILE_NAMESPACE_URI As String = "https://schemas.microsoft.com/DataDebugger/"
      Private NULLCOUNT_XPATH As String = _
        "/default:DataProfile/default:DataProfileOutput/default:Profiles" & _
        "/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/default:NullCount/text()"
      Private TABLE_XPATH As String = _
        "/default:DataProfile/default:DataProfileOutput/default:Profiles" & _
        "/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/default:Table"
    
      Public Sub Main()
    
        Dim profileConnectionName As String
        Dim profilePath As String
        Dim profileOutput As New XmlDocument
        Dim profileNSM As XmlNamespaceManager
        Dim nullCountNode As XmlNode
        Dim nullCount As Integer
        Dim tableNode As XmlNode
        Dim rowCount As Integer
        Dim nullRatio As Double
    
        ' Open output file.
        profileConnectionName = Dts.Variables("ProfileConnectionName").Value.ToString()
        profilePath = Dts.Connections(profileConnectionName).ConnectionString
        profileOutput.Load(profilePath)
        profileNSM = New XmlNamespaceManager(profileOutput.NameTable)
        profileNSM.AddNamespace("default", PROFILE_NAMESPACE_URI)
    
        ' Get null count for column.
        nullCountNode = profileOutput.SelectSingleNode(NULLCOUNT_XPATH, profileNSM)
        nullCount = CType(nullCountNode.Value, Integer)
    
        ' Get row count for table.
        tableNode = profileOutput.SelectSingleNode(TABLE_XPATH, profileNSM)
        rowCount = CType(tableNode.Attributes("RowCount").Value, Integer)
    
        ' Compute and return null ratio.
        nullRatio = nullCount / rowCount
        Dts.Variables("AddressLine2NullRatio").Value = nullRatio
    
        Dts.TaskResult = Dts.Results.Success
    
      End Sub
    
    End Class
    
    using System;
    using Microsoft.SqlServer.Dts.Runtime;
    using System.Xml;
    
    public class ScriptMain
    {
    
      private string FILENAME = "C:\\ TEMP\\DataProfile1.xml";
      private string PROFILE_NAMESPACE_URI = "https://schemas.microsoft.com/DataDebugger/";
      private string NULLCOUNT_XPATH = "/default:DataProfile/default:DataProfileOutput/default:Profiles" + "/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/default:NullCount/text()";
      private string TABLE_XPATH = "/default:DataProfile/default:DataProfileOutput/default:Profiles" + "/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/default:Table";
    
      public void Main()
      {
    
        string profileConnectionName;
        string profilePath;
        XmlDocument profileOutput = new XmlDocument();
        XmlNamespaceManager profileNSM;
        XmlNode nullCountNode;
        int nullCount;
        XmlNode tableNode;
        int rowCount;
        double nullRatio;
    
        // Open output file.
        profileConnectionName = Dts.Variables["ProfileConnectionName"].Value.ToString();
        profilePath = Dts.Connections[profileConnectionName].ConnectionString;
        profileOutput.Load(profilePath);
        profileNSM = new XmlNamespaceManager(profileOutput.NameTable);
        profileNSM.AddNamespace("default", PROFILE_NAMESPACE_URI);
    
        // Get null count for column.
        nullCountNode = profileOutput.SelectSingleNode(NULLCOUNT_XPATH, profileNSM);
        nullCount = (int)nullCountNode.Value;
    
        // Get row count for table.
        tableNode = profileOutput.SelectSingleNode(TABLE_XPATH, profileNSM);
        rowCount = (int)tableNode.Attributes["RowCount"].Value;
    
        // Compute and return null ratio.
        nullRatio = nullCount / rowCount;
        Dts.Variables["AddressLine2NullRatio"].Value = nullRatio;
    
        Dts.TaskResult = Dts.Results.Success;
    
      }
    
    }
    

    Ostrzeżenie

    Pokazane w tej procedurze przykładowy kod ilustruje sposób załadować z pliku wyjściowego profilowania dane zadanie.Zamiast załadować wyjściowe zadania profilowania danych ze zmiennej pakiet, zobacz alternatywne przykładowy kod następuje tej procedury.

  8. Zamknij środowiska programistycznego skryptu, a następnie zamknij Edytor skryptów zadania.

Alternatywny kod — Odczyt wyjściowy profil z zmiennej

Poprzedniej procedury przedstawiono sposób załadować wyjściowe zadania profilowania danych z pliku.Jednakże alternatywne metoda byłoby załadować to wyjście ze zmiennej pakiet.Załadować dane wyjściowe z zmiennej, należy wprowadzić następujące zmiany w przykładowy kod:

  • Wywołanie LoadXml metoda XmlDocument klasy zamiast Load metoda.

  • Zadanie edytora skryptów, Dodaj nazwę zmiennej pakiet zawierający dane wyjściowe profilu z zadaniem ReadOnlyVariables listy.

  • Przekazać ciąg wartość zmiennej LoadXML metoda, jak pokazano w przykładzie kodu.(W tym przykładzie użyto "profileoutput" jako nazwę zmiennej pakiet zawierający profil wyjściowy.)

    Dim outputString As String
    outputString = Dts.Variables("ProfileOutput").Value.ToString()
    ...
    profileOutput.LoadXml(outputString)
    
    string outputString;
    outputString = Dts.Variables["ProfileOutput"].Value.ToString();
    ...
    profileOutput.LoadXml(outputString);
    

Konfigurowanie ograniczeń pierwszeństwo

Pierwszeństwo ograniczenia muszą być skonfigurowane do formantu, który oddziały niższego rzędu w przepływie pracy są uruchamiane na podstawie wyniki zadania danych profilowania.

Aby skonfigurować ograniczenia pierwszeństwo

  • W więzów kolejności, łączące oddziały niższego rzędu w przepływie pracy zadania skryptu pisać wyrażenia wartości zmiennych do skierowania przepływu pracy.

    Na przykład zestaw operacji oceny z ograniczenie pierwszeństwa do wyrażenie i ograniczenie.Następnie można użyć @AddressLine2NullRatio < .90 jako wartość wyrażenie.Powoduje to, że przepływ pracy, aby wykonaj zaznaczonej ścieżka podczas poprzednich zadań powiodła się i procent wartości null w wybranym kolumna jest mniejsza niż 90%.

Łączenie danych profilowania zadania do danych przetransformowanych z przepływu danych

Zamiast profilowania danych bezpośrednio ze źródło danych, można profilu danych, który został już załadowany i przekształcone przepływ danych.Jednak zadania profilowania danych działa tylko w odniesieniu do danych, nie dla danych w pamięci.Dlatego, należy najpierw użyć obiekt docelowy składnika, aby zapisać przekształconych danych do tabela tymczasowej.

Ostrzeżenie

Podczas konfigurowania zadania profilowania danych należy wybrać istniejące tabele i kolumny.Dlatego należy utworzyć tabela tymczasowej w projekt czas przed rozpoczęciem konfigurowania zadania.Innymi słowy, w tym scenariuszu nie zezwala na korzystanie z tabela tymczasowej utworzonej przy uruchomieniu czas.

Po zapisaniu danych do tabela tymczasowej, można wykonać następujące czynności:

  • Profil danych za pomocą profilowania dane zadanie.

  • Odczytać wyniki opisane wcześniej w tym temacie, należy użyć zadania skryptu.

  • Użyj tych wyniki do skierowania przepływu pracy kolejnego pakiet.

Poniższa procedura przewiduje ogólne podejście przy użyciu profilowania dane zadanie danych profilu, która została przekształcona przez przepływ danych.Wiele z tych kroków są podobne do tych opisanych wcześniej do profilowania danych, który pochodzi bezpośrednio z zewnętrznego źródło danych.Można przejrzeć tych wcześniejszych kroków, aby uzyskać więcej informacji dotyczących sposobu konfigurowania różnych składników.

Aby użyć profilowania dane zadanie w przepływ danych

  1. W Business Intelligence Development Studio, tworzenie pakiet.

  2. W przepływu danych dodać, konfigurowanie i podłączyć odpowiednie źródła i przekształceń.

  3. W przepływu danych Dodawanie, skonfigurować i Połącz składnik obiekt docelowy, który zapisuje przekształconych danych do tabela tymczasowej.

  4. W przepływ sterowania Dodaj i skonfiguruj profilowania dane zadanie oblicza profile przeciwko danych przetransformowanych tabela tymczasowej.Połączyć zadania profilowania dane zadanie przepływu danych.

  5. Skonfiguruj pakiet zmiennych do przechowywania wartości, które chcesz pobrać z wyniki profilu.

  6. Dodawanie i konfigurowanie zadania skryptu.Połączyć zadania skryptu profilowania dane zadanie.W przypadku zadania skryptu napisanie kodu, który odczytuje żądane wartości wyjściowych profilowania dane zadanie i wypełnia zmiennych pakiet.

  7. W więzów kolejności, łączące oddziały niższego rzędu w przepływie pracy zadania skryptu pisać wyrażenia wartości zmiennych do skierowania przepływu pracy.

Ikona usług Integration Services (mała)Bieżąco z usług integracji

Najnowsze pliki do pobrania, artykuły, próbki i wideo firmy Microsoft, jak również wybranych rozwiązań ze Wspólnoty, odwiedź witrynę Integration Services strona na MSDN i TechNet:

Aby otrzymywać automatyczne powiadomienia dotyczące tych aktualizacji, zasubskrybuj źródła danych RSS dostępne na tej stronie.